Please enable JavaScript.
Coggle requires JavaScript to display documents.
Week 3: Mobile OS, Components and Flow (Reside res/ (animator/, anim/,…
Week 3: Mobile OS, Components and Flow
Types of MAD
Mobile Web OS
What is it?
- Condensed version of web app
- Viewed via mobile internet browser
Advantages
- Do not required download
- Do not take extra storage in phone
- Useble for all mobile OS
Pros
- Easy to maintain *, common code base across multiple mobile platforms
- No installation needed
- Do not need approve at marketplace
- User no need to update application, newest version always loaded.
Cons
- Need internet connection.
- LImited accessibiility to device features
- Difficult to discover, not listed in any app store
- Hosting of applicaiton need extra cost
Native App
What is it?
Specifically target on certain platform / mobile OS:
- Swift/ Obj-C for iOS
- Java fro Android
Special Native App:
- Xamarin (C# - Android, iOS and Windows)
- React Native (JS and React - Android and iOS)
Pros
- Less complex*
- Faster
- Have specialize IDE
- Have expected funciton
- Compatibility ensured
Cons
- Harder to update the interface
- Only for one OS
- Harder to do same app to other OS
- Have to know the specific language of specific OS
- Time consuming
Hybrid App
What is it?
- Native App + Mobile Web App
- Install as Native App but it's works as Web App
- Normally build using JS, HTML5 and CSS
Frontend is a native shell
Pros
- Update and iterate without going through the app store *
- Eligible to enter app store
- Can access device API such as camera or GPS
- Run on multiple platforms
Cons
- Limited access to phone functionality
- Need Internet access
- Difficulties with advance graphics like game app
- Low customization
Android App
Introduction
- Can be written using Java, Kotlin or C++
- Android SDK compiles all your mobile app codes into single Android Packages, .apk, for download and installation
Each installed android app is contained inside a security sandbox, which provide following functionalities:
- Android OS is in multi-user environment - each app is a single user.
- System assigns app with unique user ID for control access purposes.
- Each app runs in its own Linux process
- Each process runs independently inside its own VM
Android App components
- Essentail building blocks of Android
- Entry point for user/system access the App
4 Different Components
- Each component serves different purposes and have different lifecycle
What is this?
- Entry point to interact with user
- One activity = Single screen with user interface
Facilitates following key interaction between system and app:
- Keep track of what currently user cares about
- Help app on handling killed process
- Prioritize which processes that users might return.
- Provide app to implement user flows and for system to coordinate them.
-
What is this?
- General purpose entry point
- keep the app running in background
- No user interface
Eg:
- Play music(user-aware services)
- Fetch data over network(less user-aware services)
- Live Wallpaper
- Accessibility services
- Notification listeners
What is this?
- Enable the system to deliver the events to the app OUTSIDE of a regular user flow
- Allowing the app to response to system-wide broadcast announcement
- Can deliver broadcast to the app taht are currently not running.
E.g.
- App scheduled alarm to notify user for upcoming event
- announce battery low, data has been downloaded
- Does not display full user interface, but may create status bar notificaiton
What is this?
- Manages a shared set of app data that you can stored in a file system/ SQLite datebase / on web/ any persistent storage location.
- Other app can query or modify the data if content provider allows it (security feature).
- Provide entry point into the app for publishing named data items, identified by URI (uniform resource identifier) scheme.
-
-