CSE431
Mobile Programming
MODULE 1:
Introduction to Mobile Programming
Module 1
Course Topics
Class Schedule
Course Grade Distribution
Different ways to develop Apps
Mobile phones and network technologies
The Importance of Version Control Software in Mobile App Development
Major Task
2
Course Topics
3
Course Topics
▪ Introduction to Mobile Programming
▪ Introduction to Flutter
▪ Building User Interfaces with Flutter
▪ Internet Access
▪ Data Persistence
▪ Cloud Services: Using Firebase
▪ Sensors, Location and Google Maps
▪ Animation, Motion Widgets and Text-to-Speech
▪ Mobile App Testing
▪ Security of Mobile Apps
▪ AI for Mobile Apps
4
Class Schedule
5
Class Schedule
▪ Lecture: Mondays
▪ Labs / Tutorials : Saturdays & Sundays
6
Course Grade Distribution
7
Course Grades
▪ (SA) [Project - (new bylaw 15% - old bylaw 10%)]
▪ (EA) [Quiz - 5%](MT) – 2 Quizzes
▪ [MidTerm - (new bylaw 20% - old bylaw 25%)]
▪ (OP) [Lab assignments - 20%]
▪ 4 Lab Exams (5% each)
▪ Lab attendance/completion is Required for all Labs.
8
Different ways to develop apps
9
Different ways to develop apps
Native approach
▪ Uses native development platform and programming languages from the OS
creator/maintainer to build the app.
▪ Android
▪ Native app development platform - Android studio
▪ Programming language - Kotlen.
▪ iOS
▪ Native app development platform - Xcode
▪ Programming language - Swift.
10
Different ways to develop apps
Cross-platform approach
▪ Uses one development platform and programming language to produce different
versions of the same app that targets different operating systems.
▪ Cross-platform tools:
▪ .Net MAUI https://learn.microsoft.com/en-us/dotnet/maui/?view=net-maui-8.0
▪ Flutter https://flutter.dev/
▪ React Native https://reactnative.dev/
11
Different ways to develop apps
Hybrid approach
▪ Combination of web technologies (i.e.HTML, CSS, and JavaScript).
▪ Hosted inside a native application that utilizes a mobile platform’s WebView.
▪ Enables access to device capabilities (accelerometer, camera, contacts, etc.).
▪ Can include native UI elements where necessary.
Reference: http://developer.telerik.com/featured/what-is-a-hybrid-mobile-app/
Image Reference: www.liquidcanyon.com
12
Mobile phones and networks
technologies
13
Mobile phones and network technologies
Different types of mobile devices
Smartphones Tablets
Android TV boxes Smart watches
Upper left: Ultimate Android experience by Google, Upper right: Ultimate Android experience by Google,
https://www.google.com.eg/nexus/ https://www.google.com.eg/nexus/
Lower left: Ultimate Android experience by Google, Lower right: Android wear by Android, 14
https://www.google.com.eg/nexus/ https://www.android.com/intl/en_in/wear/
Mobile phones and network technologies
Capabilities of mobile devices
Operating System Camera
Display Connectivity
Sensors Input methods
Image: Galaxy S6 edge by Samsung, http://www.samsung.com/uk/consumer/mobile-devices/smartphones/galaxy-s/SM-G925FZKEBTU 15
Mobile phones and network technologies
Limitations of Mobile Devices
CPU Speed Screen size
Memory Network Coverage
Battery Voice recognition
Image: Galaxy S6 edge by Samsung, http://www.samsung.com/uk/consumer/mobile-devices/smartphones/galaxy-s/SM-G925FZKEBTU 16
The Importance of Version Control
Software in Mobile App Development
17
The Importance of Version Control Software in Mobile
App Development
▪ Efficient Collaboration
▪ Tracking Code Changes
▪ Safe Experimentation with Branching
▪ Facilitating Continuous Integration and Continuous Deployment (CI/CD)
▪ Simplifying Code Reviews and Collaboration
▪ Disaster Recovery and Backup
▪ Supporting Remote Work and Global Teams
▪ Documentation and Knowledge Sharing
18
Install Android Studio + Flutter SDK
19
Using Flutter
20
Course Major Task
21
Hedieaty
Hedieaty is a gift list management app designed to streamline the process of creating, managing, and sharing wish lists for special
occasions such as birthdays, weddings, engagements, graduations, and holidays. The app features a user-friendly interface that
allows users to easily add gifts to their lists, either manually or through an integrated barcode scanner. With Hedieaty, users can
manage their lists flexibly, including adding, deleting, and modifying items at any time—except for items that have been pledged.
The app also enables users to publish their lists to the cloud, allowing friends and family to view and pledge to purchase gifts,
enhancing the joy of gift-giving. The app should be designed using Flutter and published on Appstore, Google Play Store, and/or
Amazon App Store.
22
Join our Temporary Teams Group
Teams Code
88vz60f
23
End of Module 1