Mobile Development Flashcards
Core OS
- Security
- Memory Management
- Process Management
- Network Stack
- Driver Model
Hardware Abstraction Layer (HAL)
- Interface for the Android framework to communicate with device hardware.
- Abstracts hardware-specific details, allowing Android to run on various devices.
These libraries provide core functionalities for various Android components, such as graphics, sound, and security.
Native C/C++ Libraries
Takes Java bytecode compiled into Dalvik Executable (DEX) format and translates it into native machine code that can be directly executed by the device’s processor
Android Runtime (ART)
High-level API available to app developers
Java API Framework
Abstracts the complexities of the underlying Core OS, making it easier for developers to build applications.
Core Services
Provides the frameworks and technologies necessary for applications to work with audio, video, graphics, and animations
Media
- This layer is what developers use to create the interactive and visually appealing aspects of iOS applications.
- It is the layer that directly interacts with the user.
- It is the main application layer for IOS.
Cocoa/Cocoa Touch
Function passed as an argument to another function, which is then invoked (called back) inside the outer function to perform a specific action or routine.
Lifecycle Callbacks
Types of Mobile Apps
- Native Apps
a. Android
b. iOS - Hybrid Apps
- Cross-Platform Apps
- Progressive Web Apps
These applications are developed for a particular platform or device.
1. Code for both platforms
2. Deploy to both platform stores
3. Update both codebases
Native Apps
Native Apps Pros
- Performance
- Support
- Security
- Full device feature access
Native Apps Cons
- Codebase
- Specialized skill
- Time -> Cost
- Platform specific nuances
- Apps built using web technologies (HTML, CSS, JavaScript) and wrapped in a native container.
- Relatively easy and quick to develop.
- Can access some device features through plugins.
- Performance can be a concern.
- Code using React, Angular, etc (HTML, CSS, javascript)
- Build for mobile by using Cordova or Ionic
Hybrid Apps
- Closest tier to native development
- Provides own components.
1. Code
2. Build and deploy for different platforms
Cross-platform
- Built using web technologies
- Acts like a native app
- Limited hardware access
- Can bypass App Store/Play Store
- “App-like”
- Code
- Build and deploy a website
- Install on mobile device. runs on browser
Progressive Web Apps (PWA)
Native vs Hybrid/Cross-Platform vs PWAs Disadvantages
- Native
a. Higher Development Cost
b. Multiple Codebases for the same app - Hybrid/Cross-Platform
a. Complex apps = slower
b. Apps cannot perform OS specific tasks - PWAs
a. Limited offline functionality
b. Limited access to device features/hardware
c. Security Risk
d. Appstore?
Native vs Hybrid/Cross-Platform vs PWAs Advantages
- Native
a. Device specific features
b .Works offline
c. Better use of OS and device specific functionalities - Hybrid/Cross-Platform
a. Reusable Code
b. Access to native features
c. Close-to-native UX - PWAs
a. Reduced Development Costs
b. Easy Updates
c. Versatility
d. Appstore?
Some things to consider when making your decision
- Performance
- Development Cost and Time
- UX
- Access to Device and Features
- Maintenance and Updates
- Target Audience