Course Instructor Contact
CSE 431
• Over Teams or
Mobile Programming
• By email: app.developer.egy@gmail.com
Lecture 01 When you send an email:
1- Write the course number in the subject
Haytham Azmi, PhD. P.Eng. 2- Write your name and ID in the Email signature
Course Topics Course Evaluation
1. Introduction to Android App Development
2. Different ways to develop Apps / Your First App
3. Android Project Structure / Activities, Intents, and Fragments
4. Building a Simple Calculator App: Design Challenges • Course Project : 15%
5. Data Persistence / Databases
6. Services, Broadcast Receivers, and Internet Access • Quiz : 5%
7. Design Patterns
8. Location Management and Services • Lab Assignments : 20%
9. App Testing and Fault Tolerance
10.Security in Mobile Environments • MidTerm : 20%
11.Caching Strategies in Mobile Environments
12.Mobile VoIP Applications
13.Course Project Design
• Final Exam : 40%
14.Project Development and Testing
15.Project Presentation
3 4
Lecture 1
RECOMMENDED
SETUP
Introduction to Android App Development
1. Mobile phones and network technologies
Topics
Different types of mobile devices
1. Mobile phones and network technologies
2. Different ways to develop Apps
Tablets
3. Android OS Smartphones
4. Android versions and features
5. Introduction to Android App development (Demo)
6. Questions 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,
https://www.google.com.eg/nexus/ https://www.android.com/intl/en_in/wear/
7 8
1. Mobile phones and network technologies
1. Mobile phones and network technologies
Limitations of Mobile Devices
Capabilities of mobile devices
Operating System Camera CPU Speed Screen size
Display Connectivity Memory Network Coverage
Sensors Input methods Battery Voice recognition
Image: Galaxy S6 edge by Samsung, http://www.samsung.com/uk/consumer/mobile-devices/smartphones/galaxy-s/SM-G925FZKEBTU Image: Galaxy S6 edge by Samsung, http://www.samsung.com/uk/consumer/mobile-devices/smartphones/galaxy-s/SM-G925FZKEBTU
9 10
1. Mobile phones and network technologies 2. Different ways to develop apps
Native approach
§ Uses native development platform and programming
languages from the OS creator/maintainer to build the
app.
§ Wirelessly connects electronic devices § Allows for simplified
that use IEEE standard for Wi-Fi 802.11x
§ Supports both point-to-point and point-
transactions, data exchange,
§ Android
to-multipoint connections
(x: a, b, g, n and ac) and wireless connections § Native app development platform - Android studio
§ Piconet - 8 devices connected in between two devices in close § Programming language – Java/Kotlin.
§ Access point of 20-70m (in doors) and Bluetooth network (1 master and 7 proximity
100-250m (out doors) slaves)
§ 2006 Nokia 6131 - first NFC § iOS
§ Allows direct communication from one § Bluetooth 3.0+HS - supports theoretical phone
computer to another without access data transfer speeds up to 24 Mbit/s § Native app development platform - Xcode
point intermediary (ad hoc Wi-Fi) § Main application - mobile
payment
§ Programming language - Swift.
§ Bluetooth link - used for negotiation and
§ Supports speeds up to 150Mbps (n) and establishment
7Gbps (ac) § Support added to Android
starting from 2.3 platform
11 12
2. Different ways to develop apps 2. Different ways to develop apps
Hybrid approach
Cross-platform approach
§ Uses one development platform and programming § Combination of web technologies
language to produce different versions of the same app (i.e.HTML, CSS, and JavaScript).
that targets different operating systems.
§ Cross-platform tools: § Hosted inside a native application that
utilizes a mobile platform’s WebView.
§ Cordova https://cordova.apache.org/
§ Flutter https://flutter.dev/ § Enables access to device capabilities
(accelerometer, camera, contacts, etc.).
§ Coronalabs https://coronalabs.com/
§ Can include native UI elements where
necessary.
Reference: http://developer.telerik.com/featured/what-is-a-hybrid-mobile-app/
Image Reference: www.liquidcanyon.com
13 14
3. Android OSz 3. Android OS
What is Android? Open source software stack
Most often used by application developers
§ Mobile operating system based on a modified version of Linux. Allows framework to cross process boundaries and
call into Android system services code
§ Developed by a start-up company named “Android”
§ Bought by Google in 2005. APIs communicates with system services to
access underlying hardware
Hardware Abstraction Layer
Defines a standard interface
Source: www.androidshack.com Contains all of the low level device drivers
16
16
Reference: https://source.android.com/devices/
15
4. Android versions and features 5. App Development Environment
Android versions
• • Android Studio
• Java/Kotlin
• Cloud Services (Firebase)
• Task #1: Download and install Android Studio
and follow the instructions in the lecture to configure
your SDK and Project Settings Correctly.
• Task #2: Create a Virtual device and/or connect your
https://developer.android.com/about/dashboards
physical device. Make sure you can run apps on your
virtual/physical device.
17 18
5. App 5. App
Development Android Studio Dolphin | 2021.3.1 for Mac (~993 MiB)
Development
Environment Environment
• Task #1 • Task #2
19 20
2
2
5. App Development Environment – Enable Developer Options
From Developer options:
Enable USB Debugging
5. App
Development
Tab 7 times Environment
21
Demo
23