Mobile Application Development Exam Preparation
Chapter 1: Types of Apps & Architecture
1. Three Types of Apps
There are three main types of mobile applications, each with its own pros and cons.
Type Description Pros Cons Example Use
Case
Native Apps developed ⚡ Best ❌ Expensive, Banking apps,
Apps specifically for a performance, full requires high-performance
platform access to device separate gaming apps, or
(Android/iOS) using features (camera, codebases for apps requiring
native languages GPS, Bluetooth). iOS & Android. deep hardware
(Swift, Kotlin, Java). integration.
Web Apps that run inside a 🌍 No installation ❌ Limited Blogs, news
Apps browser using HTML, required, works access to websites, online
CSS, and JavaScript. across all devices. hardware shopping.
features,
requires an
internet
connection.
Hybrid A mix of native and ✅ One codebase ❌ Performance E-commerce apps,
Apps web apps, built using for both may not be as delivery apps,
frameworks like platforms, smooth as business apps.
Flutter, React Native. faster native apps.
development.
Scenario Example:
● If a company wants a highly responsive app with deep access to phone features
like Face ID or Bluetooth → Native App.
● If they just need a simple app for content and don’t want to force users to install
it → Web App.
● If they need cost-effective cross-platform development with moderate
performance → Hybrid App.
2. Architecture of Reactive UI (Flutter)
Flutter uses Reactive UI, meaning the UI updates automatically when the data changes.
🔹 3 Key Concepts of Reactive UI
1 Data Flow
1️⃣
● In Flutter, data should flow in a single direction (from top to bottom).
● Example: If the user updates a shopping cart, the changes should flow from
the backend → UI → updates the screen.
Handling Data Flow in Flutter:
● Use Providers or Bloc for managing complex data flows.
● Avoid passing data manually through multiple widget levels.
2️⃣State Management
● State is any data that changes during the app’s lifecycle (e.g., counter value, theme
settings).
● Flutter has two types of state management:
1. Local State Management (Simple Apps) → setState()
2. Global State Management (Complex Apps) → Provider, Riverpod, Bloc
3️⃣Widget Tree & Rebuilding
● Widgets should rebuild efficiently to avoid performance issues.
● If too many widgets rebuild unnecessarily, it slows down the app.
Best Practices for Performance:
● Use const whenever possible to prevent unnecessary rebuilds.
● Use [Link] for dynamically loaded lists (instead of Column).
● Use ValueNotifier or Provider for better state management in large apps.
Chapter 2: Navigation & App Lifecycle
1. Navigation & Passing Data Between Screens
📌 Using [Link]() (Basic Navigation)
[Link](
context,
MaterialPageRoute(builder: (context) => SecondScreen()),
);
📌 Passing Data Between Screens
If you need to send data to another screen, pass it through the constructor:
🔹 First Screen (Sending Data):
[Link](
context,
MaterialPageRoute(builder: (context) => SecondScreen(data: "Hello")),
);
🔹 Second Screen (Receiving Data):
class SecondScreen extends StatelessWidget {
final String data;
SecondScreen({required [Link]});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(child: Text(data)),
);
}
}
2. App Lifecycle States in Flutter
Flutter apps go through different lifecycle states:
State Description Example
Resumed App is active and running. User is browsing a shopping
app.
Inactive App is open but not interactive. User is on a call while the app is
open.
Paused App is in the background but still User minimizes the app.
running.
Suspended/ App is closed completely. User swipes the app away from
Terminated recent apps.
Chapter 3: UI & Navigation Principles
1. Stateful vs. Stateless Widgets
Type Description Example
Stateless Does not change once built. A static logo, text, or icon.
Widget
Stateful Can change based on user A button that changes color when
Widget interaction. clicked.
2. Three Design Methods for Everyone
1. Internationalization (i18n) → Support multiple languages.
2. Adaptive Layouts → Ensure UI works on all screen sizes.
3. Accessibility Features → Add voice-over, screen readers, high contrast colors.
3. Five Navigation Principles
1. Fixed start destination.
2. Navigation state is represented as a stack of destinations.
3. Up and Back are identical within your app's task.
4. The Up button never exits your app.
5. Deep linking simulates manual navigation.
4. Navigation Types: Difference Between 2
Type Description Example
Tab Navigation Used for switching between major Instagram’s Home, Search,
sections of an app. Reels tabs.
Drawer Used for settings, extra options. Gmail’s sidebar menu.
Navigation
Final Tips for Exam
● Focus on scenarios where you must decide which app type, widget, or navigation type
to use.
● Understand state management concepts well.
● Use best practices for performance optimization.
● Remember app lifecycle states (Resumed, Paused, Terminated).
Good luck with your exam! 🚀