DM461 Mobile Applications
Lecture 1 - Introduction
Dr. Amira Sayed A. Aziz
Faculty of Computers and Information Technology
Agenda
Introduction
Course objective
Course plan
Course evaluation
Introduction to mobile application development
Android studio
First application
Introduction
Handheld devices are basic components in out daily lives.
Different types of applications are of benefit on such devices.
Mobile application development is the process of making software for
smartphones, tablets and digital assistants, most commonly for the Android
and iOS operating systems.
The software can be preinstalled on the device, downloaded from a
mobile app store or accessed through a mobile web browser.
Course Objective
This course will focus on the strengths and limitations of mobile devices,
terminologies and concepts, mobile application portfolio assembly,
android database and OS fundamentals. Students will explore these
topics through the conception and creation of applications for the
mobile Touch architecture. By the end of the semester, all students will be
developing mobile applications and testing them on devices. This course
will be hands on and project based.
Course Plan - Topics
1. Introduction to mobile applications: • Menu from XML • Deploying an Android app on
• Android vs. iOS • Menu via code physical device
• Development environment • Intents and Intent filter • Apk file extension
• Limitations • Time and Date
• Explicit Intents
• Development cycle • Alert dialogs
• Implicit Intents
• Activity and Main Activity
• Activity lifecycle • Toast
2. Mobile app development basics:
• Communication between activities • Popup
• Configuring Menu and SDK
• Android manifest.xml • Tabs and tab activity.
• Option menu
• Context menu • UI components 3. Working with DB:
• Sub menu • Basic UI design • SQLlite
Course Evaluation
30 points for course work: lab assignments and project.
30 points for Midterm exam.
40 points on final exam.
Mobile Applications
Statistics:
How Many People Have Smartphones Worldwide (Jan 2023)
(bankmycell.com)
Statistics
Statistics
Statistics
Mobile devices
Mobile hardware consists of mobile devices
or device components that can be used to
receive or access the service of mobility.
Examples of mobile hardware can be
smartphones, laptops, portable PCs, tablet
PCs, Personal Digital Assistants, etc.
Mobile device OS
iOS
Apple iOS is a proprietary mobile operating system that runs on mobile devices such as
the iPhone, iPad and iPod Touch. Apple iOS is based on the Mac OS X operating system
for desktop and laptop computers. The iOS developer kit provides tools that allow for iOS
app development.
iOS, which was previously called iPhone OS, is a mobile operating system developed by
Apple Inc. Its first release was in 2007, which included iPhone and iPod Touch. iPad (1st
Generation) was released in April 2010 and iPad Mini was released in November 2012.
iOS
List Of All Apple iOS Version History (2023 January Update) (gkgigs.com)
Android OS
Android is a Linux-based operating system it is designed primarily for touch screens mobile
devices such as smartphones and tablet computers.
Before Android was known to the public, Android Inc. was founded by Andy Rubin, Chris
White, Nick Sears, and Rich Miner in 2003 in Palo Alto, California. It existed for a few years,
but funding was difficult for the company. Google eventually bought it in 2005 for $50
million (a worthwhile investment, as it turned out). A key decision during this time was the
choice to use Linux as the foundation for the OS and the overall focus on smartphone
technology.
As development continued and Google moved the project along, they started to talk
with and negotiate with phone manufacturers such as HTC and Motorola. They were
hoping to compete with the dominant Apple at the time. Development continued under
Google (with the founders working under the company) until the beta version 1.0 came
out in November of 2007.
Android - Secure & Reliable Mobile Operating System
Android
versions
The Evolution of Android (cellphonedeal.com)
How Android Apps work?
System apps, User apps
Java API’s – view system, resource manager,
notification manager, activity manager, content
provider
Android runtime – AOT and JIT, garbage collection,
core runtime libraries
Native C/C++ libraries
ART, underlying functionalities, key security
features
HAL – standard interfaces to device hardware
Android
Platform
Structure
Virtual Machine
Virtual machine is software that runs on the operating system and provides
an abstraction to the developer, so the application software runs on top of
the virtual machine.
This was made to overcome the problem of specified platform executable
files. Therefore, as long as a computer has the virtual machine running, the
application software can run on that computer independent of the
hardware and the operating system.
Java Virtual Machine (JVM).
Virtual Machine
Similar to Java applications, Android applications also run on a JVM. There
are two special virtual machines used in Android: Dalvik Virtual Machine
(DVM) and Android RunTime (ART).
DVM – default runtime environment until the Lollipop release (Android 5.0)
ART – introduced by Android 4.0 and has been the default VM as of
Android 5.0
Main advantage of ART over DVM is the utilization of a concept called
Ahead of Time (AOT) compilation, apps are compiled during installation
hence they load faster over lower CPU usage.
On the other hand, JIT compilation provides lower storage space
consumption with relatively longer loading times.
Programming Languages Used For
Developing Android Apps
Android: Java, Kotlin (SDK on Android Studio)
iOS: Swift, ObjectiveC
Both: Native base application – Dart (Flutter), JS (React Native) – third party
tools.
Backend (JS, Java,
Dart…)
Android Viewer iOS Viewer
Programming Languages Used For
Developing Android Apps
Android: Java, Kotlin (SDK on Android Studio)
iOS: Swift, ObjectiveC
Both: Native base application – Dart (Flutter), JS (React Native) – third party
tools.
Backend (JS, Java,
Dart…)
Android Viewer iOS Viewer
Installation of Android Studio
Android App Development Tutorial 4 - Installing Android Studio | Java –
YouTube
Android App Development Tutorial 5 - Installing an Emulator | Android
Virtual Device Manager AVD – YouTube
Developing an Application
General steps of developing an Android application:
Set up user Connect the UI
Create Android
interface (UI) of components to Coding in Java
studio project
the application the Java code
(Optional) (Optional) Run Build the project
Run and try app
Publish app on app on a real to create the
on emulator
Google Play Android device executable file
Activity
Each screen shown to the user on any application is called an Activity.
Basically, Android applications are visual apps, so they compose of multiple
activities.
First screen of an application is the Main Activity, where the application
starts.
Creating a
Project
File → New → New Project
Creating a
Project
Create your first Android app
Creating a
Project
Creating a
Project
Project Structure
File structure of an Android project:
There are many views, the default if “Android” mode.
Manifest folder – configuration parameters (AndroidManifest.xml)
Java folder – source code files (.java)
Res folder – resources used in an application such as text files, images, audio
files…
Layout information of the main activity lays in activity_main.xml file that
resides in the res/layout folder.
XML file is interpreted in the Android studio environment and when opened
it shows the UI layout of the activity screen.
A palette of different components shows beside the view so you would
drag and drop components on the designed layout.
Running the application
Setup an emulator
Build the project
Select a previously setup emulator
Run app on emulator
References
7 Trends that Define The future of the Mobile Application Development - IST
Networks
Platform Architecture | Android Developers