Mobile Development Flashcards

1
Q

Core OS

A
  • Security
  • Memory Management
  • Process Management
  • Network Stack
  • Driver Model
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hardware Abstraction Layer (HAL)

A
  • Interface for the Android framework to communicate with device hardware.
  • Abstracts hardware-specific details, allowing Android to run on various devices.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

These libraries provide core functionalities for various Android components, such as graphics, sound, and security.

A

Native C/C++ Libraries

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

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

A

Android Runtime (ART)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

High-level API available to app developers

A

Java API Framework

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Abstracts the complexities of the underlying Core OS, making it easier for developers to build applications.

A

Core Services

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Provides the frameworks and technologies necessary for applications to work with audio, video, graphics, and animations

A

Media

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  • 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.
A

Cocoa/Cocoa Touch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

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.

A

Lifecycle Callbacks

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Types of Mobile Apps

A
  1. Native Apps
    a. Android
    b. iOS
  2. Hybrid Apps
  3. Cross-Platform Apps
  4. Progressive Web Apps
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

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

A

Native Apps

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Native Apps Pros

A
  • Performance
  • Support
  • Security
  • Full device feature access
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Native Apps Cons

A
  • Codebase
  • Specialized skill
  • Time -> Cost
  • Platform specific nuances
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  • 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.
  1. Code using React, Angular, etc (HTML, CSS, javascript)
  2. Build for mobile by using Cordova or Ionic
A

Hybrid Apps

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  • Closest tier to native development
  • Provides own components.
    1. Code
    2. Build and deploy for different platforms
A

Cross-platform

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  • Built using web technologies
  • Acts like a native app
  • Limited hardware access
  • Can bypass App Store/Play Store
  • “App-like”
  1. Code
  2. Build and deploy a website
  3. Install on mobile device. runs on browser
A

Progressive Web Apps (PWA)

17
Q

Native vs Hybrid/Cross-Platform vs PWAs Disadvantages

A
  1. Native
    a. Higher Development Cost
    b. Multiple Codebases for the same app
  2. Hybrid/Cross-Platform
    a. Complex apps = slower
    b. Apps cannot perform OS specific tasks
  3. PWAs
    a. Limited offline functionality
    b. Limited access to device features/hardware
    c. Security Risk
    d. Appstore?
18
Q

Native vs Hybrid/Cross-Platform vs PWAs Advantages

A
  1. Native
    a. Device specific features
    b .Works offline
    c. Better use of OS and device specific functionalities
  2. Hybrid/Cross-Platform
    a. Reusable Code
    b. Access to native features
    c. Close-to-native UX
  3. PWAs
    a. Reduced Development Costs
    b. Easy Updates
    c. Versatility
    d. Appstore?
19
Q

Some things to consider when making your decision

A
  1. Performance
  2. Development Cost and Time
  3. UX
  4. Access to Device and Features
  5. Maintenance and Updates
  6. Target Audience