Why Mobile Apps?
Mobile Phones History.
CONTENTS
App Design Issues and Considerations.
Mobile Operating Systems and their Architecture
Transformative Devices:
WHY MOBILE Mobile devices are transformative, offering new business
APPS? possibilities.
They are the first truly mobile computing platforms, with
built-in sensors to interact with their environment.
Reaching Customers:
WHY MOBILE Smartphones are always within reach, making mobile apps
APPS? crucial for businesses to engage customers.
Mobile apps provide a direct link to customers, supporting
brand loyalty and awareness.
Changing Business Process:
WHY MOBILE Mobile technology enables the redesign of business
APPS? processes.
It allows businesses to re-examine their products and
processes, leading to potential strategic advantages.
Making Money:
The app market offers various revenue models: one-time fees,
advertisements, in-app purchases, and subscriptions.
Developers can monetize their apps directly or consult for
WHY MOBILE
APPS? businesses, leveraging the app stores’ distribution and
payment systems.
These points can serve as the main topics for
your slides, each highlighting a key aspect of
mobile app development’s impact on technology
and business.
MOBILE PHONES HISTORY
The first mobile phone was the Motorola DynaTAC
8000X.
Introduced in 1983 and cost $4000 USD.
It was a bulky device that weighed 0.8 kg.
It had a battery life of 30 minutes.
MOBILE PHONES HISTORY
The first GSM network was launched in Europe in
1991.
It allowing mobile phones to communicate
across different countries and regions.
The first GSM phone was the Orbitel TPU 900.
Which had a digital display and a retractable antenna.
MOBILE PHONES HISTORY
The first phone with a color display was the
Siemens S10.
Which was released in 1997 and offered four
colors.
It also had a vibrate alert and a phone book that
could store up to 140 contacts.
MOBILE PHONES HISTORY
The first camera phone was the Sharp J-SH04.
Which was launched in Japan in 2000 and had a 0.11
megapixel camera.
It also had an infrared port and a web browser.
The first camera phone in the western market was
the Sony Ericsson T68i, which came with a clip-on
camera accessory in 2002.
MOBILE PHONES HISTORY
The first smartphone was the IBM Simon Personal
Communicator.
Which was unveiled in 1992 and had a
touchscreen, email, fax, calendar and apps.
However, it was not very successful and only sold
50,000 units.
MOBILE PHONES HISTORY
The first widely popular smartphone was the
BlackBerry 5810.
which was released in 2002.
had a full QWERTY keyboard, email, web browsing
and instant messaging.
MOBILE PHONES HISTORY
The first iPhone was launched by Apple in 2007.
Sleek design, intuitive user interface, multitouch
screen and app store.
It also had a 2 megapixel camera, Wi-Fi, Bluetooth
and GPS.
MOBILE PHONES HISTORY
The first Android phone was the HTC Dream or T-
Mobile G1.
Released in 2008.
Had a slide-out keyboard, a trackball and access to
Google services.
It also had a 3.2 megapixel camera, Wi-Fi, Bluetooth
and GPS.
MOBILE PHONES HISTORY
The first phone with a foldable display was the
Samsung Galaxy Fold.
launched in 2019 and could transform from a
smartphone to a tablet.
It also had a 7.3 inch touchscreen when unfolded, a
4.6 inch touchscreen when folded, six cameras, Wi-
Fi, Bluetooth and GPS.
Designing for the specific device your app will run on is crucial!
Applications may function well on traditional computers but fail
miserably on mobile platforms if not redesigned to fit the device’s
capabilities.
APP DESIGN ISSUES
The device's capabilities allow for unique application designs not
AND
feasible on traditional computers.
CONSIDERATIONS.
Operating System Design Issues
Screen Size and Orientation Issues
Connectivity Issues
Battery Issues
Hardware Issues
APP DESIGN ISSUES
AND The difference between mobile operating systems and operating systems
CONSIDERATIONS. used on computers is that the mobile operating system is not a true
multitasking system.
On mobile devices, only one app can be active at a time.
Operating System Design Issues When another app is started, or the app is interrupted by another app (for
example, a phone call), the app that was running gets put in the
background.
The Android life cycle begins when a user touches an app’s icon.
APP DESIGN ISSUES
AND This action triggers the execution of the onCreate method in the app’s
CONSIDERATIONS. initial activity.
The onCreate method includes code to load the screen (layout)
associated with the initial activity.
Operating System Design Issues
In this method, the developer initializes variables and layout objects to
Android Life Cycle
the required settings for user interaction.
Following the creation of the activity, the onStart method is executed.
When a user stops directly interacting with the app, the path to destruction
APP DESIGN ISSUES
begins.
AND
CONSIDERATIONS. The first method executed is onPause, which should be used to stop
services that the app is using, to stop animations, or to store important
state information so that users can start using the app exactly as they left it.
Operating System Design Issues If the app is about to become invisible, the onStop method will be executed.
Android Life Cycle Finally, if not restarted, the onDestroy method will be executed just before
the operating system takes away all the app’s resources.
None of the methods executed on the path to destruction have to be
implemented.
APP DESIGN ISSUES
AND
CONSIDERATIONS.
Operating System Design Issues
Android Life Cycle
The life cycle for iOS is similar to Android’s.
iOS uses both an app life cycle and a screen (called view) life cycle to
APP DESIGN ISSUES
accomplish essentially the same things.
AND
CONSIDERATIONS. The life cycle begins when the user taps an app’s icon.
The application didFinishLaunchingWithOptions: method is similar to an
activity’s onCreate method. However, in iOS, this method is used to set up the
operating environment for the complete app, not just a single activity.
Operating System Design Issues
IOS Life Cycle The applicationWillResignActive: method is executed when the app is
interrupted, similar to when the onPause method is executed in Android.
When the app is no longer visible, the applicationDidEnterBackground:
method is executed.
Code in these methods should be used to turn off services and save important
data for the user before it’s potentially lost.
Unlike Android, iOS has a separate life cycle for displayed screens, known as
ViewControllers.
APP DESIGN ISSUES The view life cycle begins after the application has finished loading or when the
AND
user navigates to a different page within the app.
CONSIDERATIONS.
Once the view is loaded into memory, the viewDidLoad: method is executed. This
method is called only once if the view remains in memory.
The viewDidLoad: method is where code should be written to set the initial state
Operating System Design Issues
of the view.
IOS Life Cycle
Just before the view becomes visible to the user, the viewWillAppear: method is
executed.
The viewWillAppear: method is used to load any data into the views that will be
visible to the user and to activate services required for user interaction.
The viewWillAppear: method executes every time the view reappears on the
device.
APP DESIGN ISSUES
AND
CONSIDERATIONS.
Operating System Design Issues
IOS Life Cycle
IOS App life Cycle
APP DESIGN ISSUES
AND
CONSIDERATIONS.
Operating System Design Issues
IOS Life Cycle
IOS View life Cycle
Mobile devices are utilized in various scenarios distinct from traditional
APP DESIGN ISSUES computing devices. App users engage in multitasking activities such as
AND
walking, conversing with friends, etc.
CONSIDERATIONS.
App design must facilitate seamless user transitions to the app, allowing
immediate task execution before distractions arise. Ease of app usability is
paramount; if users struggle to navigate the app, no amount of assistance will
Screen Size and Orientation suffice.
Issues
Limited screen real estate poses a significant challenge in mobile app
development. Intense competition exists among app developers for superior
user interface design.
Both iOS and Android platforms offer scrolling capabilities to access interface
elements not immediately visible on the screen. Judicious use of scrolling, especially
APP DESIGN ISSUES horizontal scrolling, is recommended.
AND Vertical scrolling, though more natural, should also be limited to essential elements.
CONSIDERATIONS. Horizontal scrolling should be reserved for items extending off the main screen, as
users may not instinctively use it.
It's imperative to limit scrolling to ensure a smooth user experience. Certain
Screen Size and Orientation interface elements should remain fixed during scrolling to enable uninterrupted
Issues user operations.
Effective interaction planning is key to mitigating the constraints of limited screen
size. Screens should focus on a single or coherent set of tasks to streamline user
experience.
Navigation should be intuitive, guiding users seamlessly through tasks. Tasks
requiring multiple steps should be divided into distinct screens, guiding users
through each step efficiently.
• Importance of Mobile Device Connectivity:
• Mobile devices can communicate with other devices and the internet.
APP DESIGN ISSUES
AND • Enables the creation of powerful and useful apps.
CONSIDERATIONS.
• Design Problems:
• Connectivity can be lost or connection speed may be slow.
• Movement of the device, even a few feet, can disrupt connectivity.
Connectivity Issues
• Users may not realize or understand connectivity issues while using an app.
• Apple's Requirement and Android's Approach:
• Apple mandates user warnings for lost network connections in submitted
apps.
• Android does not require such warnings, leaving it to the discretion of
developers.
• Solutions through Design and Planning:
• Design and planning are essential to address connectivity issues.
APP DESIGN ISSUES
AND • Primary concern is avoiding blocking users from app functionality.
CONSIDERATIONS.
• Asynchronous Data Handling:
• Data fetching and sending can take a significant amount of time.
• Plan for asynchronous data uploading and downloading to prevent user
Connectivity Issues inconvenience.
• Execute data operations outside the main thread of the app.
• Designing for User Experience:
• Ensure the app offers alternative tasks while data operations are ongoing.
• Provide warnings when user actions require unavailable data.
• Warn users about connectivity issues and offer options for action.
Mobile devices and Power Management:
APP DESIGN ISSUES Mobile devices, being inherently mobile, rely on batteries for power as they
AND are not always connected to a power source.
CONSIDERATIONS.
It is crucial for developers to optimize their applications to conserve battery
life.
Unnecessary battery drain not only affects user experience but also impacts
Battery Issues
app usage, reviews, and downloads.
Minimizing Battery Drain:
Developers must ensure their apps do not excessively drain device batteries.
The primary power draw for devices is the display, which developers can't
directly control.
However, efficient code implementation can minimize unnecessary
APP DESIGN ISSUES Managing Sensor Usage:
AND After the display, sensors such as GPS, camera, and communication
CONSIDERATIONS.
modules are significant power drains.
Developers have the ability to manage sensor usage within their apps.
Sensors should only be activated when necessary and turned off promptly
Battery Issues
after completing the required task.
This approach helps mitigate unnecessary power consumption and
prolongs battery life.
APP DESIGN ISSUES Hardware Components in Mobile Computing:
AND Mobile devices boast a variety of hardware components that
CONSIDERATIONS.
enhance user experience and enable interaction with the
environment.
These components include GPS for location tracking, orientation
Hardware Issues
sensors, lights, cameras, and others.
Access to these components can facilitate the development of
engaging and practical applications.
Considerations for Hardware Component Usage:
APP DESIGN ISSUES Each hardware component comes with its own set of considerations that
AND can affect app performance and desirability.
CONSIDERATIONS. Availability of Components:
Different manufacturers produce Android devices, resulting in variations in
included hardware components.
Hardware Issues iOS devices are generally more uniform but still exhibit differences.
It's crucial to evaluate the importance of each component to the primary
functionality of the app.
Tangential components may be best avoided to prevent compatibility issues and
user frustration.
APP DESIGN ISSUES Situational Availability:
AND
CONSIDERATIONS. Certain components, like GPS, require specific conditions for
operation, such as access to satellite signals.
Environmental factors, like being indoors, can affect the
Hardware Issues functionality of hardware components.
Users may experience limitations in component functionality based
on their surroundings.
Mobile operating systems are software platforms that run on
smartphones, tablets, and other mobile devices.
MOBILE They provide various features and functions for users, such as user
OPERATING interface, applications, connectivity, security, and multimedia.
SYSTEMS
The history of mobile operating systems can be traced back to the
early 1990s, when the first handheld devices with embedded systems
were introduced.
Functions of Mobile Operating system:
Memory Management.
Process Management/CPU Scheduling
MOBILE
OPERATING Device Management
SYSTEMS File Management
Device Security
Error detection
1993: PenPoint OS by GO Corp. and Newton OS by Apple are launched
on the first personal digital assistants (PDAs).
HISTORY OF 1996: Palm OS by Palm Inc. is released on the Palm Pilot PDA, which
MOBILE
OPERATING becomes a popular device for personal information management.
SYSTEMS 1998: Symbian OS by Symbian Ltd. is created as a joint venture
between Nokia, Ericsson, Motorola, and Psion. It becomes the
dominant platform for smartphones in the 2000s.
2000: Windows CE (Compact Edition) by Microsoft is rebranded as
Windows Mobile and targets both PDAs and smartphones.
HISTORY OF 2007: iOS by Apple is unveiled on the first iPhone, which
MOBILE revolutionizes the smartphone industry with its touch-based interface
OPERATING and app store.
SYSTEMS
2008: Android by Google is launched on the HTC Dream (T-Mobile
G1), which is the first commercially available smartphone to run on
the Linux-based open source platform.
2009: webOS by Palm is introduced on the Palm Pre smartphone,
which features a gesture-based interface and multitasking capabilities.
HISTORY OF 2010: Windows Phone by Microsoft is announced as a successor to
MOBILE
OPERATING Windows Mobile, with a new design language and user experience.
SYSTEMS 2013: BlackBerry 10 by BlackBerry is released as a revamped version
of its previous platform, with a gesture-based interface and improved
security features.
2015: Tizen by Samsung is launched on the Samsung Z1 smartphone,
which is aimed at emerging markets and low-end devices.
HISTORY OF 2017: KaiOS by KaiOS Technologies is developed as a fork of Firefox
MOBILE
OPERATING OS, which is designed for feature phones and smart featurephones.
SYSTEMS 2020: HarmonyOS by Huawei is unveiled as a cross-platform
operating system that can run on various devices, such as
smartphones, tablets, smartwatches, smart TVs, and IoT devices.
MOBILE
OPERATING
Android is a mobile operating system that runs on smartphones,
SYSTEMS
tablets, and other devices.
Android was created in 2003 by Andy Rubin, who initially wanted to
develop an operating system for digital cameras.
Android
In 2005, Google acquired Android Inc. and continued to develop the
operating system based on Linux, an open source operating system
for personal computers.
In 2007, Google announced the Open Handset Alliance, a consortium
MOBILE of technology and mobile phone companies that supported Android
OPERATING
as a free and open source operating system with third-party
SYSTEMS
applications.
In 2008, the first Android phone, the T-Mobile G1, was released. It
ran on Android 1.0, which had features such as Google Search, Google
Android
Maps, Gmail, and YouTube.
Since then, Android has evolved through several versions, each
named after a dessert or a sweet treat in alphabetical order. From
Android Android 2.0 Eclair (2009) to the current version Android 14
One UI 6.0.
MOBILE Android is an open-source, Linux-based software stack.
OPERATING
SYSTEMS The major components of the Android platform include
1. The Linux kernel
2. Hardware Abstraction Layer (HAL)
Android Architecture
3. Native C/C++ Libraries
4. Android Runtime (ART)
5. Java API Framework and
6. System Apps
MOBILE 1. The Linux Kernel
OPERATING
SYSTEMS The foundation of the Android platform is the Linux kernel.
For example, the android run time relies on the Linux kernel for
underlying functionalities such as threading and low-level
Android Architecture memory management.
Using a Linux kernel allows Android to take advantage of key
security features and allows device manufacturers to develop
hardware drivers for a well-known kernel.
MOBILE 2. Hardware Abstraction Layer (HAL)
OPERATING Provides standard interfaces that expose device hardware
SYSTEMS
capabilities to the higher-level Java API framework.
The HAL consists of multiple library modules, each of which
implements an interface for a specific type of hardware
Android Architecture
component, such as the camera or Bluetooth module.
When a framework API makes a call to access device hardware, the
Android system loads the library module for that hardware
component.
3. Android Runtime
MOBILE
For devices running Android version 5.0 (API level 21) or higher,
OPERATING
SYSTEMS each app runs in its own process and with its own instance of the
Android Runtime (ART).
ART is written to run multiple virtual machines on low-memory
Android Architecture devices by executing DEX files, a bytecode format designed
specially for Android that's optimized for minimal memory
footprint.
Build tools, such as d8, compile Java sources into DEX bytecode,
which can run on the Android platform.
MOBILE
OPERATING
SYSTEMS 4. Native C/C++ Libraries
Many core Android system components and services, such as ART
and HAL, are built from native code that require native libraries
Android Architecture written in C and C++.
The Android platform provides Java framework APIs to expose the
functionality of some of these native libraries to apps.
MOBILE
OPERATING
SYSTEMS 5. Java API Framework
The entire feature-set of the Android OS is available to you through APIs
written in the Java language.
Android Architecture These APIs form the building blocks you need to create Android apps by
simplifying the reuse of core, modular system components and services,
which include the following:
MOBILE
OPERATING 5. Java API Framework (cont’d…)
SYSTEMS
View System : use to build app’s UI, including lists, grids, text
boxes, buttons, and even an embeddable web browser
Resource Manager: providing access to non-code resources such
Android Architecture
as localized strings, graphics, and layout files
Notification Manager: enables all apps to display custom alerts in
the status bar
MOBILE
OPERATING
SYSTEMS 5. Java API Framework (cont’d…)
Activity Manager : manages the lifecycle of apps and provides a
common navigation back stack
Android Architecture
Content Providers : enable apps to access data from other apps,
such as the Contacts app, or to share their own data
MOBILE
OPERATING
SYSTEMS 6. System Apps
Android comes with a set of core apps for email, SMS messaging,
calendars, internet browsing, contacts, and more.
Android Architecture A third-party app can become the user's default web browser, SMS
messenger, or even the default keyboard (some exceptions apply,
such as the system's Settings app).
MOBILE
OPERATING 6. System Apps (cont…)
SYSTEMS
The system apps function both as apps for users and to provide
key capabilities that developers can access from their own app.
For example, if your app would like to deliver an SMS message, you
Android Architecture
don't need to build that functionality yourself—you can instead
invoke whichever SMS app is already installed to deliver a message
to the recipient you specify.
iOS is a mobile operating system developed by Apple Inc.
MOBILE
OPERATING exclusively for its hardware, such as iPhone, iPad, and
SYSTEMS
iPod touch devices.
iOS is based on Unix-like, macOS, and Darwin (BSD)
IOS operating systems, and uses Cocoa Touch as its default
user interface.
iOS is updated annually, with the current stable version
being iOS 17.4.1, released on March 21, 2024.
MOBILE
OPERATING
SYSTEMS
IOS Architecture
MOBILE CORE OS Layer
OPERATING
SYSTEMS All the IOS technologies are built under the lowest level
layer i.e. Core OS layer. These technologies include:
Core Bluetooth Framework
IOS Architecture
External Accessories Framework
Accelerate Framework
Security Services Framework
Local Authorization Framework etc.
MOBILE
OPERATING CORE SERVICES Layer
SYSTEMS
Some important frameworks are present in the CORE
SERVICES Layer which helps the iOS operating system to
cure itself and provide better functionality.
IOS Architecture
It is the 2nd lowest layer in the Architecture as shown
above. Below are some important frameworks present in
this layer:
MOBILE
OPERATING
SYSTEMS
MEDIA Layer
With the help of the media layer, we will enable all graphics
IOS Architecture video, and audio technology of the system.
This is the second layer in the architecture.
MOBILE
OPERATING
SYSTEMS COCOA TOUCH
COCOA Touch is also known as the application layer which
acts as an interface for the user to work with the iOS
IOS Architecture Operating system.
It supports touch and motion events and many more
features.
THANK YOU!