Course outline
Module 1
Module 1: Mobile Development Landscape
Mobile Development Landscape
Knowledge check
Q1. Which of the following best describes a native mobile app?
- A. An app written once using web technologies and wrapped in a browser shell
- B. An app built specifically for one platform using that platform's official languages and tools ✓
- C. An app that runs entirely on a remote server and is streamed to the device
- D. An app that can only be installed through a web browser
Why: Native apps are built for a specific platform (such as iOS or Android) using its official languages and SDKs, such as Swift/Objective-C for iOS or Kotlin/Java for Android, which allows full access to device features and optimal performance.
Q2. Which two operating systems dominate the global mobile market?
- A. Windows Phone and BlackBerry OS
- B. iOS and Android ✓
- C. Symbian and webOS
- D. Ubuntu Touch and Tizen
Why: iOS (Apple) and Android (Google) together account for the vast majority of smartphones in use worldwide, which is why most mobile development targets these two platforms.
Q3. What is a cross-platform development framework?
- A. A tool that only works on desktop computers
- B. A toolkit that lets developers write code once and deploy it to multiple mobile platforms ✓
- C. A hardware standard for building smartphones
- D. A cloud service that stores app data for users
Why: Cross-platform frameworks such as Flutter, React Native, and .NET MAUI allow developers to share much of their codebase across iOS and Android, reducing development time and cost compared with maintaining two separate native apps.
Q4. Which programming language is Apple's primary language for modern iOS development?
- A. Kotlin
- B. Java
- C. Swift ✓
- D. C#
Why: Swift, introduced by Apple in 2014, is the modern primary language for iOS, iPadOS, macOS, watchOS, and tvOS development, replacing Objective-C for most new projects.
Q5. What is a key advantage of Progressive Web Apps (PWAs) compared with native apps?
- A. They require no internet connection at any time
- B. They can be accessed through a browser without going through an app store and work across devices ✓
- C. They have direct, unrestricted access to all hardware features
- D. They never need to be updated
Why: PWAs run in the browser yet can be installed on the home screen and offer offline capabilities, so they avoid app store approval and work across platforms, though they have more limited access to some device hardware than native apps.
Module 2
Module 2: Native vs Cross-Platform Approaches
Native vs Cross-Platform Approaches
Knowledge check
Q1. Which of the following best describes a native mobile app?
- A. An app built once and run on multiple platforms through a web browser
- B. An app built specifically for one platform using that platform's official languages and tools ✓
- C. An app that wraps a website inside a shell that runs on any device
- D. An app that is compiled into a single codebase shared by all operating systems
Why: Native apps are built for a specific platform (such as iOS or Android) using that platform's official languages and SDKs, such as Swift or Kotlin, giving direct access to platform features and performance.
Q2. What is a key advantage of cross-platform development?
- A. It always delivers better performance than native apps
- B. It allows a single codebase to target multiple platforms, reducing development time and cost ✓
- C. It eliminates the need for any testing on real devices
- D. It gives direct access to every hardware feature without limitations
Why: Cross-platform frameworks such as Flutter or React Native let developers write one codebase that runs on both iOS and Android, which typically reduces development time and cost compared with building two separate native apps.
Q3. Which of the following is a common native development language for Android?
- A. Swift
- B. Dart
- C. Kotlin ✓
- D. JavaScript
Why: Kotlin is the officially preferred language for Android development, alongside Java. Swift is used for iOS, Dart is used with Flutter, and JavaScript is used with frameworks like React Native.
Q4. A team needs its app to make heavy use of advanced camera features and run with maximum performance on each platform. Which approach is generally most suitable?
- A. Web-based app
- B. Cross-platform framework
- C. Native development ✓
- D. Hybrid app with a WebView
Why: Native development gives the most direct access to platform APIs and hardware and typically delivers the best performance, making it the strongest choice for performance-critical or hardware-intensive features.
Q5. Which statement about cross-platform frameworks is accurate?
- A. They can never share any business logic between platforms
- B. They may require occasional platform-specific code for certain native features ✓
- C. They are only usable for games
- D. They remove the need to understand mobile app architecture
Why: Cross-platform frameworks share most of the code, but developers sometimes need to write platform-specific code or use native plugins to access specialized device features or achieve a platform-specific look and behavior.
Module 3
Module 3: App Architecture Fundamentals
App Architecture Fundamentals
Knowledge check
Q1. In a typical mobile app architecture, which layer is primarily responsible for handling user interface elements and user interactions?
- A. Data layer
- B. Presentation layer ✓
- C. Network layer
- D. Persistence layer
Why: The presentation layer (often called the UI layer) displays information to the user and captures user input. It is separated from business logic and data handling so that each concern can change independently.
Q2. What is the main purpose of separating an app into layers such as presentation, domain, and data?
- A. To make the app load faster on every device
- B. To reduce the total number of files in the project
- C. To keep concerns separated so code is easier to maintain, test, and change ✓
- D. To ensure the app can only run on one operating system
Why: Layered architecture separates responsibilities, so changes in one area (such as the database) have minimal impact on others (such as the UI). This improves maintainability, testability, and scalability.
Q3. Which architectural pattern divides an app into Model, View, and Controller components?
- A. MVC ✓
- B. REST
- C. CRUD
- D. SOLID
Why: MVC (Model-View-Controller) is a classic pattern where the Model manages data and logic, the View displays the UI, and the Controller handles input and coordinates between them. REST is an API style, CRUD describes basic data operations, and SOLID is a set of design principles.
Q4. In MVVM architecture, what role does the ViewModel play?
- A. It directly draws pixels on the screen
- B. It stores the app's raw database files
- C. It exposes data and state to the View and handles presentation logic without referencing UI components directly ✓
- D. It replaces the operating system's memory manager
Why: The ViewModel prepares and exposes data for the View, often through observable state, and processes presentation logic. Because it does not reference UI components directly, it can be tested without the UI.
Q5. Why is it generally a good practice to keep business logic out of the UI layer?
- A. UI components cannot run any code at all
- B. Business logic runs faster when placed in a separate file
- C. Business logic is reusable, testable, and unaffected by UI changes when it is kept separate ✓
- D. Operating systems require business logic to be in a database
Why: When business logic lives outside the UI, it can be reused across different screens or platforms, tested without launching the interface, and modified without rewriting visual components.
Module 4
Module 4: User Interface and Experience Design
User Interface and Experience Design
Knowledge check
Q1. What is the primary goal of user interface (UI) design in a mobile app?
- A. To make the app's source code run faster
- B. To create visual and interactive elements that help users navigate and use the app easily ✓
- C. To reduce the size of the app for download
- D. To handle data storage on the device
Why: UI design focuses on the visual and interactive elements users see and touch, such as buttons, menus, and screens, so they can accomplish tasks easily.
Q2. Which term describes the overall feeling a user has when interacting with an app, including ease of use, satisfaction, and emotional response?
- A. Source code quality
- B. Server latency
- C. User experience (UX) ✓
- D. Database normalization
Why: User experience (UX) encompasses everything about how a user perceives and feels while interacting with a product, going beyond just the visual interface.
Q3. Why are touch targets such as buttons recommended to be at least about 44 to 48 points (or 48 dp) in size on mobile devices?
- A. Larger targets consume less battery power
- B. It makes the app load faster over the network
- C. It helps users tap accurately with their fingers without accidentally hitting nearby elements ✓
- D. It is required by all app stores for approval
Why: Fingers are much less precise than a mouse pointer, so minimum touch target sizes reduce mis-taps and improve usability. Apple and Google both publish guidelines around these sizes.
Q4. What does the term 'responsive layout' mean in mobile app design?
- A. An app that responds to incoming phone calls
- B. A layout that adapts to different screen sizes and orientations ✓
- C. A layout that updates the server in real time
- D. A design that uses only text with no images
Why: A responsive layout adjusts element sizes, positions, and arrangement so the interface looks and works well across phones, tablets, and both portrait and landscape orientations.
Q5. Which principle suggests that users should be able to predict what will happen based on what they have already learned from other apps and systems?
- A. Consistency ✓
- B. Encryption
- C. Compression
- D. Concurrency
Why: Consistency means using familiar patterns, icons, and behaviors across the app and following platform conventions, so users can apply what they already know and feel confident navigating.
Module 5
Module 5: Data Storage and Networking
Data Storage and Networking
Knowledge check
Q1. Which storage option is best suited for saving small amounts of user preferences, such as a dark mode setting, in a mobile app?
- A. A SQLite database
- B. Shared preferences (key-value storage) ✓
- C. A remote cloud database
- D. A large binary file in the app bundle
Why: Shared preferences, or key-value storage, is designed for small, simple pieces of data like user settings. A SQLite database or cloud database is unnecessary overhead for a single setting, and the app bundle is read-only at runtime, so it cannot store changing user data.
Q2. What does SQLite provide to mobile developers?
- A. A cloud-hosted relational database accessed over the internet
- B. A lightweight, serverless relational database stored locally on the device ✓
- C. A network protocol for real-time messaging
- D. A graphics rendering engine for animations
Why: SQLite is an embedded, serverless relational database engine that stores data in a local file on the device. It is widely used in mobile apps because it is lightweight and requires no separate server process.
Q3. Which HTTP method is conventionally used to retrieve data from a remote server without changing it?
- A. POST
- B. DELETE
- C. GET ✓
- D. PUT
Why: GET is the HTTP method used to request data from a server without modifying server state. POST creates resources, PUT replaces or updates them, and DELETE removes them.
Q4. Why do mobile apps commonly use JSON when communicating with a backend API?
- A. JSON is the only format supported by mobile operating systems
- B. JSON is lightweight, human-readable, and easily parsed by most programming languages ✓
- C. JSON automatically encrypts all transmitted data
- D. JSON stores images more efficiently than other formats
Why: JSON is a lightweight, human-readable text format that is easy to parse in virtually every programming language, which makes it a popular choice for API responses. It does not provide encryption or image storage, and it is not the only format supported.
Q5. Why should network requests in a mobile app generally be performed off the main (UI) thread?
- A. Network requests run faster on background threads due to better CPU speed
- B. Performing long network operations on the main thread can freeze the user interface and cause unresponsiveness ✓
- C. The main thread is not allowed to access the internet at all
- D. Background threads are required to save data to local storage
Why: The main thread handles UI rendering and user input. Blocking it with a slow network call makes the app unresponsive, which can lead to freezes or system warnings. Network work is typically done asynchronously or on background threads to keep the interface smooth.
Module 6
Module 6: Testing, Debugging, and Performance
Testing, Debugging, and Performance
Knowledge check
Q1. What is the main purpose of unit testing in mobile app development?
- A. To verify the visual design matches the mockups
- B. To check that individual functions or components work correctly in isolation ✓
- C. To measure how many users download the app
- D. To compress the app's final file size
Why: Unit tests check small, isolated pieces of code, such as a single function or class, to confirm they behave as expected. This makes bugs easier to find and fix early.
Q2. Which tool is commonly used to inspect variable values and step through code line by line while an app runs?
- A. A debugger ✓
- B. A code formatter
- C. A version control system
- D. A package manager
Why: A debugger lets developers pause execution at breakpoints, inspect variables, and step through code one line at a time, which helps locate the source of errors.
Q3. What does a 'memory leak' refer to in a mobile app?
- A. Sensitive user data being sent to an unauthorized server
- B. Memory that is no longer needed but is never released, causing usage to grow over time ✓
- C. Images that fail to load because of a slow network
- D. A crash caused by running out of storage on the device
Why: A memory leak happens when an app keeps references to objects it no longer needs, so the memory is never freed. Over time this can slow the app down or cause it to crash.
Q4. Why is testing on real devices important, in addition to emulators or simulators?
- A. Emulators cannot run any code at all
- B. Real devices reveal issues related to hardware, performance, screen sizes, and manufacturer-specific behavior that emulators may not reproduce accurately ✓
- C. Real devices are always faster to set up than emulators
- D. Emulators are only used for iOS development
Why: Emulators are useful but cannot fully replicate real hardware such as camera sensors, battery behavior, GPU performance, or manufacturer customizations. Testing on real devices catches these differences.
Q5. Which metric is most directly related to how smoothly an app's screen animations appear to the user?
- A. Frame rate, measured in frames per second ✓
- B. App store rating
- C. Number of lines of code
- D. Size of the app icon
Why: Frame rate measures how many frames are rendered each second. Higher, consistent frame rates (commonly 60 fps or more) make animations and scrolling look smooth, while drops cause visible stutter.
Module 7
Module 7: Publishing and Maintaining Apps
Publishing and Maintaining Apps
Knowledge check
Q1. What is the main purpose of an app store listing's screenshots and description?
- A. To compile the app's source code for users
- B. To explain the app's value and encourage users to download it ✓
- C. To register the app's trademark with the government
- D. To set the app's pricing automatically
Why: Screenshots and descriptions are marketing materials that show users what the app does and why it is worth installing. They directly influence download decisions.
Q2. Which of the following is a common reason an app submission is rejected during review?
- A. The app uses a clear and simple icon design
- B. The app crashes or fails to function as described ✓
- C. The app has a short name
- D. The app was developed using a popular framework
Why: App stores reject apps that crash, are broken, or do not work as described in the listing. Stability and accurate functionality are core review requirements.
Q3. What does it mean to version an app?
- A. To translate the app into multiple languages
- B. To assign a unique identifier and number to each release so updates can be tracked ✓
- C. To delete old copies of the app from user devices
- D. To reduce the file size of the app package
Why: Versioning assigns identifiers such as 1.0, 1.1, or 2.0 to each release. This helps developers track changes and lets the store and users distinguish between builds.
Q4. Why is ongoing maintenance important after an app is published?
- A. Published apps never need to be changed again
- B. Operating systems, devices, and user needs change, so apps must be updated to keep working well ✓
- C. Maintenance is only required for paid apps
- D. App stores delete apps that are not updated within a day
Why: Operating system updates, new devices, security issues, and evolving user expectations all require regular updates. Without maintenance, an app can break or become insecure.
Q5. What is the purpose of a beta testing track before a full public release?
- A. To avoid paying store listing fees
- B. To let a limited group of users test the app and report issues before wide release ✓
- C. To remove the need for a privacy policy
- D. To automatically increase the app's ranking in search results
Why: Beta testing lets real users try a near-final version and report bugs or usability problems. This reduces the chance of serious issues reaching the full user base.