You are on page 1of 10

ASSIGNMENT : 1

Application Development on Hand Held Device

UNIT :1
Mobile Application Development:

Mobile application development is the set of processes and procedures involved in


writing software for small, wireless computing devices, such as smartphones and other
hand-held devices.Like web application development, mobile application development
has its roots in more traditional software development.

For example, a gaming app might be written to take advantage of the iPhone's
accelerometer or a mobile health app might be written to take advantage of a
smartwatch's temperature sensor

Mobile Applications and Device Platforms :

There are two dominant platforms in the modern smartphone market.

● One is the iOS platform from Apple Inc. The iOS platform is the operating system that powers
Apple's popular line of iPhone smartphones.

● The second is Android from Google. The Android operating system is used not only by
Google devices but also by many other OEMs to bu03ilt their own smartphones and other smart
devices.

Platform
The platform organizations needed to develop, deploy and manage mobile apps are
made from many components and tools which allow a developer to write, test and
deploy applications into the target platform environment.
Front-end development tools : Front-end development tools are focused on the
user interface and user experience (UI-UX) and provide the following abilities:
 UI design tools
 SDKs to access device features
 Cross-platform accommodations/support
 Back-end servers
Back-end tools pick up where the front-end tools leave off, and provide a set of reusable
services that are centrally managed and controlled and provide the following abilities:

 Integration with back-end systems


 User authentication-authorization
 Data services
 Reusable business logic
Security add-on layers
With bring your own device (BYOD) becoming the norm within more enterprises, IT
departments often need stop-gap, tactical solutions that layer atop existing apps,
phones, and platform component. Features include

 App wrapping for security


 Data encryption
 Client actions
 Reporting and statistics
Mobile app testing
Mobile applications are first tested within the development environment using emulators
and later subjected to field testing. Emulators provide an inexpensive way to test
applications on mobile phones to which developers may not have physical access. The
following are examples of tools used for testing application across the most
popular mobile operating systems.

 Google Android Emulator - an Android emulator that is patched to run on a


Windows PC as a standalone app, without having to download and install the
complete and complex Android SDK. It can be installed and Android compatible
apps can be tested on it.
 The official Android SDK Emulator - a mobile device emulator which mimics all of
the hardware and software features of a typical mobile device (without the calls).
 TestiPhone - a web browser-based simulator for quickly testing iPhone web
applications. This tool has been tested and works using Internet Explorer 7, Firefox
2 and Safari 3.
 iPhoney - gives a pixel-accurate web browsing environment and it is powered
by Safari. It can be used while developing web sites for the iPhone. It is not an
iPhone simulator but instead is designed for web developers who want to create 320
by 480 (or 480 by 320) websites for use with iPhone. iPhoney will only run on OS
X 10.4.7 or later.
 BlackBerry Simulator - There are a variety of official BlackBerry simulators
available to emulate the functionality of actual BlackBerry products and test how the
device software, screen, keyboard and trackwheel will work with application.
 Windows UI Automation - To test applications that use the Microsoft UI
Automation technology, it requires Windows Automation API 3.0. It is pre-installed
on Windows 7, Windows Server 2008 R2 and later versions of Windows. On other
operating systems, you can install using Windows Update or download it from
the Microsoft Web site.
 MobiOne Developer - a mobile Web integrated development environment (IDE)
for Windows that helps developers to code, test, debug, package and deploy
mobile Web applications to devices such as iPhone, BlackBerry, Android, and
the Palm Pre. MobiOne Developer was officially declared End of Life by the end of
2014.[citation needed]
Tools include

 eggPlant: A GUI-based automated test tool for mobile app across all operating
systems and devices.
 Ranorex: Test automation tools for mobile, web and desktop apps.
 Testdroid: Real mobile devices and test automation tools for testing mobile and web
apps.
Front-end vs. Back-end
● In the early days of the modern smartphone applications era, mobile applications went
through a similar evolution as first websites.

● At first, the applications and sites where wholly contained within themselves and acted as
little more than static advertisements for the brand, company, product, or service.

● However, as connectivity and network capabilities improved, the applications became


increasingly connected to sources of data and information that lived outside of the app itself,
and the apps became increasingly dynamic as they were able to update their UI and content
with data received over the network from queries to data sources.

● As a result, the mobile front-end applications increasingly rely on and integrated with back-
end services which provide data to be consumed through the mobile front-end.

● Such data can include, for example, product information for e-commerce apps or flight info
for travel and reservation apps.

● For a mobile game, the data may include new levels or challenges and scores or avatars from
other player
Why Developers Use a Cloud-backend?
For most of the applications, mobile developers are responsible for creating and managing the
back-end services for their application. The mobile developer may not be an expert or even
particularly skilled in spinning up and running a back-end infrastructure. In such a case,
developers may prefer to take advantage of a cloud services provider -- a backend-as-a-service
provider -- that handles all of the drudge work and heavy lifting of managing back-end
capabilities, so the developers can focus purely on the features and functionality they are
building in their app, without having to worry about scalability, security, and reliability.

How to Interact with the Backend Data?


▪ An example of a back-end service for a mobile front-end could be a database that contains
information used in the app

. ▪ To access the database directly, the mobile developer would have to know the network
location of the database, the protocol for accessing the database, the credentials for
authenticating and authorizing the data access, and the specific database commands needed to
extract the needed data.

▪ Alternatively, the developer can utilize a specialized API when interacting with the database;
the developer may only have to know the parameters needed in a method call to get or
updated the needed information.

▪ In some cases, the mobile developer may develop these APIs themselves or use the API
definition provided to them by the owner/operator of the back-end resource

▪ Typically, a REST API is used to interact with data sources on the cloud, such as a cloud
database.

▪ A GraphQL API is also another option for developers, as it makes easy to work with backend
data in a mobile application.

▪ GraphQL provides querying support through a single API endpoint, and a data schema that
can be used to build and easily extend data models that are used in the app

The Mobile Application Back-End :


▪ Regardless of what front-end platform or development methodology is being used,
▪ Delivering high-quality mobile applications that delight and retain users requires reliable back-
end services.
▪ Given the critical importance of back-end services for the success of the mobile application,
the developers have several important architectural decisions that they must consider.
▪ These decisions include which services should they build themselves and which third party
services should they leverage,
▪ And then should they run and maintain their own services or should they take advantage of
3rd party services

Essential :
● User Sign-up/Sign-in and Management
● Social login (Facebook sign-in, Twitter sign-in, etc.)
● Analytics and User Engagement
● Push Notifications
● Real Device Testing

Data Services
● Cloud Storage
● Real-time and Offline Data
● Application Logic/Cloud Functions

Machine Learning
● Conversational Bots
● Image and Video Recognition

The Activity Lifecycle :


▪ Once you have the basic structure of an Android application down, the next step is to
understand the intricacies behind constructing and destroying Activity objects.

▪ We already saw how onCreate() can be used to initialize an Activity, but this is only one aspect
of managing an activity’s lifecycle.
▪ We’ll learn how to minimize CPU, memory, and battery usage, handle phone call
interruptions, save user state, and switch between landscape and portrait orientations by
properly implementing an activity’s lifecycle.
▪ This is a very important aspect of Android app development, as a failure to do so will cause
your application to regularly crash (and that’s a very bad user experience).

The activity lifecycle An activity lifecycle consists of the following six


states:
1) Created: The activity has been created and is ready to be displayed.
2) Started: The activity is visible, but the user cannot interact with it yet. This state is typically
followed immediately by the resumed state.
3) Resumed: The activity is running in the foreground and the user can interact with it.
4) Paused: The activity has been interrupted by a phone call or dialog message (e.g., a low-
battery alert). This often leads immediately into the stopped state. The activity is usually still
visible while paused, but obscured by a dialog so the user cannot interact with it.
5) Stopped: The activity has been moved to the background and is no longer visible, but the
instance still exists in memory. An activity can be re-launched from this state without re-
creating it.
6) Destroyed: The activity has been released by the system and no longer exists. This will
happen automatically when the Android operating system deems it necessary .

Mobile Application Development Process :

Mobile application development process has to take into consideration the wide range of
mobile devices with different mobile operating systems or versions of them. Each mobile
operating system or OS version has particular features like hardware, security, screen sizes and
screen resolutions, connectivity models and speeds, and other capabilities. Development
process considers the above features to affect the behavior and performance of the mobile
applications.

The mobile application development process is preceded by:

✔ Strong demand – a critical mass of hardware devices can provide a sufficient demand of
mobile applications; this issue is critical to provide a significant return of investment;
✔ A solid foundation – there are some mobile applications, services and platforms as starting
point in future mobile application development;
✔ Mobile device management – it is used for service delivering and push security policies
instead of old containerized service delivering;
✔ Service-oriented architecture (SOA) – an abstracted service layer is used by mobile
application to access the business logic and data;
✔ Adequate security – it aims data encryption web portal gateways for mobile devices
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 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.

(1) 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.

(2) 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. For a deeper discussion on PWAs, read: What are
Progressive Web Apps and Are They Worth It?
Technology Used: Web apps are designed using HTML5, CSS, JavaScript, Ruby, and
similar programming languages used for web work.
(3) Hybrid Apps And then there are the 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 native APIs.
They’re developed using: Ionic, Objective C, Swift, HTML5, and others.

Advantages :
● Single time coding and deployment for various platforms;
● Native calls from native shell;
● Application availability in offline mode;
● Providing to a large number of users;
● Local processing is possible;
● Distribution through application store;
● Providing notification about updates

The cross-platform mobile application development:


The cross-platform mobile application development lifecycle is not very different from the
desktop development lifecycle, but it must consider the particular specifications of the mobile
devices as hardware and software features.
A version of mobile application development lifecycle is stated in and it has the following
stages:
1. Inception – represents the starting point in mobile application development; it contains the
idea regarding what the application will do refining in solid specifications for the next stages;
the success of the mobile application is assured whether the following considerations are
regarded.
● Competitive advantage – established by similar mobile applications already deployed and the
differences between these applications and application to be developed; -
● Infrastructure integration – aims the existing enterprise infrastructure being used to
integrate or to be extended by the future mobile application; -
● Value – states why the users are interested by the future application and how they will use it;
● Form/Mobility – how the future mobile application will work in a mobile form factor and
what is the added value bringing by the mobile technologies.

2. Design – defines the UX and turning the UX into the UI; user experience design aims the
general layout of the application, how the application works and so states forth; defining the
UX aims: -
the Interface Guidelines offered by the mobile operating systems providers have to take into
consideration; for example, the mobile platforms implement switching between the application
sections differently: tab bar at the bottom of the screen (iOS), tab bar at the top of the screen
(Android), Panorama view (Windows Phone 7); -
hardware features of the mobile device affect the UX; for example, iOS mobile devices have not
the Back button; therefore, the navigation is implemented in software; -
form factor affects the UX decisions; a mid-size form factor must be considered to display the
information; UI design is made on UX specifications adding themes, graphics and other
elements to personalize the mobile application. UI design has to be in accordance to the layout
of the mobile operating system, so a crossplatform mobile application look different on each
platform.

3. Development – represents the application building, using a cross-platform development


environment; it starts when the inception stage reached a maturity level;
4. Stabilization – is made by the Quality Assurance (QA) team getting beta versions of the
mobile application which is given to the potential users to get feedback; QA team informs
mobile developers for possible changes must be made in the mobile application; stabilization
follows the below stage pattern.
● Prototype – the mobile application has the core functionality or some parts are working; the
proof-ofconcept phase is not overcame; -
● Alpha – the mobile application has the core functionality implemented completely;
● Beta – the mobile application has a complete implementation; also, a light testing and bug
fixing were made;
● Release Candidate – the mobile application is a candidate to be deployed; all functionality is
implemented and tested;

5. Deployment – is made through different ecosystems depending on the platform which the
mobile application was design to run for; possible distribution channels are: -
● Application stores – are distribution channels owned by mobile operating providers; they are
effective for mobile application distribution and marketing with a small effort by mobile
developers;
● Enterprise deployment – aims internal distribution of the mobile applications within the
enterprise interfaces and services; these application are not public through application stores;
● Ad-Hoc deployment – is a limited deployment to a single or few devices in order to test the
mobile application functionality during development stage; it is made via a development
environment.

Design Time and Run Time Application:

Design Time : is the process of creating an application, designing an interface, setting the
properties, and writing the code.
This is analogous to what goes on behind the scenes of a puppet show. A writer writes the
script. A set designer paints the scenery and puts it in place. The puppeteer pulls the strings
that make the puppets move. The actors read the lines from the script and speak for the
puppets. All of this is hidden from the audience and the show doesn't start until the curtain

Run Time : starts when you click the button to Start with or without Debugging.
This is analogous to what the audience sees when the curtain goes up and the show starts. The
audience sees only the scenery and the puppets performing on the stage. They do not see the
strings that the puppeteer pulls. They only see the action of the puppets and hear the voices
that have been prepared by the script that the actors speak for the puppets.

Name: Ashish Kumar Maurya


MCA 6th sem

You might also like