CHAPTER 1
Mobile Applications Development 1
INTRODUCTION
Every day the new devices are incoming to the market with innovative
options. The evolution of mobile application development technology with
new devices made our lives much easier.
In the smartphone world, simply having a running website is not enough. A
recent study, it has shown that about 45% and more of Google search
happens using smartphones.
We can start explaining mobile development, which is not only about
building phone apps, though it is a huge part of it. Actually, it’s doing any
reasonable development for any kind of mobile device such as developing
apps for phones, tablets, smartwatches, and every form of wearable device
2
that run any kind of mobile operating system.
INTRODUCTION…
Mobile development presents a reasonably distinctive chance for a
one-person development team to build an actual, usable, significant
app end-to-end during a comparatively short period.
However, mobile app development represents more than just a
chance for the solo developer to create their own project as it is
arguably the longer term of development, as mobile devices are
getting larger and bigger parts of our lives.
3
MAJOR MOBILE APP DEVELOPMENT
PLATFORMS
iOS (iPhone Operation System)
iOS is of course developed by Apple, and it runs exclusively on Apple products. Which
is released in June 2007.
Apple provides iOS developers with many native tools and libraries to develop iOS
applications, and, though you do not have to be enforced to use Apple’s development
tools to create your apps, you just need to have a mac running OS to build your
application.
Android
Android is the other dominant player in this space, it was a bit later participant to the
game, first being released in September 2008, virtually a year later than iOS but it has
managed to achieve a reasonably massive share of the mobile market.
Technically, Android is the mobile OS with the largest most dominant share of the
4
market with around 70.29% share.
WHAT are the PRIMARY DIFFERENCES BETWEEN iOS and
ANDROID?
iOS Android
iOS is backed by Apple. Android is backed by
iOS is based on Mac OS, the Google.
operating system which Android is based on the
runs Apples line of Mac Linux kernel, and Google
desktop and laptop releases the source code for
computer. Android as open source.
iOS is designed to run only Anyone can build an
on a specific set of Apple Android device, and it is
devices. designed to run on a variety
of different hardware
platforms and devices with
very different form factors
and capabilities. 5
TOP MOBILE APPLICATION DEVELOPMENT TRENDS IN
2018:
Augmented Reality
Not only AR is frequently used in fun apps, however, has additionally been distinguished in
education and in many varieties of sporting events. For example, in common social media
apps nowadays like Snapchat, Instagram and Pokémon Go.
Artificial Intelligence
Artificial intelligence (AI) has been featured in several technological advancements as well as
machine learning, language process, automation and much more. With the fast and
continuous growth of AI, big-name corporations have been adding this feature to their mobile
apps with notable success like Amazon’s Alexa and Apple’s face recognition software system.
6
TOP MOBILE APPLICATION DEVELOPMENT TRENDS IN
2018:
Hybrid Development
In hybrid development, standard coding languages like JavaScript are used and only one code
base must be written, as the utilized framework will neatly wrap everything along in a very view,
which
may then be displayed in their respective native Android and iOS environments.
Two-Factor Authentication
With Two-Factor Authentication (2FA), users are prompted to verify a login attempt was meant by
getting into a pin through their phone or email that is connected to their account. In modern
society, our data is our identity and with over five billion distinctive mobile phone users with an
increase of four-dimensional annually, data security is essential and more necessary than ever.
Blockchain
With blockchain evolving at a speedy pace, several firms and startups are incorporating this
technology into their mobile applications creating what is familiar these days as
7
DApps(decentralized applications).
INTRODUCTION TO MOBILE COMPUTING
Mobile computing can be defined as a computing environment over
physical mobility. The user of the mobile computing environment will be
able to access data, information or logical objects from any device
in any network while on move.
Wireless telecommunications networks are generally implemented
and administered using radio communication. This implementation
takes place at the physical level (layer) of the OSI model network
structure.
Examples of wireless networks include cell phone networks, wireless
local area networks (WLANs), wireless sensor networks, satellite
8
communication networks, and terrestrial microwave networks.
TYPES OF COMPUTING
A. Mobile Computing is a computing that connects a
mobile device to network or another computing device,
anytime, anywhere.
The user of mobile computing environment will be able to
access data, information or other logical objects from any
device in any network while on the move.
The computing environment is mobile and moves along with
the user. This is similar to the telephone number of a GSM
(Global System for Mobile Communication) phone, which
moves with the phone. The offline (local) and real time
(remote) computing environment will move with the user. In
real time mode user will be able to use all his remote data
and service online.
9
TYPES OF COMPUTING
B. Nomadic Computing: The computing environment is
nomadic and moves along with the mobile user. It refers to
limited migration is within a building at a pedestrian speed,
interleaved pattern of user relocation and indoor connections
and users carrying laptop with wireless access are engaged in
nomadic computing.
C. Pervasive Computing: A computing environment, which
is pervasive in nature and can be made available in any
environment. It refers to access to computer network all the
time at any location by any person. It cannot be realized
unless mobile computing matures.
D. Ubiquitous Computing: A disappearing (nobody will
notice its presence) every place computing environment.
User will be able to use both local and remote services.
10
GSM
Global System for Mobile Communications
(GSM):
The GSM network is divided into three major
systems: the switching system, the base
station system, and the operation and
support system. The cell phone connects to the
base system station which then connects to
the operation and support station; it then
connects to the switching station where the
call is transferred to where it needs to go. GSM is
the most common standard and is used for a
majority of cell phones. 11
ARCHITECTURAL MODEL
The architectural model of a mobile computing environment is
shown in Figure 1.1 and consists of stationary and mobile components.
Fixed hosts are connected together via a fixed high-speed network
(Mbps to Gbps).
Some of the fixed hosts are special computers equipped with wireless
interfaces, and are known as base (radio) stations (BS). They are
also known as mobile support stations (MSS).
Base stations, which are placed in the center of cellular coverage
areas, act as access points between the mobile computers and the
fixed network. 12
ARCHITECTURAL MODEL
Mobile computers can be in one of three
states.
- The first state places a mobile computer within a cell and capable of communicating.
- The second state places the mobile computer out of range of any service cell and not capable
of communication.
- The third state places a mobile computer in a cell, communicating, but just ready to cross a cell
13
boundary. These scenarios are depicted in Figure 1.1.
A computing environment is defined as mobile if it supports one or more of these characteristics:
1.User mobility: User should be able to move from one physical location to another location and use
same service
2.Network mobility: User should be able to move from one network to another network and use same
service
3.Device mobility: User should be able to move from one device to another and use same service
4.Session mobility: A user session should be able to move from one user-agent environment to another.
5.Service mobility: User should be able to move from one service to another.
6.Host mobility: The user should be either a client or server.
The mobile computing functions can be logically divided into following major segments
1) User with device: The user device, this could be fixed device like desktop computer in office or a
portable device like mobile phone. E.g Laptop Computers, Desktop Computers, Fixed Telephones, Mobile
Phones, Digital etc.
2) Network: Whenever a user is mobile, he will be using different networks at different places at
different time eg GSM, CDMA, Ethernet, Wireless LAN, and Bluetooth etc.
14
3) Gateways: This is required to interface different transport bearers. These gateways convert one
INTRODUCTION TO ANDROID DEVELOPMENT
ENVIRONMENT
System Requirements
Android application development may be performed on any of the following system
types:
Windows Vista (32-bit or 64-bit)
Windows 7 (32-bit or 64-bit)
Windows 8/10 / 32-bit or 64-bit Windows 8.1 or later
Mac OS X 10.8.5 or later (Intel based systems only)
Linux systems with version 2.15 or later of GNU C Library
Minimum of 2GB of RAM (4GB is preferred)
Approximately 4.5GB of available disk space
15
SYSTEM REQUIREMENTS
Before any work can begin on the development of an Android
application, the first step is to configure a computer system to act
as the development platform.
This involves a number of steps consisting of installing the Java
Development Kit (JDK) and the Android Studio Integrated
Development Environment (IDE) which also includes the Android
Software Development Kit (SDK).
This chapter will cover the steps necessary to install the requisite
components for Android application development on Windows, Mac
OS X and Linux based systems.
16
INSTALLATION OF ANDROID STUDIO
Installation of Android Studio.
Android Studio runs on Java Runtime Environment (JRE). JRE can be installed on
Windows, Mac and Linux computers. We need to follow the steps given below for the
installation of Android Studio independent of our operating system:
1. Installation of Java:
Java is developed by Oracle Inc. There are basically two Java packages: Java Runtime
Environment (JRE) and Java Software Development Kit (JDK). JRE is used for running
software written in Java programming language whereas JDK is utilized for developing
Java software. Therefore, installing JRE is adequate for running Android Studio because
we will not develop Java software here. Please navigate to the following website to
download the JRE:
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.ht
ml
17
INSTALLATION OF ANDROID STUDIO
2. Installation of Android Studio and Android SDK
Android Studio is bundled with Android Software Development Kit (SDK). Please
navigate to the official download site located at:
https://developer.android.com/studio/index.html. The download link for the Windows
version is shown at the top of this site but if you scroll down, you can find the setup
files available for download for other operating systems as shown in Figure 1.3.
18
INSTALLATION OF ANDROID STUDIO
3. Installation of SDK updates: After the installation of Android Studio, it is better to
check SDK updates. For this, run Android Studio and open the SDK manager from Tools
à Android à SDK Manager as shown below:
The SDK Manager window will appear as shown in Figure 1.5.
19
INSTALLATION OF ANDROID STUDIO
Please open the standalone SDK Manager by clicking the link indicated in Figure 5. In the
standalone SDK Manager, click on the “Install … packages” as shown below:
20
INSTALLATION OF ANDROID STUDIO
After you install the packages, you’ll have the latest SDK and be ready to develop apps. However, before
our test drive app one more step is needed: setting up the emulators.
21
INSTALLATION OF EMULATORS
Installation of Emulators
Emulators are software that mimics the behavior of real devices. When we develop an
app, we obviously won’t have all the possible devices (Android phones, tablets, etc.)
available at hand. Because of this, we run the apps on emulators for testing on various
devices. Emulators are also called as “Android Virtual Devices (AVDs)” in Android
Studio. When Android Studio is first installed, there is no default AVD. We need to
create one before testing our apps. For this, select Tools =>Android =>AVD
Manager as shown in Figure 1.7.
When AVD Manager appears, there won’t be any AVDs created or installed. Please click
on the + Create a Virtual Device button as shown below:
22
INSTALLATION OF EMULATOR
23
INSTALLATION OF EMULATOR
AVD Manager will show a detailed window as in Figure 1.7. You can select various
devices with different screen sizes and other hardware properties. You can select
device groups from the left pane as TV, Phone, etc. Phone group is the default
selection. In this group, Nexus 5 is also selected by default. When you click “Next”,
you’ll be presented by choices for the Android version of the AVD as shown in Figure
1.8.
24
INSTALLATION OF EMULATOR
The recommended targets start from Android 5.1. We can Android 7.0 with Google APIs
(Nougat) as shown in the figure.
Then, please click “Next” and give a name you like to the AVD. I didn’t change the
defaults in the next screen as shown in Figure 1.10.
After clicking “Finish”, the AVD is created and shown in the AVD Manager as in Figure
1.11.
You can now try your Android apps on this AVD, which will accurately mimic the
behavior of a real Nexus 5 phone.
We can run the AVD by clicking the “Play” button shown inside the square in Figure
1.11. The virtual device will appear as in Figure 1.12 which you can use like a real
Nexus 5 phone.
After installing both the development environment and the emulator, we’re now ready
to develop our test drive app, Hello World, in the next chapter.
25
INSTALLATION OF EMULATOR
26
INSTALLATION OF EMULATOR
27
INSTALLATION OF EMULATOR
Within the Android SDK Tools screen, make sure that the following packages are listed
as
Installed in the Status column:
Android SDK Build-tools
Android SDK Tools
Android SDK Platform-tools
Android Support Repository
Android Support Library
Google Repository
Google USB Driver (Windows only) · Intel x86 Emulator Accelerator (HAXM
installer)
28
INSTALLATION OF EMULATOR
An alternative to using the Android SDK settings panel is to access the Standalone SDK
Manager which can be launched using the link in the lower left-hand corner of the
settings screen. The Standalone SDK Manager (Figure 1.13.) provides a similar list of
packages together with options to perform update and installation tasks:
Once the location of the SDK has been identified, the steps to add this to the PATH
variable is operating system dependent
29
THE
END! 30