0% found this document useful (0 votes)
437 views

MOBILE APP DEVELOPMENT - Lecture 1 PDF

This document provides an introduction to mobile app development. It discusses the history of mobile phones and the current mobile ecosystem. It also describes the different types of mobile apps that can be developed including native, web, and hybrid apps. The document then covers important considerations for mobile design such as keeping screens, content, navigation, and inputs simple. It also emphasizes the need to design for unstable mobile connections. Finally, it introduces the Android operating system and discusses its Linux kernel and libraries.

Uploaded by

Rosette Djeuko
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
437 views

MOBILE APP DEVELOPMENT - Lecture 1 PDF

This document provides an introduction to mobile app development. It discusses the history of mobile phones and the current mobile ecosystem. It also describes the different types of mobile apps that can be developed including native, web, and hybrid apps. The document then covers important considerations for mobile design such as keeping screens, content, navigation, and inputs simple. It also emphasizes the need to design for unstable mobile connections. Finally, it introduces the Android operating system and discusses its Linux kernel and libraries.

Uploaded by

Rosette Djeuko
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

MOBILE APP

DEVELOPMENT
CHAPTER 1:
Introduction to
Mobile App Development
01
Introduction
A BRIEF HISTORY OF MOBILE

● Mobile phones have changed the way we live our lives providing
voice calling, text messaging and mobile Internet access. The
very first mobile phones were two-way radios that allowed taxi
drivers and the emergency services to communicate. Motorola,
on 3 April 1973 was first company to mass produce the first
handheld mobile phone.
THE MOBILE ECOSYSTEM
● Mobile Ecosystem is a collection of multiple devices (mobile
phones, Tablet, Phablet etc), software (operating system,
development tools, testing tools etc), companies(device
manufacturers, carrier, apps stores, development/testing
companies) etc.. and the process by which data (sms,
bank-transactions etc.) is transferred/shared by a user from one
device to another device or by the device itself based on some
programs(Birthday, Wedding Messages, Calendar).
THE MOBILE ECOSYSTEM

● Data (Text, Multi-media, and VOICE) sharing can be done


between devices of the same operating system or different
operating systems. Examples – Iphone (IOS) to Windows Phone,
Iphone IOS to Nexus(Android), Motorola(Android) to
Nexus(Android). Data can also be shared between multiple
devices with the same operating system of the same
manufacturer.
Why Mobile?

● Mobile phones are used widely in our day-to-day lives giving us


the freedom to communicate anywhere and at anytime. The
latest mobile phones are incorporated with features like MP3
players, high resolution camera, high sound quality, 3G
technology and the list goes on
Why Mobile?
● The mobile phone allows us to connect to other compatible
devices, surf the internet, listen to music, play games and
capture our precious moments. These latest mobile phones are
stylish in looks and excellent in terms of usability and functions.
The 3G phones allow doing video calling and video conferencing.
These phones allow fast data exchange and information apart
from faster data downloads via internet. MMS, SMS, Email client
and instant messaging as well as multimedia capabilities,
gaming etc; are added features of latest mobile phones.
Why Mobile?
● The mobile phone allows us to connect to other compatible
devices, surf the internet, listen to music, play games and
capture our precious moments. These latest mobile phones are
stylish in looks and excellent in terms of usability and functions.
The 3G phones allow doing video calling and video conferencing.
These phones allow fast data exchange and information apart
from faster data downloads via internet. MMS, SMS, Email client
and instant messaging as well as multimedia capabilities,
gaming etc; are added features of latest mobile phones.
Types of Mobile Applications

● Native apps are built for a specific operating system. A native


app developed for iOS operating system won’t work on Android
devices and vice-versa. If an app is developed for iOS, it will
remain exclusive to that operating system. Softwares' used to
develop native apps generally would be Objective-C or Swift for
iOS, Java and ADT for Android operating system and .NET(C#) for
Windows operating system.
Types of Mobile Applications

● Mobile web apps are the web applications to render/deliver


pages on web browsers running in mobile devices. Since these
apps target browsers, they work on different mobile operating
systems. You can view a mobile web app on Android, iOS or
Windows tablets and phone devices. They also work on PC web
browsers. Softwares' used to develop these applications are
generally HTML, CSS, JavaScript, JQuery.
Types of Mobile Applications

● Hybrid apps are a mixture of both native and mobile web apps.
This type of application has cross-platform compatibility but can
still access phone’s hardware. Softwares used to develop these
apps are generally HTML, CSS, Javascript, JQuery, Mobile
Javascript frameworks, Cordova/PhoneGap etc.
Mobile Information Architecture
While designing a mobile, the following steps need to be followed.
● Put the content first creating the clarity of purpose upon which
to make and support sound user experience decisions
● Separate taxonomy and navigation:
○ Design taxonomies, categories, and classification schemes
to make the organization of content intelligible to users.
○ Design navigation and interaction to make using that
content context appropriate.
● Learn the patterns and guard against falling into default
patterns.
● Build a future-friendly and re-usable foundation.
Mobile Design - Small Screens
Decision needs to be made early as to whether to use responsive design (where
the device handles the changes in display) or adaptive design (where your
servers handle the changes). A good process to follow would be:
● Group device types based on similar screen sizes and try to keep this to a
manageable number of groups
● Define content rules and design adaption rules that enable you to display
things well on each group of devices
● Try to adhere as closely to web standards (W3) as possible when
implementing flexible layouts
● Don’t forget that there are many different browser types available for the
mobile web and the wider Internet too
Mobile Design - Keep Navigation Simple
● Prioritize navigation based on the way users work with functionality – the
most popular go at the top
● Minimize the levels of navigation involved
● Ensure labelling is clear and concise for navigation
● Offer short-key access to different features
● Remember to offer a 30x30 pixel space for touch screen tap points
● Ensure that links are visually distinct and make it clear when they have
been activated too
● Make it easy to swap between the mobile and full site (if you choose to
implement separate versions)
Mobile Design - Keep Content to a
Minimum

● Don’t overwhelm your users – respect the small screen space. Keep
content to a minimum.
● Make sure that content is universally supported on all devices or avoid it.
Think Flash and then don’t use it, for example.
● Make page descriptions short and to the point – for relevant bookmarks.
Mobile Design - Reduce the Inputs
Required from Users
● Keep URLs short.
● Offering alternative input mechanisms (video, voice, etc.)
● Minimizing inputs in forms (you can always ask for more data when the
user logs on to the desktop)
● Allowing permanent sign in (most smart phones are password or
fingerprint protected – the risks of staying logged in are less than on the
desktop)
● Keep scrolling to a minimum and only allow scrolling in one direction
Mobile Design - Remember Mobile
Connections Are Not Stable
Mobile connections can be a colossal PITA in areas with patchy service. Try:
● Retaining data so that it’s not lost in a connection break
● Minimizing page size for rapid loading
● Killing off ad-networks, etc. on mobile sites which consume huge amounts
of bandwidth and data
● Keeping images to a minimum and reducing the size of those images
● Reducing the numbers of embedded images to a minimum (speeding up
load times)
Few Reasons to go MAD

● Smart Phones
● Internet access anywhere
● Social networking
● Millions of mobile users
● Open standards
Introduction to Android

● Open software platform for mobile development


● A complete stack OS, Middleware, Applications
● An Open Handset Alliance (OHA) project
● Powered by Linux operating system
● Fast application development in Java
● Open source under the Apache 2 license
History of Android
● Google acquired the startup company Android Inc. in 2005 to start the
development of the Android Platform. The key players at Android Inc. included
Andy Rubin, Rich Miner, Nick Sears, and Chris White.
● In late 2007, a group of industry leaders came together around the Android
Platform to form the Open Handset Alliance
● The Android SDK was first issued as an early look release in November 2007.
● In September 2008 T-Mobile announced the availability of the T-Mobile G1, the
first smartphone based on the Android Platform.
● A few days after that, Google announced the availability of Android SDK
Release Candidate 1.0.
● In October 2008, Google made the source code of the Android Platform
available under Apache open source license.
Introduction to Android

● What is the Open Handset Alliance (OHA)?


● Devoted to advancing open standards for mobile devices
● Develop technologies that will significantly lower the cost of developing
and distributing mobile devices and services
● An open standard is a standard that is publicly available and has various
rights to use associated with it, and may also have various properties of
how it was designed (e.g. open process). There is no single definition
and interpretations do vary with usage
Linux Kernel

● At the core of the Android Platform is Linux kernel version 2.6,


responsible for device drivers, resource access, power management, and
other OS duties. The supplied device drivers include Display, Camera,
Keypad, WiFi, Flash Memory, Audio, and IPC (interprocess
communication).
Libraries

● The next level up contains the Android native libraries. They are all
written in C/C internally, but you'll be calling them through Java
interfaces. In this layer you can find a number libraries such as OpenGL,
WebKit, FreeType, Secure Sockets Layer (SSL), the C runtime library
(libc), SQLite and Media.
Libraries

● The media libraries are based on PacketVideos


(http//www.packetvideo.com/) OpenCORE. These libraries are
responsible for recording and playback of audio and video formats. A
library called Surface Manager controls access to the display system and
supports 2D and 3D.
Libraries

● The WebKit library is responsible for browser support it is the same


library that supports Google Chrome and Apple Inc.s Safari. The
FreeType library is responsible for font support. SQLite
(http//www.sqlite.org/) is a relational database that is available on the
device itself. SQLite is also an independent open source effort for
relational databases and not directly tied to Android. You can acquire
and use tools meant for SQLite for Android databases as well.
Android Runtime

● Dalvik VM
● Dex files
● Compact and efficient than class files
● Limited memory and battery power
● Core Libraries
● Java 5 Std edition
● Collections, I/O etc
Application Framework

● API interface
● Activity manager manages application life cycle.

Assignment: What is an API and how does it work


Applications

● Built in and user apps such as Home, Contacts, Phone, Browser, and so
on
● Can replace built in apps
Application Building Blocks

● Activity
● IntentReceiver
● Service
● ContentProvider
Activities

● Typically correspond to one UI screen


● But, they can
● Be faceless
● Be in a floating window
● Return a value
Intent receivers

● Components that respond to broadcast Intents


● Way to respond to external notification or alarms
● Apps can invent and broadcast their own Intent
Intents

● Think of Intents as a verb and object a description of what you want


done
● E.g. VIEW, CALL, PLAY etc..
● System matches Intent with Activity that can best provide the service
● Activities and IntentReceivers describe what Intents they can service
Services

● Faceless components that run in the background


● E.g. music player, network download etc
Content Providers
● Enables sharing of data across applications
● E.g. address book, photo gallery
● Provides uniform APIs for
● querying
● delete, update and insert.
● Content is represented by URI and MIME type
Content Providers
● Enables sharing of data across applications
● E.g. address book, photo gallery
● Provides uniform APIs for
● querying
● delete, update and insert.
● Content is represented by URI and MIME type
Android Architecture
● Android architecture is a software stack of components to support mobile
device needs. Android software stack contains a Linux Kernel, collection of
c/c++ libraries which are exposed through an application framework
services, runtime, and application.
● Following are main components of android architecture those are
○ Applications
○ Android Framework
○ Android Runtime
○ Platform Libraries
○ Linux Kernel
Android Architecture

● In these components, the Linux Kernel is the main component in android to


provide its operating system functions to mobile and Dalvik Virtual
Machine (DVM) which is responsible for running a mobile application.
● Following is the pictorial representation of android architecture with
different components.
The Linux Kernel

● Positioned at the bottom of the Android software stack, the Linux Kernel
provides a level of abstraction between the device hardware and the upper
layers of the Android software stack. Based on Linux version 2.6, the
kernel provides pre-emptive multitasking, low-level core system services
such as memory, process and power management in addition to providing
a network stack and device drivers for hardware such as the device
display, Wi-Fi and audio.
Android Runtime
● When an Android app is built within Android Studio it is compiled into an
intermediate byte-code format (DEX format). When the application is
subsequently loaded onto the device, the Android Runtime (ART) uses a
process referred to as Ahead-of-Time (AOT) compilation to translate the
byte-code down to the native instructions required by the device
processor. This format is known as Executable and Linkable Format (ELF).
Each time the application is subsequently launched, the ELF executable
version is run, resulting in faster application performance and improved
battery life.
Android RunTime (ART)
● When an Android app is built within Android Studio it is compiled into an
intermediate byte-code format (DEX format). When the application is
subsequently loaded onto the device, the Android Runtime (ART) uses a
process referred to as Ahead-of-Time (AOT) compilation to translate the
byte-code down to the native instructions required by the device
processor. This format is known as Executable and Linkable Format (ELF).
Each time the application is subsequently launched, the ELF executable
version is run, resulting in faster application performance and improved
battery life.
Android Libraries

● In addition to a set of standard Java development libraries (providing


support for such general purpose tasks as string handling, networking and
file manipulation), the Android development environment also includes the
Android Libraries. These are a set of Java-based libraries that are specific
to Android development.
C/C++ LIBRARIES

● The Android runtime core libraries are Java-based and provide the primary
APIs for developers writing Android applications. It is important to note,
however, that the core libraries do not perform much of the actual work
and are, in fact, essentially Java ―wrappersǁ around a set of C/C++ based
libraries.
APPLICATION FRAMEWORK

● The Application Framework is a set of services that collectively form the


environment in which Android applications run and are managed. This
framework implements the concept that Android applications are
constructed from reusable, interchangeable and replaceable components.
This concept is taken a step further in that an application is also able to
publish its capabilities along with any corresponding data so that they can
be found and reused by other applications.
Thanks!
Jerry Jonah
[email protected]
+237 698 081 976

CRÉDITOS: este modelo de apresentação foi criado pelo


Slidesgo, e inclui ícones da Flaticon e infográficos e
imagens da Freepik e ilustrações por Storyset

Por favor, mantenha este slide para atribuição

You might also like