IT315: Mobile Apps Development

Unit 0: Overview

R Batzinger

2024-07-12

IT315 MOBILE APPLICATION DEVELOPMENT

Course description

Mobile software development, mobile applications,
mobile platforms, mobile user interface,
the specific hardware and software constraints,
persistence, networking and Web service,
location-based service, and security.

Course details

  • CREDITS 3 (2-2-5)
  • PREREQUISITE: IT211
  • DAY / TIME: Mon/Thu 10:00-12:00
  • VENUE: PC302/1 PENTECOST (Maekhao Campus)
  • INSTRUCTOR: A.Dr. Robert P. Batzinger
  • MIDTERM: 14 Mar 2025 TIME 09:00 - 11:00

Mobile Device

  • Connection with other devices via std protocols: wifi, Bluetooth, USP, 2.4 GHZ radio, IR
  • Data transport level
  • Multitreaded time/resource sharing
  • Multistate processing
  • Prioritized Memory
  • Sensors: Camera, microphone, GPS, Shaker, Acceleratometer, Gyro, Compass, temperature
  • Apps work with the hardware via Bios/os function calls (Listeners/Interrupts)
  • Full stack OS: Android, OS, BIOS

Course Overview

  • This course provides an in-depth exploration of the principles and practices of mobile software development.

  • Students will explore the unique characteristics of mobile platforms, including hardware and software constraints, user interface design considerations, and the integration of location-based services and security features.

  • By the end of the course students will gain hands-on experience in designing, developing and testing mobile applications.

Course Outline:

Unit 1: Introduction to Mobile Computing

  • Educational Goal: To introduce students to the fundamental concepts of mobile computing, including its history, evolution, and key characteristics.

  • Topics:

    • History of mobile computing
    • Mobile devices and their characteristics (smartphones, tablets, wearables)
    • Mobile operating systems (iOS, Android, etc.)
    • Mobile application market and trends
    • Introduction to mobile development methodologies (Agile, Scrum)

Unit 2: Mobile User Interface Design

  • Educational Goal: To equip students with the knowledge and skills to design user-friendly, intuitive and engaging mobile user interfaces.

  • Topics:

    • Mobile UI design principles (usability, accessibility, aesthetics)
    • User experience (UX) design for mobile
    • Mobile UI design patterns and best practices
    • Introduction to UI design tools (e.g., Figma, Sketch)
    • Human-computer interaction (HCI) principles in mobile context

Unit 3: Mobile Application Development Fundamentals

  • Educational Goal: To provide students with a solid foundation in the core concepts of mobile application development.
  • Topics:
    • Mobile development languages (e.g., Java, Kotlin, Swift, Dart, Javascript)
    • Mobile development tools and IDEs (e.g., Android Studio, Xcode)
    • Mobile application architecture (MVC, MVP, MVVM)
    • Debugging and testing mobile applications
    • Introduction to version control systems (Git)

Unit 4: Mobile Web page

  • Educational Goal: To enable students to gain an overview of the unique challenges and opportunities within Single page web applications that are responsive to the limitations of the mobile platforms.

  • Topics:

    • Detection of the active screen size and orientation
    • Assess to sensors: (camera, microphone, GPS, accelerometer, clock, etc)
    • Executing scripts associated with the web
    • Acquiring new information
    • Formatting Json, HTML or XML information
    • Use of HTML5 features: animation,

Unit 5: Mobile Platform Specifics

  • Educational Goal: To enable students to understand and address the unique challenges and opportunities presented by different mobile platforms.

  • Topics:

    • Android development: SDK, APIs, platform-specific features
    • iOS development: SDK, APIs, platform-specific features
    • Cross-platform development frameworks (e.g., React Native, Flutter)
    • Review of connections: BlueToothe, wifi, USP
    • Hardware and software constraints (battery life, memory, processing power)
    • Sensor integration (camera,accelerometer, gyroscope, GPS)
    • Networking and web services: REST APIs, JSON, HTTP requests

Unit 6: Persistance an dprocess control

  • Educational Goal: To explore persistence and process control in mobile development.

  • Topics:

    • Data storage: Local storage (SQLite), cloud storage (Firebase)
    • Processing states: Created, Resumed, Active/Running, Paused, Halted, Destroyed

Unit 7: Location-based services

  • Educational Goal: To explore networking, and location-based services.

  • Topics:

    • Data storage: Local storage (SQLite), cloud storage (Firebase)
    • Networking and web services: REST APIs, JSON, HTTP requests
    • Location-based services: GPS, geolocation APIs, map integration

Unit 8: Security and Ethical Considerations

  • Educational Goal: To emphasize the importance of security and ethical considerations in mobile application development.

  • Topics:

    • Encryption and authentication methods
    • Mobile payments and in-app purchases
    • Mobile security threats (malware, phishing, data breaches)
    • Data privacy and security best practices
    • Ethical considerations in mobile app development
    • Accessibility and inclusive design

Teaching Methods:

  • Lectures
  • Hands-on coding exercises and assignments
  • Group projects
  • Guest lectures from industry professionals
  • Case studies
  • Class discussions and debates

Assessment:

  • Assignments (incremental design, coding and testing exercises with deadlines, design projects)
  • Midterm exam
  • Final Exam
  • Final project (developing a mobile application)
  • Class participation

History

Mobile Phone

What is a mobile device?

Growth in Sales

Units sold in millions

These numbers are approximate estimates of millions in use and are based on various sources.

Year Desktop Notebook Tablets SPhones smartTV
1990 100 1 0 0 0
2000 400 100 0 0 0
2010 700 500 20 500 50
2020 1,000 1,000 1,280 6,000 1,720
2024 1,000 1,500 1,500 7,200 5,300

Competition between brands of smartPhone

Internet users by device

The numbers are given in units of billion people

\[\small\begin{matrix} Year &Desktop & Laptop & Tablets & SmartPhones \\ 1995& 0.02 & 0 & 0 & 0 \\ 2000& 0.36 & 0 &0 &0 \\ 2005& 1.0 & .10 & 0 &0 \\ 2010& 1.5 & .50 & .05 & .30 \\ 2015& 1.8 & 1.0 & .50 & 2.0 \\ 2020& 2.0 & 1.5 & 1.0 & 3.5 \\ 2024& 2.2 & 1.8 & 1.5 & 4.5 \\ \end{matrix}\]

Growth in smart phones and watches

A general comparison of the growth of smartphone and smartwatch usage. (Numbers represent millions of users)

Digital Waste

Install/Boot Process

  1. Download app from store
  2. Calculate and compare checksum
  3. Check manifest - resources, OS version, requirements, starting function, program structure
  4. decompress the APK and copy software
  5. open the app: permissions, allocate memory , create the main process
  6. runs process

IMDE

  • Source code editor
  • Compiler
  • Simulator
  • App Loader/Manager

Leading mobile app

  • Android
    • Google’s platform in a dialect of Java or Kotlin or Go
    • Android Studio is the key IDE and is free as is PayStore
  • OS
    • Apple’s development as an extention of Mac OS family
    • Written in C++ or Swift managed under XCODE
    • Software and PlayStore require subscriptions
  • Win 11
    • Microsoft IDE Visual Studio
    • Written in C##
    • IDE is free and Store is by registration

Android Studio

https://youtu.be/Mu8VNoZ4sX8?feature=shared

https://developer.android.com

https://youtu.be/uY3lsHP7GvM?feature=shared

https://developer.android.com/codelabs/basic-android-kotlin-compose-first-app?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-compose-unit-1-pathway-2%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-compose-first-app#6

Android Architecture

https://developer.android.com/guide/platform