Flutter Reviewer
Flutter Reviewer
7. Web Applications – Mobile-optimized web 21. Flutter – Google’s Powerhouse – Features hot
apps accessed via a browser, developed using reload, a custom rendering engine, and an
HTML, CSS, and JavaScript. extensive widget library for UI components.
8. Advantages of Web Apps – Easy to develop 22. React Native – Meta’s Market Leader –
and maintain, cost-effective, and platform- Popular for its large ecosystem, JavaScript-
independent. based development, and strong community
support.
9. Disadvantages of Web Apps – Depend on
browser compatibility, have lower 23. Xamarin – Microsoft’s Enterprise Solution –
performance, and limited device feature Best for Microsoft-integrated environments,
access. offering native API access and shared
business logic.
10. Hybrid Applications – A mix of native and web
apps, using a single codebase to run across 24. Flutter Architecture – Layered Approach – A
multiple platforms via WebView. structured architecture with three key layers:
framework, rendering, and engine.
11. Advantages of Hybrid Apps – Cost-effective,
easy to develop, and have some access to
device features.
25. Framework Layer – The top layer where 35. Flutter Configuration Files – Important files in
developers interact, consisting of widgets for Flutter development, managing dependencies
UI design. can create custom widgets by and project settings.
combining simpler ones.
36. pubspec.yaml – Defines dependencies, assets,
26. Widgets – building blocks of your app's UI. SDK versions, and metadata for a Flutter
Immutable UI components that define the project.
appearance and behavior of elements. Contain
37. Build.gradle & Podfile – Platform-specific files
elements such as columns and rows
for configuring build settings in Android
27. Rendering Layer – Converts widgets into (Gradle) and iOS (Podfile).
persistent render objects, acting as a bridge
38. Android Manifest – XML configuration file for
between UI elements and the display.
Android apps, specifying permissions,
converts widget into visual elements on
activities, and hardware requirements.
screen
provides essential information about the app
28. Engine – core Flutter's architecture written in to the Android operating system,
C/C++, provides the lower-level
39. Flutter Development Design Patterns – Clean
implementation of Flutter's core API,
architecture principles separate UI state from
including graphics (through Skia). responsible
business logic for maintainability.
for rasterizing composited scene
40. Repository Pattern – A software pattern that
29. Dart – Flutter uses Dart language, offers
abstracts data handling, separating business
support for modern multi-threading, async-
logic from data access.
await, and strong type checks, among other
features. Uses Ahead-of-Time (AOT) 41. Benefits of Repository Pattern – Improves
Compilation - Converts code into native code organization, testability, and flexibility
machine code before running the app. by abstracting data sources.
30. Flutter System Requirements (OS) – 42. How Repository Pattern Works – Uses
repositories as intermediaries between
Windows: Windows 7 or later business logic and data sources.
macOS: macOS 10.14 (Mojave) or later 43. Components of Repository Pattern –
Linux: Supports Ubuntu, Debian, Fedora, etc. Data Sources – APIs, databases, or external
31. Flutter System Requirements (Hardware) – services
RAM: Minimum 8GB, recommended 16GB Business Logic – Core application logic that
interacts with repositories
Storage: Sufficient disk space for SDK and
tools Data Models – Structured representations of
retrieved data
32. Flutter SDK – The core development toolkit
for Flutter apps, including libraries, 44. Testing with Repository Pattern – Allows the
frameworks, and tools. use of mock repositories to isolate and test
business logic.
33. Android SDK – Required for Android
development, usually installed with Android 45. Repository Pattern in App Development –
Studio. Ensures consistency in data operations and
reduces errors in code.
34. Development Environment – Visual Studio
Code (VS Code) is a widely used, lightweight,
and customizable code editor.
CHAPTER 2 o dispose() – Cleans up resources when
the widget is removed from the
State Management in Flutter
widget tree permanently.
1. Understanding State in Flutter – State
7. setState Method – Used to update the state of
represents the current data in an app. It
a StatefulWidget, causing a rebuild of the UI.
changes due to user interactions, data
Modify state variables.
updates, or animations.
8. Limitations of setState –
2. Local vs Global State –
o Only works for local state.
o Local State – Managed within a single
widget using setState(). o Can be inefficient for large UI updates.
o Global State – Shared across multiple o Runs asynchronously. means that a
widgets, lives outside individual task does not complete immediately
widgets managed by tools like and can take some time to finish while
Provider, Riverpod, or Redux. the rest of the program continues
running.
3. Managing State Using Stateful Widgets –
UI Design Principles & Widgets
o Stateless Widgets – Static UI
elements that do not change. Doesn’t 10. Adaptive UI Design – UI should adjust based
have internal state that can change on screen size (mobile, tablet, foldable
after built. devices).
o Stateful Widgets – UI components 11. Importance of Adaptive UI – Ensures
that can update and change consistency across multiple devices and
dynamically. screen sizes.
4. How Stateless Widgets Work – 12. Adaptive vs. Responsive Apps –
o Extend StatelessWidget and Responsive Apps – Dynamically adjust using
implement a build() method to define relative units
the UI.
Adaptive Apps – Use predefined layouts for
5. How Stateful Widgets Work – specific device categories./ customized for
platform, devices.
o Extend StatefulWidget and create a
State class to manage changes. Trigger 13. Characteristics of Responsive Apps –
the rebuild of widget subtree.
relative sizing. Use percentages
6. Stateful Widget Lifecycle Methods –
media queries. Like css
o createState() – first method called
fluid layout that resize dynamically.
that Creates the new State object.
14. Characteristics of Adaptive Apps –
o initState() – call when state object is
created Initializes the widget. predefined layouts.
o didUpdateWidget() – Handles updates Custom styling customize UI elements for
when the parent widget changes. different devices.
Widget to widget communication.
Device detection Detect devices and serve an
o build() – Redraws the UI when state appropriate UI.
changes. setState is
15. When to Use Adaptive vs. Responsive Apps
invoked(called/executed).
–
Adaptive Apps – When different user Theming and styling – consistent appreance
experiences are required for different devices. across app to adapt screen sizes (Theme,
MediaQuery).
Responsive Apps – When broad
compatibility and cost-effectiveness are Best Practices & Common Pitfalls
needed.
21. Performance Optimization –
Flutter Widgets & Layouts
Use const constructors where possible.
16. What Are Flutter Widgets? – The core
Limit nesting Avoid excessive widget nesting.
building blocks of Flutter apps, defining UI
Lead to bottlenecks
elements and layouts.
Leverage Spacer and divider Use Spacer and
17. Two Main Types of Widgets –
Divider for better layout control.
Stateless Widgets – Fixed UI elements that
22. Common Pitfalls –
do not change. Immutable. Static elements
like labels, images don’t interact with user Infinite Height/Width – Ensure widgets
actions have proper constraints in scrollable views.
Stateful Widgets – UI elements that can Alignment Issues – Be cautious when mixing
update dynamically. Mutable state object. different alignments inside rows and
User inputs or data changes over time columns.
18. Structural Widgets – Define layout and Here are five possible case scenario essay
positioning: provide scaffolding questions based on the provided files:
Column – Arranges children vertically.
Row – Arranges children horizontally. 1. Case Scenario: Choosing the Right
Stack – Overlays widgets on top of each other. Mobile Development Framework
You are a software developer tasked with
Scaffold – Provides a base layout for Material creating a mobile application for a startup
Design apps. Include top app bar, drawer, that wants to launch on both Android and
bottom navigation bar, body iOS as quickly as possible. The client is
unsure whether to develop a native, hybrid,
19. Material & Cupertino Widgets –
or cross-platform app.
Material Widgets – Android-style Question:
components (e.g., AppBar, Drawer). Based on your knowledge of mobile
application development, which approach
Cupertino Widgets – iOS-style components would you recommend (native, hybrid, or
(e.g., CupertinoButton, cross-platform)? Explain your choice by
CupertinoNavigationBar). discussing the advantages, limitations, and
20. Specialized Widgets – the best use cases for each approach.
ListView & GridView – Efficiently display
lists and grids of items. 2. Case Scenario: State Management
Animations and Transitions– Provide in a Flutter Application
smooth UI transitions (AnimatedContainer, A team of Flutter developers is working on a
Hero). mobile e-commerce app. They struggle with
managing user sessions and data across
Interactivity intricate use interactions multiple widgets. They currently rely on
(GestureDetector, Draggable). setState(), but as the app grows,
performance issues arise due to frequent
widget rebuilds.
Question: offline. The developers are considering
What state management approach should the Firebase and local storage solutions.
team implement to improve efficiency? Question:
Compare local state and global state and What are the best practices for securing
suggest a suitable state management solution sensitive data in a Flutter application?
(e.g., Provider, Riverpod, Redux). Justify Compare Firebase database storage and
your answer with practical examples. local storage solutions in terms of security,
accessibility, and scalability. Which would
you recommend for this scenario, and why?
3. Case Scenario: UI Design
Challenges in Responsive and
Adaptive Applications 1. Choosing the Right Mobile
You are developing a business app that must Development Framework
function across various devices, including Answer:
smartphones, tablets, and foldable screens. For fast deployment on both Android and
The stakeholders are concerned about iOS, a cross-platform approach like Flutter
maintaining a consistent user experience is recommended. It allows a single codebase
across different screen sizes. for multiple platforms, reducing
Question: development time and costs. Native apps
Explain the difference between adaptive offer the best performance but require
and responsive UI design. Which approach separate codebases, while hybrid apps are
is more suitable for this scenario, and why? easier to develop but may have performance
Provide specific design strategies that can limitations.
ensure a seamless user experience on all
devices.
2. State Management in a Flutter
Application
4. Case Scenario: Optimizing Answer:
Performance in a Flutter Application For better efficiency, the team should switch
A logistics company uses a Flutter app to to global state management using
track deliveries, but the app experiences Provider or Riverpod. setState() is best
slow performance when handling large for small local changes but inefficient for
datasets. Users complain about lagging UI complex apps. Provider helps manage
updates and delays in displaying real-time shared data across multiple widgets,
tracking information. improving performance and scalability.
Question:
What best practices should be applied to
optimize Flutter app performance? 3. UI Design Challenges in
Discuss the use of efficient state Responsive and Adaptive
management, widget tree optimization, and Applications
proper use of setState(). Include potential Answer:
pitfalls to avoid. A responsive design dynamically adjusts to
different screen sizes using flexible layouts
(e.g., MediaQuery). An adaptive design
5. Case Scenario: Security and Data uses predefined layouts for specific
Storage in a Flutter App devices. For this case, responsive UI is
A healthcare startup is developing a Flutter- better because it provides flexibility across
based app to store patient records. The app various screen sizes.
needs to securely handle sensitive user data
while ensuring accessibility even when
4. Optimizing Performance in a
Flutter Application
Answer:
To optimize performance, the team should:
✔ Use lazy loading with
ListView.builder() for large datasets.
✔ Minimize unnecessary setState() calls.
✔ Use const widgets to reduce rebuilds.
✔ Implement efficient state management
like Provider.
Avoid deep widget nesting and excessive
real-time updates to improve app speed.