Lecture 1: Introduction to Mobile Programming PDF

Document Details

FastPacedJasper2846

Uploaded by FastPacedJasper2846

Universiti Kebangsaan Malaysia

Nazatul Aini Abd Majid

Tags

mobile programming android development kotlin software development

Summary

This lecture introduces mobile programming concepts and tools, focusing on Android development with Kotlin and the Android Studio IDE. The document covers the evolution of mobile applications, constraints of mobile platforms, and compares mobile programming to web and general-purpose programming.

Full Transcript

TK2323 Lecture 1: Introduction to Mobile Mobile Programming Programming Nazatul Aini Abd Majid Outline 01 02 Growth and 03 Transformation of C...

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? https://youtu.be/5xsUOmi-MxY?si=zrA_3I4dc670zTd1 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 4 https://youtu.be/bBk1zubNIWM?si=Lp5eii5LA6d6hTRc 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 6 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 7 iPhone X Samsung Galaxy S6 Edge 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. https://play.kotlinlang.org/ 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 String.addExclamation() = 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 https://developer.android.com/studio/intro/user-interface 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 https://developer.android.com/studio/debug 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

Use Quizgecko on...
Browser
Browser