IT315: Mobile Apps Development

Unit 0: Overview of the course

R Batzinger

2025-01-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 9:00-11:00
  • VENUE: PC302/1 PENTECOST (Maekhao Campus)
  • INSTRUCTOR: Dr. Robert P. Batzinger

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, thermometer, AQI, Gas detectors, EKG
  • Apps work with the hardware via Bios/os function calls (Listeners/Interrupts)
  • Full stack OS: Android, OS, Win11

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: 30% (incremental design, coding and testing exercises with deadlines, design projects, Class participation)
  • Midterm exam: 30%
  • Final Exam: 30%
  • Final project: 10% (developing a mobile application)

Useful Study Methods

Successful study requires an effective strategy

Decision making/Planning stages

  • Research - determine the range of objectives, parameters and options
  • Reasoning - select the optimal setting
  • Results - Review the outcome and measure the costs
  • Review - evaluate the potential for improvement

Human Mind is wired to remember:

Anything that

  • Stands out
  • Highights important points
  • Addresses individuals personally needs and emotions
  • Relays repeatable content
  • Evokes emotional response

Remembering: a 2 step process

  • Consumption: take in the incoming information
  • Digestion: process information into useful, rememberable tracks

PACER Framework for remembering better

Everything that needs to be remembers fits one of these categories:

  • P - procedural (how-to knowledge: steps): requires practice and repetition

    • learn how, do
  • A - analogous (making connections; a bridge): critique, 3 questions

    • how is it correct?
    • what are limitations of this relationship?
    • Can I make a better analogy?
  • C - conceptually (the big idea: what and why): requires mapping to make connections to other ideas [mind map]

    • how does one idea impact another
  • E - evidence (information that supports concepts): store and rehearse

    • copy into a notebook and tag it
    • actively use the note (discuss this in coversations and writing)
  • R - reference (single discreet fact): store and rehearse with spaced repetition

    • Anki flash card system

Workflow

  1. Preread: What do I want from this lecture/reading?
  2. Hunting: Focus on the points you find most important
  3. Immediate recap: 5 minute summary: big ideas, key take aways
  4. Digestion session: schedule a dedicated session to process PACER
  5. Review and rehearse: SRS, blogging, mind mapping; use the ideas with others