This document provides an introduction to a mobile application development course. It outlines the course learning outcomes, which include explaining mobile application frameworks, comparing performance of application components, creating solutions to problems, and developing applications using current tools. Marks will be distributed between exams, projects, assignments, and practical classes. The document then defines what mobile and applications are, and discusses mobile computing components like hardware, software, and communication networks. It covers mobile operating systems, current trends in platforms like iOS, Android and Windows Phone, and technologies used for development. The document concludes with topics on mobile context awareness.
2. Course Learning Outcomes:
CLOs Description Taxonomy level PLO
1 Explain the basic concepts used in various
Mobile Application Development
Frameworks.
C3 1
2 Use mobile application components and
compare the different performance trade-
offs
C4 2
3 Create mobile application solutions to real
world problems
C5 3
4 Develop mobile applications using current
software development environments
P3 5
Upon successful completion of the course, the student will be able to:
3. Marks Distribution
CLO 1 and CLO 2 - Mid terms and Final Exam - 80 Marks
CLO 3 – Semester Project and Assignments - 20 Marks
CLO 4 – Practical Class – 50 Marks
4. What is Mobile?
Able to move or be moved freely or easily.
Technically defined as :
“relating to mobile phones, handheld computers, and
similar technology”.
What is an Application?
Putting something into operation
Technically defined as:
“A computer program designed to perform a specific
task for the user”.
5. What is mobile computing?
A simple definition could be:
Mobile Computing is using a computer (of one kind or another) while on the
move
Another definition could be:
Mobile Computing is when a (work) process is moved from a normal fixed
position to a more dynamic position.
A third definition could be:
Mobile Computing is when a work process is carried out somewhere where it
was not previously possible.
Mobile Computing is the technology used for transmitting voice and data
through small, portable devices using wireless enabled networks.
6. Main Components of Mobile Computing
Systems
Mobile Hardware
Mobile Hardware is a small and portable computing device with the ability to retrieve
and process data. These devices typically have an Operating System (OS) embedded in
them and able to run application software on top of it. These devices are equipped with
sensors, full-duplex data transmission and have the ability to operate on wireless
networks such as IR, WiFi, and Bluetooth.
Laptops
PDAs
Tablets
Smartphones
Notebooks
E-Readers
Smart Watches, etc.
7. Contd.
Mobile Software
Mobile Software is the software program which is developed specifically to be run
on mobile hardware. This is usually the operating system in mobile devices. These
operating systems provide features such as touchscreen, cellular connectivity,
Bluetooth, Wi-Fi, GPS mobile navigation, camera, video camera, speech
recognition, voice recorder, music player, near field communication and sensors.
The device sensors and other hardware components can be accessed via the OS.
8. Contd.
Communication
Mobile Communication refers to the exchange of data and voice using
existing wireless networks. The data being transferred are the
applications including File Transfer (FT), the interconnection between
Wide-Area-Networks (WAN), facsimile (fax), electronic mail, access to
the internet and the World Wide Web. The wireless networks utilized in
communication are IR, Bluetooth, W-LANs, Cellular, W-Packet Data
networks and satellite communication system. It is the mobile
communication infrastructure which takes care of seamless and reliable
communication between mobile devices.
9. Wireless Communication Networks
personal area network (PAN)
A wireless telecommunications network for device-to-
device connections within a very short range
Bluetooth
A set of telecommunications standards that enables
wireless devices to communicate with each other over
short distances
10. Contd.
Wireless Local Area Networks and Wi-fi
wireless local area network(WLAN)
A telecommunications network that enables users to make short-range
wireless connections to the Internet or another network
Wi-Fi (wirelessfidelity)
The common name used to describe the IEEE 802.11 standard used on most
WLANs
wireless accesspoint
An antenna that connects a mobile device to a wired LAN
hotspot
An area or point where a wireless device can make a connection to a
wireless local area network (using Wi-Fi)
11. Contd.
WWAN (wireless wide area network)communication bandwidths
1G - The first generation of wireless technology, which was analog based
2G - The second generation of digital wireless technology; accommodates voice and text
2.5G - An interim wireless technology that can accommodate voice, text, and
limited graphics
3G - The third generation of digital wireless technology; supports rich media such as
video
3.5G - This generation was inserted into the ranks of cell phone generations; it refers to
the packet-switched technologies used to achieve higher transmission speeds
4G - It provides faster display of multimedia
5G - 5G networks are the next generation of mobile internet connectivity, offering faster
speeds and more reliable connections on smartphones and other devices than ever
before. Combining cutting-edge network technology and the very latest research, 5G
should offer connections that are multitudes faster than current connections, with
average download speeds of around 1GBps expected to soon be the norm.
12. Applications of Mobile Computing
Emergencies Services
In companies
Stock Information Collection/Control
Credit Card Verification
Taxi/Truck Dispatch
Electronic Mail/Paging
Mobile Commerce
Banking and Financial Services
Wireless Electronic Payment
Systems
Location based Services
Mobile Shopping
Mobile Entertainment
Mobile games and
Hands-free driving
Wireless Telemedicine
Other Mobile Computing Services for
Consumers
Non–Internet Mobile Applications for
Consumers
13. Advantages
No location constraint: Mobile computing frees the user from being tied to a
location and increased bandwidth and speed of transmission makes it possible
to work on the move.
It saves time and enhances productivity with a better return on investment
(RoI)
It provides entertainment, news and information on the move with streaming
data, video and audio
Streamlining of business processes: Mobility has enabled streamlining of
business processes, cumbersome emails, paper processing, delays in
communication and transmission.
Newer job opportunities for IT professionals have emerged and IT businesses
now have an added service in their portfolio which only will keep growing as
per indicative mobile computing trends.
14. Challenges
Disconnection
Low bandwidth
High bandwidth variability
Low power and resources
Security risks
Wide variety terminals and devices with different capabilities
Device attributes
Fit more functionality into single, smaller device
15. Mobile OS
A mobile operating system (OS) is software that allows smartphones, tablet
PCs and other devices to run applications and programs.
A mobile OS typically starts up when a device powers on, presenting a screen with
icons or tiles that present information and provide application access. Mobile
operating systems also manage cellular and wireless network connectivity, as well
as phone access.
Apple iOS
GoogleAndroid
BlackBerry OS
Nokia’s Symbian
Hewlett-Packard’s webOS (formerly Palm OS)
Microsoft’s Windows Phone OS
16. Traditional Trends
Relevant to older mobile systems
Made use of older mobile operating systems
such as:
• Palm OS
• Psion OS
• Symbian OS
Technologies used: Specific to the above
operating systems such as C/C++, Java
mobile edition, WML etc.
18. Current Trends (Contd..)
Android
Developed by Google Inc.
Free and open source
Uses Linux operating system
Manufacturer: Oppo, Nokia, Samsung,
Huawei, Vivo, Motorola etc.
19. Current Trends (Contd..)
iOS
Developed by Apple in June 2007.
Device Manufacturer: Apple
Windows Phone
Developed by Microsoft.
Uses Windows operating system (Windows 8 and above).
Device Manufacturer: Nokia (formerly), Microsoft
20. Current Trends (Contd..)
Mobile Apps
Platform
Pros Cons
iOS • New features are usually available very
quickly.
• Less fragmentation arising from upgrades
• Excellent graphics
• Closed platform
• Development only on Mac
• Duplicating core iOS features
is prohibited.
• Publishing apps is expensive.
Android • Free and open source
• Major share of mobile market (81%)
• Open content sharing
• Publishing apps is easy (only 25$ fee once)
• Development on any platform
• Fragmentation between
different versions of the OS
• Graphics are often slower.
• Delay in upgrades
Windows Phone • Develop once publish anywhere (phone,
tablet or laptop).
• Low take-up of windows phone
• Publishing apps is less flexible
• Development only on Windows
8 or above.
22. Current Trends (Contd..)
Mobile Apps Platform Development Technology
iOS • System: MAC
• Programming language: Objective C
• Development software: Xcode
Android • System: Any system
• Programming language: Java/ Kotlin
• Development software: Android studio
Windows Phone • System: Windows
• Programming language: C# or C++/ Javascript
• Development software: Visual studio
Hybrid (3 into 1) • System: Any system
• Programming language: Dart, Javascript, C#
• Development software: Flutter, React JS, PhoneGap, Xamarin
23. Activity
Android Releases are named as Petit Four (1.1),
Cupcake (1.5), Donut (1.6), Eclair (2.0-2.1), Froyo
(2.2), Ginger Bread (2.3), Honeycomb (3.0), Ice
Cream Sandwich (4.0), Jelly Bean (4.1) and Kit
Kat (4.4), Lollipop (5.x),Marshmallow
(6.x),Nougat (7.x),Oreo (8.x),Pie (9.x), Android
10, Android 11, Android 12.
Name a Pakistani android release.
24. Types of Mobile App Development
Types of Mobile Apps by Technology
There are three basic types of mobile apps if we categorize them by the
technology used to code them:
Native apps are created for one specific platform or operating
system.
Web apps/Cross platform apps are responsive versions of websites
that can work on any mobile device or OS because they’re delivered
using a mobile browser.
Hybrid apps are combinations of both native and web apps, but
wrapped within a native app, giving it the ability to have its own icon
or be downloaded from an app store.
25. Types of Mobile App Development
01. Native Apps
Native apps are built specifically for a mobile device’s operating system
(OS). Thus, you can have native Android mobile apps or native iOS apps, not
to mention all the other platforms and devices. Because they’re built for
just one platform, you cannot mix and match – say, use a Blackberry app on
an Android phone or use an iOS app on a Windows phone.
Technology Used: Native apps are coded using a variety of programming
languages. Some examples include: Java, Kotlin, Python, Swift, Objective-C,
C++, and React.
Pros: Because of their singular focus, native apps have the advantage of
being faster and more reliable in terms of performance. They’re generally
more efficient with the device’s resources than other types of mobile apps.
Native apps utilize the native device UI, giving users a more optimized
customer experience.
26. Types of Mobile App Development
01. Native Apps
And because native apps connect with the device’s hardware directly,
they have access to a broad choice of device features like Bluetooth,
phonebook contacts, camera roll, NFC, and more.
Cons: However, the problem with native apps lies in the fact that if
you start developing them, you have to duplicate efforts for each of
the different platforms. The code you create for one platform cannot
be reused on another. This drives up costs. Not to mention the effort
needed to maintain and update the codebase for each version.
And then, every time there’s an update to the app, the user has to
download the new file and reinstall it. This also means that native
apps do take up precious space in the device’s storage.
28. Types of Mobile App Development
02. Web Apps
Web apps behave similarly to native apps but are accessed via a web
browser on your mobile device. They’re not standalone apps in the
sense of having to download and install code into your device.
They’re actually responsive websites that adapt its user interface to
the device the user is on. In fact, when you come across the option to
“install” a web app, it often simply bookmarks the website URL on
your device.
One kind of web app is the progressive web app (PWA), which is
basically a native app running inside a browser.
Technology Used: Web apps are designed using HTML5, CSS, JavaScript,
Ruby, and similar programming languages used for web work.
29. Types of Mobile App Development
02. Web Apps
Pros: Because it’s web-based, there is no need to customize to a platform or OS.
This cuts down on development costs.
Plus, there’s nothing to download. They won’t take up space on your device
memory like a native app, making maintenance easier – just push the update
live over the web. Users don’t need to download the update at the app store.
Cons: Web apps are entirely dependent on the browser used on the device. There
will be functionalities available within one browser and not available on another,
possibly giving users varying experiences.
And because they’re shells for websites, they won’t completely work offline.
Even if they have an offline mode, the device will still need an internet
connection to back up the data on your device, offer up any new data, or
refresh what’s on screen.
31. Types of Mobile App Development
03. Hybrid Apps
These are web apps that look and feel like native apps. They might have a home
screen app icon, responsive design, fast performance, even be able to function
offline, but they’re really web apps made to look native.
Technology Used: Hybrid apps use a mixture of web technologies and nativeAPIs.
They’re developed using: Ionic, Objective C, Swift, HTML5, and others.
Pros: Building a hybrid app is much quicker and more economical than a native app.
As such, a hybrid app can be the minimum viable product – a way to prove the
viability of building a native app. They also load rapidly, are ideal for usage in
countries with slower internet connections, and give users a consistent user
experience. Finally, because they use a single code base, there is much less code to
maintain.
Cons: Hybrid apps might lack in power and speed, which are hallmarks of native
apps.
33. Types of Mobile App Development
Types of Mobile Apps: How to Choose Just One
If you’re currently developing an app, then you
need to make a decision about which type of app
you’re going to be creating. There will be certain
factors that are ideal only on one type of app, and
not on others.
As you go through the following decision factors,
you should answer: what is the single most
important factor for your decision today? The
answer will dictate which type you have to focus
on NOW.
34. Types of Mobile App Development
Types of Mobile Apps: How to Choose Just One
Decision Factor: I Need an App ASAP!
If you absolutely must have an app in the shortest amount of time possible, then you need to invest in
building a web app. Not only will one codebase drastically speed up development time, but it will also
mean that your users already have what they need to use it: a mobile browser.
Decision Factor: I Have Limited Resources
If time and money are not on your side, then consider either a web app or a hybrid app. The hybrid app
gives you a chance to test the market with a minimum viable product that can be in the hands of users
within a few months. And if successful, you can decide to build a full-fledged native version later on.
Decision Factor: My App Must Be Fast and Stable
If performance is of the utmost importance, then there’s no way around it: you need to develop a native
app. This type of app will give you the speed, stability, and customization features you deem crucial to
your success.
In the end, choosing which type of mobile app you will build is not a one-and-done decision. You can always
choose to build another type down the road, depending on your user’s needs.
And once you do finally build it, make sure you monitor the metrics that matter for the actual growth of
your brand.
35. Native Mobile Apps
When To
High Performance Apps
Heavy on OS and Device Features
Complex N/W comm.
Only Few Platforms
When Not To
Performance is not the main
criteria
More or less Replicates WebApps
with few device feature
Standard Restful
Many Platforms
36. Cross Platform Mobile Apps
When To
Performance is not the main
criteria
More or less Replicates Web Apps
with few device feature
Standard Restful
Many Platforms
Time to market is critical
Saving Cost is critical
When Not To
High Performance Apps
Heavy on OS and Device Features
Complex N/W comm.
Only Few Platforms
37. Hybrid Mobile Apps
When To
Fairly Simple UI
Complex Backend
Quite few platforms
Why To
• Some parts of app are
common
• Rest parts are different
• Use Cross Platform to develop
common part
• Use Native to develop the
weight lifting parts
39. Understanding Mobile Context Awareness
Introduction
Our mobile devices are very much part of our day to day lives.
Mobile devices accompany us in the kitchen, in the library, in the vehicle, in the
bed or even when we are hiking through a mountain.
Any situation we find ourselves in, mobile devices does what its best at — to
provide the suitable and tailored services and information through the Apps
whenever we need it.
When a mobile app understands user, situation or combination of any environment
variables and provide the suitable services, we call them context-aware mobile
apps.
Location based service apps are an example of such apps. Since mobile devices are
always with us and has powerful sensors and services, a mobile device should be
able to establish our context and provide right service at the right time making our
life easier with a concern for the mobile device limitations.
40. Reducing Distraction
40
User attention is a precious resource
The most successful mobile
computing systems of the
next decade will be those
that are able to reduce or
eliminate user interactions
41. User Interaction with Mobile Device
Mobile application autonomy can reduce user
interaction.
Mobile application should place greater
dependence on contextual information
41
42. Traditional View of Computer Systems
Computer System
input output
Context independent:
acts exactly the same
Human in the loop
43. Motivation
Modern computers are divorced from reality
Unaware of who, where, and what aroundthem
Leads tomismatch
Computers have extremely limited input
Aware of explicit inputonly
Can take a lot of effort to do simplethings
Context-Aware Computing
Making computers more aware of the physical and social worlds we live in
Breaking computers out of thebox
44. Context as Implicit Input/Output
Context-Aware
System
explicit
input
explicit
output
Context:
• state of the user
• state of the physical environment
• state of the computing system
• history of user-computer interaction
45. Definition of Context
Schilit divides context into three categories:
Computing context (available processsors, network capacity etc.)
User context (location, nearby people,etc.)
Physical context (temperature, lighting, noise levels, etc.)
Time is also important and natural context
Time context
=> context history
46. Why Context-Aware Computing?
Existing Examples Context Types Human Concern
Auto Lights On / Off Room Activity Convenience
Calendar Reminders Time Memory
Smoke Alarm Room Activity Safety
Barcode Scanners Object Identity Efficiency
47. Existing Examples
Why Context-Aware Computing?
Activity
Activity
Identity
Identity & Time
Time
Smoke Alarm
Auto Lights On / Off
Barcode Scanners
File Systems
Calendar Reminders
Potential Examples Context Types Human Concern
Auto Cell Phone
Off In Meetings Identity
Time
Location
Proximity
Activity
History
…
Convenience
Tag Photos Finding Info
Proximal Reminders Memory
Health Alert Safety
Service Fleet
Dispatching
Efficiency
48. Examples of Context
Spatial: location, orientation, speed
Temporal: date, time of day, season
Environmental: temperature, light, noise
Social: people nearby, activity, calendar
Resources: nearby, availability
Physiological: blood pressure, heart rate, tone of voice
49. Context Awareness & Mobile Apps
Context-aware applications tend to be enhanced
mobile applications for the following reasons:
User context changes frequently subject to the user’s
mobility behavior
The need for context-aware behavior is greater in a
mobile environment (user location, network resources,
and device capabilities)
49
50. Sensing the Context (1/3)
Location:
Outdoors: GPS
Indoors: IR, RF
, ultrasonic, camera
(cellular and non-cellular)
Hybrid: IEEE 802.11, Mobile-IP
Issues:
Heterogeneous sensors with uncertainty and conflicts (sensor
fusion)
Data vs sensor networks
Making mobile devices location-aware
51. Sensing the Context (2/3)
Low-level contexts beyond location
Time: time-of-day (with calendar)
Nearby objects
Network bandwidth
Orientation
Others: photodiode (light), accelerometer (tilt, vibration),
microphone, sensors for temperature, pressure, gas, etc.
Issue: sensors in mobile devices or infrastructure => direct
vs. indirect awareness
52. Sensing the Context (3/3)
High-level contexts: user’s activity
Camera technology and image processing
Consult calendar for what user is to do
Combine low-level sensors using rules
How about emotional contexts?
53. People Issues
Avoiding dangerous situations
Need to take into consideration cost of mistake
Smoke alarms when cooking
Lights that turn off when you're still there
Will adding more context really help here?
54. People Issues
Making it predictable and understandable
Setting preferences
"I want my cell phone to ring except in theaters and when I'm in a
meeting unless…"
Privacy
What does the computer know about me? What do others know about
me?
Capturing/collecting lots of information about people, places and
devices
People uncomfortable when don’t know what is being collected and
how it’s used
55. Killer Applications?
Need something to focus and drive the research
Need something to put in the hands of real people
Business model: how to make money from it?
56. Summary
User attention is a precious resource in mobile
environment
Mobile application should reduce user
interaction
Mobile application should place greater
dependence on context
Need balance of user control due to imperfect
context information
56