Please enable JavaScript.
Coggle requires JavaScript to display documents.
Native Mobile Development - Coggle Diagram
Native Mobile Development
Definition
Apps built for one specific OS with its official language and SDK
Direct access to hardware and OS APIs
iOS
Languages: Swift, Objective-C
IDE: Xcode
UI: SwiftUI, UIKit
Store: App Store (Apple Developer account)
Android
Languages: Kotlin, Java
IDE: Android Studio
UI: Jetpack Compose, XML layouts
Build tool: Gradle
Store: Google Play
Advantages
Best performance
Full access to sensors, camera, GPS, Bluetooth, NFC
Native look and feel
Better security and stability
Immediate support for new OS features
Disadvantages
Two separate codebases
Higher cost and development time
Needs specialized developers
Separate maintenance and updates
Architecture and patterns
MVC, MVP, MVVM
Clean Architecture
Dependency injection (Hilt, Koin)
Native vs cross-platform
Cross-platform: Flutter, React Native, Xamarin/.NET MAUI
Native gives more performance and control
Cross-platform gives faster delivery and one codebase
Core concepts
App lifecycle
Navigation
Local storage (Room, SQLite, Core Data)
Networking and REST APIs (Retrofit, URLSession)
Push notifications
Permissions
Testing and deployment
Unit and UI tests (JUnit, Espresso, XCTest)
Emulators, simulators, real devices
CI/CD (GitHub Actions, Fastlane)
Store publishing
Security
Secure storage (Keychain, Keystore)
Certificate pinning
Code obfuscation (ProGuard/R8)
OWASP MASVS