MOBILE APP DEVELOPMENT - Lecture 1 PDF
MOBILE APP DEVELOPMENT - Lecture 1 PDF
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
● 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
● 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
● 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.
● 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
● 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
● 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