0% found this document useful (0 votes)
22 views13 pages

CIE1 Mobile App Development - Complete MCQ Study Guide

Uploaded by

kiranb.btdip23
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views13 pages

CIE1 Mobile App Development - Complete MCQ Study Guide

Uploaded by

kiranb.btdip23
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

CIE1 Mobile Application Development - Complete MCQ Study

Guide
Exam Date: September 1, 2025 | Time: 1:50 PM - 2:50 PM

MODULE 1: INTRODUCTION TO MOBILE APP DEVELOPMENT

1. Mobile Apps vs Web Apps

Mobile Applications

Installation: Downloaded from app stores (Google Play/App Store)

Storage: Need device storage space


Offline Access: Can work without internet connection

Performance: Faster browsing experience


Approval: Must be approved by app stores
Security: More sophisticated security features

Updates: Need manual updates by users


Hardware Access: Full access to device features (camera, GPS, accelerometer)

Web Applications

Access: Through browsers, no installation required


Internet: Require constant internet connection
Updates: Automatic updates, no user action needed

Performance: May load slower than mobile apps


Approval: No app store approval needed

Security: May have less heightened security


Platform: Accessible from any device with browser

2. Types of Mobile Applications

Native Applications

Platform: Built for ONE specific OS (either iOS OR Android)


Performance: Best performance, optimized for platform
Languages:
Android: Java, Kotlin
iOS: Swift, Objective-C

Code Reuse: Cannot reuse code across platforms

APIs: Direct access to platform-specific APIs


User Experience: Best UX with native UI components

Development Cost: Higher (separate apps for each platform)

Hybrid Applications

Platform: Run on ANY platform (iOS and Android)


Technology: Web technologies (HTML, CSS, JavaScript) in native container

Code Reuse: Single codebase for all platforms

APIs: Access native features through plugins

Performance: Moderate performance

Examples: Ionic, Cordova apps

Cross-Platform Applications

Definition: Single shared codebase for Android, iOS, and desktop

Frameworks: Flutter, React Native, Xamarin

Languages: Dart (Flutter), JavaScript (React Native)

Development Time: Faster than native

Performance: Near-native performance

Code Reusability: High reusability across platforms

3. Mobile Operating Systems

Android

Base: Linux kernel (modified version)

Nature: Open-source (AOSP - Android Open Source Project)

Developer: Google (primary), Open Handset Alliance

Current Version: Android 16 (as of June 2025)

Languages: Java, Kotlin (official since 2017)

Market Share: 46% global OS market, 3 billion+ users


Distribution: Google Play Store, Samsung Galaxy Store, APK format

iOS

Developer: Apple Inc.


Nature: Proprietary, closed-source
Current Version: iOS 18 (September 2024)

Languages: Swift, Objective-C


Devices: iPhone, iPad exclusively

Distribution: App Store only


Ecosystem: Seamless integration with Apple devices

4. Programming Languages for Mobile Development

Primary Languages

Java: Android development, object-oriented only

Kotlin: Android (official), functional + object-oriented


Swift: iOS development, modern syntax

Objective-C: iOS legacy development


Dart: Flutter framework

JavaScript: React Native, hybrid apps

C#: Xamarin development

Python: Kivy framework

C++: Game development, performance-critical apps


HTML/CSS: Web-based and hybrid apps

5. Mobile App Development Life Cycle (MADLC)

Phase 1: Planning & Research

Define: App purpose and problem to solve

Research: Competitors and market trends


Establish: Goals and objectives

Create: Timeline and budget


Tools: Trello, Jira, Google Trends, Miro

Example: WhatsApp - free instant messaging solution

Phase 2: Requirement Analysis & Strategy

Functional Requirements: Login, chat, payments, notifications


Non-Functional Requirements: Security, performance, scalability

Technology Stack: Native/Hybrid/Cross-platform decision


Risk Analysis: Compliance checks
Tools: Confluence, Notion, Jira
Example: PayTm - Wallet & UPI functionality

Phase 3: UI/UX Design

Wireframing: Basic sketches of app screens

Prototyping: Interactive models for testing flow

UI Design: Visual elements (fonts, colors, icons, layout)

UX Design: User journey, navigation, accessibility


Tools: Figma, Adobe XD, Sketch, InVision

Example: Instagram - minimal, photo-centric design

Phase 4: Development

Frontend (Client-side):
Languages: Kotlin (Android), Swift (iOS), Flutter/React Native

Role: User interface and experience

Backend (Server-side):
Technologies: Node.js, Python (Django/Flask), Java (Spring Boot)
Role: Database, APIs, authentication

Integration: Link frontend-backend, third-party services


Tools: Android Studio, Xcode, VS Code, Firebase, GitHub

Example: Swiggy - React Native + Django + AWS

Phase 5: Testing

Unit Testing: Individual modules


Integration Testing: Module interactions

System Testing: Overall functionality


Performance Testing: Speed, load, memory

Security Testing: Data protection, encryption

UAT: User Acceptance Testing


Tools: JUnit, Espresso, XCTest, Appium, Firebase Test Lab

Phase 6: Deployment

Prepare: Store listing (name, description, screenshots)

Upload: APK (Android) or IPA (iOS)

Backend: Deploy on cloud (AWS, Firebase, Azure)


Approval: App store review process
Tools: Google Play Console, App Store Connect, Docker

Note: iOS approval more strict than Android

Phase 7: Post-Deployment & Maintenance

Monitor: Crashes, errors, performance

Updates: Bug fixes and patches

Features: Add based on user feedback


Security: Updates for new OS versions

Tools: Firebase Analytics, Crashlytics, Mixpanel


Example: WhatsApp - constant security patches

6. IDEs (Integrated Development Environment)

Definition & Purpose

What: Software application providing comprehensive development tools

Purpose: Maximize programmer productivity


Interface: Common UI for integrated components

Key Features

Code Editor: Syntax highlighting, auto-completion, formatting

Compiler/Interpreter: Translates code to executable

Debugger: Find and fix errors, breakpoints, variable inspection

Build Automation: Compile and run projects quickly

Version Control: Git integration

Mobile Development IDEs

Android Studio:
Official Android IDE

Based on IntelliJ IDEA


Gradle build system

AVD Manager for emulators

Xcode:
Official iOS IDE

Swift/Objective-C support
Interface Builder
Visual Studio Code:
Lightweight, extensible

Flutter, React Native support

7. SDKs (Software Development Kit)

Definition & Components

What: Collection of development tools for specific platform


Purpose: Provide necessary components for app creation

Major Components

APIs: Predefined functions for platform features


Libraries/Frameworks: Ready-to-use code packages

Emulators/Simulators: Virtual devices for testing

Documentation: Guides and references

Runtime Components: Required for execution

Common Mobile SDKs

Android SDK: APIs for Android development

iOS SDK: APIs for iOS development


Firebase SDK: Authentication, notifications, analytics

Google Maps SDK: Map integration (Uber example)


Facebook SDK: Social media integration

Payment SDKs: Stripe, PayPal integration

SDK vs Framework

SDK: Developer code invokes SDK

Framework: Framework invokes developer code

MODULE 2: NATIVE ANDROID APP DEVELOPMENT

1. Android Studio Overview

Key Features

Code Editor: Java, Kotlin, C++ support with intelligent completion

Gradle Build System: Flexible project management


AVD Manager: Android Virtual Device emulation
Performance Profilers: CPU, memory, network, battery analysis

Debugging Tools: Inline debugging, breakpoints, Logcat


Layout Editor: Visual drag-and-drop UI design

2. Activity Lifecycle

Core Concept

Activity: Single screen with user interface

Lifecycle: States an activity transitions through


Purpose: Proper resource management and user experience

Six Core Callbacks

onCreate()

When: Activity first created

Purpose: Basic startup logic


Frequency: Called ONCE per activity instance

Parameters: savedInstanceState Bundle

Tasks:
Bind data to lists

Associate with ViewModel


Initialize class variables

setContentView() call

onStart()

When: Activity becomes visible

Purpose: Prepare for foreground

State: Activity visible but not interactive

Tasks: Initialize UI components

Next: Quickly transitions to onResume()

onResume()

When: Activity enters foreground


Purpose: Begin user interaction

State: App interacts with user


Tasks:
Start camera preview

Enable functionality while visible


Resume animations

Previous: Called after onPause() when returning

onPause()

When: Activity losing focus

State: Still visible but not in foreground


Triggers:
Interrupting event (phone call)

Multi-window mode (other app focus)


Semi-transparent activity (dialog)

Tasks:
Pause operations

Release resources (GPS, sensors)


Save quick state

onStop()

When: Activity no longer visible


Triggers:
New activity covers screen

Activity finishing

Tasks:
Release resources
Save data to database

Stop animations
CPU-intensive shutdown operations

onDestroy()

When: Activity destroyed


Reasons:
finish() called

User dismisses activity

Configuration change (rotation)


Tasks: Final cleanup
Note: Use ViewModel for configuration changes

Lifecycle State Transitions

Created → Started → Resumed: App launch


Resumed → Paused → Stopped: App backgrounded

Stopped → Started → Resumed: App returned


Any State → Destroyed: System kills or finish()

3. UI Components

View Hierarchy

View: Single UI element (Button, TextView)

ViewGroup: Container for Views (Layouts)


Hierarchy: Tree structure of nested Views/ViewGroups

Common UI Components

TextView

Purpose: Display static text

Customization: Font, size, color, style

Features: Clickable links, HTML support

EditText

Purpose: User text input


Input Types: text, number, email, password

Features: Hints, filters, validation

Button

Purpose: Trigger actions

Content: Text or images

Events: onClick listener

RecyclerView

Purpose: Efficient scrollable lists


Components:
Adapter: Binds data
ViewHolder: Holds view references
LayoutManager: Arranges items

Performance: Recycles views for memory efficiency

4. Layouts in Android

Layout Declaration Methods

1. XML Declaration: Separate presentation from logic

2. Programmatic: Create at runtime in Java/Kotlin

Layout Parameters

wrap_content: Size to content requirements


match_parent: Expand to fill parent

0dp: Used with weight in LinearLayout


Specific values: 16dp, 100px (not recommended)

5. LinearLayout

Key Characteristics

Arrangement: Single direction (horizontal/vertical)

Orientation: android:orientation attribute


Stacking: One child per row (vertical) or column (horizontal)

Layout Weight

Purpose: Distribute remaining space


Default: 0 (no expansion)

Equal Distribution:
Set width/height to "0dp"

Set weight to "1" for all children

Unequal Distribution: Different weight values

Attributes

android:orientation="vertical|horizontal"

android:layout_weight="1"
android:layout_gravity="center|left|right"

android:gravity="center"
android:padding, android:margin
6. ConstraintLayout

Key Features

Flat Hierarchy: No nesting needed

Performance: Best for complex layouts


Flexibility: Constraints, chains, guidelines

Visual Editor: Full drag-and-drop support

Constraint Rules

Minimum: One horizontal + one vertical constraint


Planes: Vertical constraints to vertical planes only

Handles: One constraint per handle


Missing Constraints: Shows error in editor

Important Attributes

layout_constraintTop_toTopOf
layout_constraintBottom_toBottomOf
layout_constraintLeft_toLeftOf

layout_constraintRight_toRightOf

layout_constraintHeight_max/min

layout_constraintHorizontal_weight
layout_constraintVertical_weight

Advanced Features

Chains: Distribute space between views

Guidelines: Invisible alignment lines


Barriers: Dynamic constraints

Aspect Ratio: Fixed height:width ratio

7. RelativeLayout

Positioning Attributes

Parent Alignment:
layout_alignParentTop="true"

layout_alignParentBottom="true"

layout_centerInParent="true"
Relative to Views:
layout_below="@id/view"

layout_toRightOf="@id/view"

layout_above="@id/view"

Usage Note

Can eliminate nested views

May create deep hierarchies


Recommendation: Use ConstraintLayout instead

8. Layout Comparison
Feature LinearLayout ConstraintLayout RelativeLayout

Hierarchy Can be nested Flat Can be deeply nested

Performance Good for simple Best overall Moderate

Flexibility Limited to linear Highest Good

Positioning Sequential only Any position Relative only

Weight Support Yes Yes No

Visual Editor Basic Full support Basic

Learning Curve Easy Moderate Easy


 

9. Android Development Key Points

Resource Management

R.java: Auto-generated resource IDs


@+id/name: Create new ID

@id/name: Reference existing ID


Resource Types: drawable, layout, values, mipmap

AndroidManifest.xml

Declares all activities


Permissions
App metadata

Intent filters

Best Practices

Use ConstraintLayout for new projects


Avoid deep view hierarchies
Implement proper lifecycle handling

Save state in onSaveInstanceState()


Use ViewModel for configuration changes

Test on multiple screen sizes

Important Terms & Definitions


APK: Android Package Kit
IPA: iOS App Store Package

AVD: Android Virtual Device


UAE: User Acceptance Testing

API: Application Programming Interface

XML: Extensible Markup Language


UI: User Interface

UX: User Experience


AOSP: Android Open Source Project

Gradle: Build automation tool for Android

Quick MCQ Tips


1. Native vs Hybrid: Native = one platform, Hybrid = all platforms

2. Kotlin vs Java: Kotlin supports functional programming, Java doesn't


3. Lifecycle Order: onCreate → onStart → onResume → onPause → onStop → onDestroy
4. Layout Performance: ConstraintLayout > LinearLayout > RelativeLayout

5. Weight: Only in LinearLayout, not in RelativeLayout


6. Constraints: Minimum 2 required (1 horizontal, 1 vertical)

7. Testing Types: Remember all 6 types (Unit, Integration, System, Performance, Security, UAT)
8. MADLC Phases: 7 phases in order
9. Android Studio: Based on IntelliJ IDEA

10. Current Versions: Android 16, iOS 18

You might also like