Mobile Application DevelopmentUnit 111 min read
Mobile Platforms: OS, SDKs, App Stores & Market Trends
Unit 1 of Mobile Application Development explores the foundational mobile ecosystems—Android vs. iOS architectures, SDKs, app distribution models, and global market trends—with real-world examples from Nepal and worldwide, visual comparisons, and exam-focused insights.
Key Concepts and Mobile Ecosystems
1. Mobile Platforms: Definitions and Types
Mobile platforms are software frameworks that enable the development, deployment, and execution of mobile applications. They include:
- Operating Systems (OS): Core software managing hardware and apps (e.g., Android, iOS).
- Software Development Kits (SDKs): Tools/libraries for building apps (e.g., Android Studio, Xcode).
- App Stores: Digital marketplaces for distributing apps (e.g., Google Play Store, Apple App Store).
Comparison Table: Android vs. iOS
| Feature | Android | iOS |
|---|---|---|
| OS Type | Open-source (Linux-based) | Closed-source (Unix-based) |
| Market Share (2023) | ~70% globally | ~30% globally |
| Primary Language | Java/Kotlin | Swift/Objective-C |
| Hardware Flexibility | Works on diverse devices | Limited to Apple devices |
| App Distribution | Google Play Store | Apple App Store |
| Customization | High (theming, sideloading) | Low (Apple restrictions) |
2. Android Architecture: Layered Model
Android’s architecture is divided into 4 layers:
- Linux Kernel: Manages hardware (CPU, memory, drivers).
- Hardware Abstraction Layer (HAL): Interfaces between kernel and hardware (e.g., camera, GPS).
- Android Runtime (ART): Executes apps (Dalvik VM → ART for AOT compilation).
- Java API Framework: Provides libraries for UI, networking, etc.
classDiagram
class LinuxKernel {
+Device Drivers
+Memory Management
+Process Management
}
class HAL {
+Hardware Abstraction
+Camera/GPS APIs
}
class AndroidRuntime {
+ART (Ahead-of-Time)
+Dalvik (Just-in-Time)
}
class JavaAPI {
+Activity Manager
+View System
+Content Providers
}
LinuxKernel --> HAL : Uses
HAL --> AndroidRuntime : Provides
AndroidRuntime --> JavaAPI : ExecutesWorked Example: Android’s ART vs. Dalvik
- Dalvik (Old): Used JIT compilation (slower startup).
- ART (New): Uses AOT compilation (faster performance, but larger app size). Example: A game app benefits from ART’s speed, while a simple note-taking app might use Dalvik for lower memory overhead.
3. iOS Architecture: Monolithic Design
iOS is built on a Unix-based core with these layers:
- Core OS: Low-level services (security, networking).
- Core Services: System frameworks (Foundation, Core Foundation).
- Media & Cocoa Touch: UI and app frameworks (UIKit, SwiftUI).
- C Language: Underlying language for performance-critical tasks.
4. Mobile App Development Tools
classDiagram
class AndroidStudio {
+Emulator
+SDK Manager
+NDK
}
class Xcode {
+Simulator
+Interface Builder
+SwiftUI
}
AndroidStudio --> "Kotlin/Java" : Uses
Xcode --> "Swift/Objective-C" : Uses
AndroidStudio ..> "Google Play" : Deploys
Xcode ..> "App Store" : DeploysToolchain comparison: Android Studio (IntelliJ-based) vs. Xcode (Apple’s IDE).Android SDK (Software Development Kit)
- Components:
- Android Studio: Official IDE (based on IntelliJ).
- Emulator: Virtual devices for testing.
- SDK Manager: Downloads APIs, tools, and documentation.
- NDK (Native Development Kit): For C/C++ performance optimizations.
iOS SDK (Xcode)
- Components:
- Xcode IDE: Integrates Swift/Objective-C development.
- Simulator: Emulates iOS devices.
- Interface Builder: Drag-and-drop UI design.
Comparison Table: Android Studio vs. Xcode
| Tool | Android Studio | Xcode |
|---|---|---|
| IDE | IntelliJ-based | Apple’s proprietary IDE |
| Language | Java/Kotlin | Swift/Objective-C |
| Emulator | Slow (QEMU-based) | Faster (Apple’s virtualization) |
| UI Design | XML-based (or Jetpack Compose) | Storyboards/SwiftUI |
| Platform | Cross-platform (Windows/macOS/Linux) | macOS-only |
In the Real World
eSewa (Nepal):
- Platform: Uses Android/iOS SDKs to build its payment app.
- Key Idea: Leverages Android’s
PaymentRequestAPI and iOS’sPassKitfor secure transactions. - Example: When you scan a QR code to pay, the app uses the device’s camera via Android’s
CameraXlibrary.
Khalti (Nepal):
- Platform: Hybrid app (React Native) targeting both Android and iOS.
- Key Idea: Uses Firebase Authentication for login and SQLite for offline transaction history.
- Example: If your internet drops, Khalti syncs data when reconnected using Android’s
WorkManager.
Google Maps (Global):
- Platform: Native Android/iOS apps with Google Maps SDK.
- Key Idea: Uses Android’s
LocationManagerand iOS’sCoreLocationfor GPS tracking. - Example: When you search for "NTC office Kathmandu," the app fetches real-time traffic data via Google’s servers.
5. App Distribution Models
Google Play Store
- Pros:
- Open to all developers (after one-time $25 fee).
- Supports sideloading (APK installation).
- Google Play Billing: Handles in-app purchases.
- Cons:
- 30% revenue cut for paid apps.
- App review process can delay updates.
Apple App Store
- Pros:
- Strict quality control (fewer malware apps).
- TestFlight: Beta testing for users.
- Cons:
- 30% revenue cut (same as Google).
- Closed ecosystem: No sideloading without jailbreaking.
Worked Example: Publishing a Nepalese News App
- Android:
- Upload APK/AAB to Google Play Console.
- Set pricing (e.g., $0 with ads or $2.99 premium).
- Use Firebase Analytics to track user engagement.
- iOS:
- Archive app in Xcode → Upload to App Store Connect.
- Submit for review (Apple checks for compliance with Human Interface Guidelines).
6. Mobile Market Trends (2023–2024)
| Trend | Description | Example (Nepal/Global) |
|---|---|---|
| 5G Adoption | Faster apps, AR/VR growth. | Pathao’s real-time ride tracking. |
| Cross-Platform | Single codebase for Android/iOS (Flutter, React Native). | Daraz’s mobile app (React Native). |
| AI Integration | Chatbots, personalized recommendations. | Ncell’s AI customer service chatbot. |
| Privacy Laws | GDPR, Nepal’s Digital Security Act (2018). | Apps must request explicit permissions. |
| Foldable Phones | New UI/UX challenges (e.g., multi-window layouts). | Samsung Galaxy Z Fold (Android). |
7. Exam Tip: How This Unit is Tested
Definitions (5 marks):
- Expect questions like: "Define Android’s ART and explain its advantage over Dalvik." Answer: ART (Android Runtime) uses AOT compilation for faster app execution, unlike Dalvik’s JIT, which compiles bytecode at runtime.
Comparisons (10 marks):
- "Compare Android and iOS architectures with a focus on customization."
Answer: Use the table above + add:
- Android allows sideloading (installing APKs from sources other than Play Store).
- iOS restricts sideloading to approved developers only.
- "Compare Android and iOS architectures with a focus on customization."
Answer: Use the table above + add:
Scenario-Based (15 marks):
- "A Nepalese bank wants to build a mobile app for loan applications. Choose between Android and iOS and justify your choice."
Answer:
- Android: Better for reach (70% market share in Nepal) and customization (e.g., integrating with local payment gateways like Khalti).
- iOS: Better for security (strict app review) if targeting urban users with higher disposable income.
- Bonus: Mention Firebase for backend services (authentication, real-time updates).
- "A Nepalese bank wants to build a mobile app for loan applications. Choose between Android and iOS and justify your choice."
Answer:
Diagrams (10 marks):
- Draw and label:
- Android’s 4-layer architecture.
- iOS’s monolithic stack.
- Tip: Use arrows to show data flow (e.g., "HAL → Android Runtime").
- Draw and label:
Code Snippets (5 marks):
- "Write a Kotlin snippet to check if a device supports 5G."
val telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager val networkType = telephonyManager.networkType val is5G = networkType == TelephonyManager.NETWORK_TYPE_NR // 5G
- "Write a Kotlin snippet to check if a device supports 5G."
8. Practical Exercise: Build a Simple App
Task: Create a "Nepal Traffic Status" app that shows real-time traffic data (e.g., from NTC’s API).
- Platform Choice: Android (higher user base in Nepal).
- Tools:
- Android Studio (SDK: API 33).
- Retrofit for API calls (e.g.,
https://api.ntc.gov.np/traffic).
- Key Code:
interface TrafficApiService { @GET("traffic") suspend fun getTrafficData(): Response<TrafficResponse> } - UI: Use
RecyclerViewto display routes with traffic status (green/red icons). - Testing: Emulate a 5G connection in Android Studio’s emulator.
Visual Trace: API Call Flow
sequenceDiagram
App->>+API: GET /traffic (Retrofit)
API-->>-App: JSON Response (200 OK)
App->>UI: Update RecyclerView
UI->>User: Show "Kathmandu-Thamel: Heavy Traffic"Summary Table for Quick Revision
| Topic | Key Points |
|---|---|
| Android vs. iOS | Open-source vs. closed; Java/Kotlin vs. Swift; Play Store vs. App Store. |
| ART/Dalvik | ART = AOT (faster), Dalvik = JIT (slower but flexible). |
| SDKs | Android Studio (IntelliJ) vs. Xcode (Apple-only). |
| App Stores | Google Play: open; App Store: curated. |
| Trends | 5G, cross-platform, AI, privacy laws. |
Based on the TU BIM syllabus for Mobile Application Development (IT272), unit 1.
Discussion
Loading…