TK2323
Lecture 1: Introduction to
Mobile Mobile Programming
Programming
Nazatul Aini Abd Majid
Outline
01
02
Growth and 03
Transformation of Constraints of Mobile
Mobile Applications Platforms on Contrast Between Mobile
Over Time Developers Programming, Web
Programming, and General-
04 Purpose Programming
05
Mobile Application
Kotlin for Android
06
Development
Development
Android Studio: 2
The Official IDE for
Android Development
The Most Popular Cell Phone Brands in
the World 1990 - 2023
What are the main factors contributing to these changes?
[Link]
Early Stages: Basic Mobile Phones (1970s-
1990s)
• Introduction of basic mobile phones
• First handheld mobile phone by Motorola in 1973
• Limited to voice calls and SMS
• No apps, small screens, minimal storage
[Link]
Introduction of Feature Phones (1990s-
2000s))
• Feature phones appeared with better hardware
• Brands like Nokia and BlackBerry became popular
• Basic apps like calculators and games included
• 2G networks enabled SMS and early mobile internet
5
Rise of Smartphones and App Stores (2007-
2010)
• Launch of Apple's iPhone (2007) and Android (2008)
• Introduction of Apple App Store (2008) and Google Play Store (2010)
• Popular apps like Facebook and WhatsApp
• 3G networks enabled faster internet access
Apple’s iPhone. T-Mobile Dream G1
Rapid App Growth & Platform Dominance
(2010s)
• Explosive growth in the smartphone market
• Android and iOS gained significant market share
• Apps became central to daily life (e.g., social media, gaming)
• Introduction of 4G networks for real-time video and streaming
iPhone X [2017] Samsung Galaxy S6 Edge [2015]
The Era of Smart Devices and IoT (2020-
Present)
• Explosive growth in the smartphone market
• Android and iOS gained significant market share
• Apps became central to daily life (e.g., social media, gaming)
• Introduction of 4G networks for real-time video and streaming
8
Summary of Key Phases
Year Phase Key Developments Examples
Early Stages: - First handheld mobile phone by Motorola in
1970s- Motorola DynaTAC
Basic Mobile 1973
1990s (1973)
Phones - Devices limited to voice calls and SMS
- Color 01
screens and physical keyboards
1990s- Introduction of - Basic apps (calculators, games) Nokia 3310,
2000s Feature Phones - Introduction of 2G networks for SMS and early BlackBerry 850
internet access
- Launch of iPhone (2007) and Android (2008)
Rise of Apple iPhone, HTC
2007- - Apple App Store (2008) and Google Play Store
Smartphones and Dream (first
2010 (2010)
App Stores Android)
- 3G networks enable fast internet access
Rapid App - Explosion of smartphone market with Android
Growth & and iOS Samsung Galaxy
2010s
Platform - Apps for social media, gaming, banking, etc. series, iPhone 6
Dominance - Introduction of 4G networks
- Expansion to smartwatches, tablets, foldable 9
2020- The Era of Smart phones, and IoT devices Apple Watch,
Present Devices and IoT - 5G networks and edge computing Google Nest
- AI, AR/VR applications
Outline
01
02
Growth and 03
Transformation of Constraints of Mobile
Mobile Applications Platforms on Contrast Between Mobile
Over Time Developers Programming, Web
Programming, and General-
04 Purpose Programming
05
Mobile Application
Kotlin for Android
06
Development
Development
Android Studio: 10
The Official IDE for
Android Development
Constraints of Mobile Platforms on Developers
Constraint Description Strategies to Manage
- Write efficient code to minimize
Performance Mobile devices rely on battery power; processing
vs. Power high performance can drain battery - Schedule background tasks to save power
Scene 2: Pelajari AR
Tradeoff quickly. 01 - Use adaptive battery management
features.
Mobile devices have restricted - Optimize memory usage to avoid crashes
Limited
memory and storage compared to - Compress media files and use efficient
Resources
desktops, affecting app performance. formats for storage.
- Design apps to work offline by caching
Varying network conditions can affect
Network data
app performance, with users
Connectivity - Reduce data transfer sizes and compress
experiencing unstable connections.
assets to save bandwidth.
Numerous devices with different - Implement responsive design for different
Diverse Device screen sizes, resolutions, and screen sizes
Ecosystem operating system versions complicate - Ensure backward compatibility with older
development. OS versions.
11
Mobile apps are exposed to security - Use data encryption for sensitive
Security threats, such as data breaches and information
Concerns malware, necessitating strong - Implement secure APIs and manage app
security measures. permissions responsibly.
Outline
01
02
Growth and 03
Transformation of Constraints of Mobile
Mobile Applications Platforms on Contrast Between Mobile
Over Time Developers Programming, Web
Programming, and General-
04 Purpose Programming
05
Mobile Application
Kotlin for Android
06
Development
Development
Android Studio: 12
The Official IDE for
Android Development
Contrast Between Mobile Programming, Web
Programming, and General-Purpose Programming
General-Purpose
Feature Mobile Programming Web Programming
Programming
Platform-dependent
Platform Highly platform-dependent Cross-platform via web
(Windows, macOS,
Dependency (iOS/Android) browsers
Linux)
Resource Limited CPU, memory, and Less constrained, but Fewer constraints, full
Constraints battery reliant on network hardware access
User Mouse, keyboard, and Mouse, keyboard,
Touch-based (gestures, taps)
Interaction responsive touch complex GUIs
Hardware Full access to sensors (GPS, Limited hardware access Full access to system
Access camera, accelerometers) via browser hardware
Development Platform-specific IDEs (Android Standard web tools (HTML, Varies: IDEs, command-
Tools Studio, Xcode) JS, CSS) line, libraries
App stores (Google Play, Apple Browser-based, no Installation required,
Distribution
App Store) installation package managers
Must balance performance vs. Varies based on network High performance, no
Performance 13
power and browser power constraints
- Desktop applications
- Android apps (e.g., WhatsApp, - Web apps (e.g., Facebook,
Examples (e.g., Microsoft Word,
Spotify) Twitter)
Adobe Photoshop)
Outline
01
02
Growth and 03
Transformation of Constraints of Mobile
Mobile Applications Platforms on Contrast Between Mobile
Over Time Developers Programming, Web
Programming, and General-
04 Purpose Programming
05
Mobile Application
Kotlin for Android
06
Development
Development
Android Studio: 14
The Official IDE for
Android Development
Industry-Standard Tools and Frameworks
• Android Studio: Official IDE for Android development by Google.
• Xcode: Official IDE for iOS development by Apple.
• Flutter: Google’s UI framework for cross-platform apps.
• React Native: Facebook’s framework for building cross-platform mobile apps.
15
Comparison: Native vs. React Native vs. Flutter
Feature Native React Native Flutter
Highest level of
Near-native Near-native
performance; direct
performance; relies on performance; compiles
Performance access to device
JavaScript bridge for to native ARM code
hardware and OS
some functionalities without a bridge
features
Development Java/Kotlin (Android),
JavaScript Dart
Language Swift/Objective-C (iOS)
Platform-specific Uses native
UI Components Customizable widgets
widgets components
Moderate (single
High (code reuse
Code Reusability Low (platform-specific) codebase for multiple
between platforms)
platforms)
Large, but platform- Large and active, Growing rapidly,
Community Support
specific backed by Facebook backed by Google
Moderate; requires Easy for web
Moderate; requires
Learning Curve knowledge of platform- developers familiar
learning Dart 16
specific languages with React
Visual Studio Code, Android Studio, Visual
Tools/Editors Android Studio, Xcode
Expo Studio Code
Outline
01
02
Growth and 03
Transformation of Constraints of Mobile
Mobile Applications Platforms on Contrast Between Mobile
Over Time Developers Programming, Web
Programming, and General-
04 Purpose Programming
05
Mobile Application
Kotlin for Android
06
Development
Development
Android Studio: 17
The Official IDE for
Android Development
Why Choose Kotlin?
• Concise syntax for cleaner code
• Null safety to reduce runtime errors
• Interoperability with Java
• Modern programming features
• First-class tooling support in Android Studio
18
Is Kotlin New to You?
• Easy transition for Java developers
• Shared programming concepts
Feature Kotlin Java
Function fun greet(name: String): String { String greet(String name) { return
Declaration return "Hello, $name" } "Hello, " + name; }
19
Example Usage in Kotlin Playground
• Example of variable and function declarations in Kotlin Playground.
• [Link]
fun main() {
var name: String = "John" // Mutable variable
val age: Int = 30 // Immutable variable
var address: String? = null // Nullable variable
var score = 100 // Variable with type inference
println("Name: $name")
println("Age: $age")
println("Address: $address") 20
println("Score: $score")
}
Example Usage in Kotlin Playground (II)
fun main() {
val greeting = greet("Alice") // Calling a function
println(greeting) // Output: Hello, Alice
val message = "Hello".addExclamation() // Calling an extension function
println(message) // Output: Hello!
fun greet(name: String): String {
return "Hello, $name"
fun [Link]() = this + "!" 21
Outline
01
02
Growth and 03
Transformation of Constraints of Mobile
Mobile Applications Platforms on Contrast Between Mobile
Over Time Developers Programming, Web
Programming, and General-
04 Purpose Programming
05
Mobile Application
Kotlin for Android
06
Development
Development
Android Studio: 22
The Official IDE for
Android Development
Welcome Screen
• Start a New Project
• Open an Existing Project
23
Project Structure
• Hierarchical view of project files
• App Directory for source code
and resources
• Gradle Scripts for build
configuration
24
[Link]
Code Editor
• Syntax Highlighting for better
readability
• Code Completion for faster
coding
• Immediate Error Highlighting
25
Debugger
• Set breakpoints for troubleshooting
• Step through code execution
• View real-time logs with Logcat
[Link]
26
Emulator
• Simulates Android devices on your
computer
• Configure virtual devices for testing
27
What is an API Level?
• Represents the version of the Android operating system
• Different API levels correspond to different Android features
28
What is the Minimum SDK?
• Defines the lowest Android version your app supports
• Influences feature access and device compatibility
29
What is your vision?
'To transform your ideas into reality by equipping you
with the tools and knowledge of mobile programming,
inspiring you to create applications that enhance lives
and foster positive change within your communities.'
Thank you 30