UNIT1
UNIT1
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. One critical difference, however, is that mobile apps are often
written specifically to take advantage of the unique features of a particular mobile device. 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.
Today, the two most prominent mobile platforms are iOS from Apple and Android from Google.
Phones and tablets from Apple come preloaded with essential applications, including a full web
browser and the Apple App Store. Android devices also come preloaded with similar apps and
you can install more using the Google Play Store.
In the early years of mobile apps, the only way to ensure an app could perform optimally on any
device was to develop the app natively. This meant that new code had to be written specifically
for each device's specific processor. Today, the majority of mobile applications developed are
device-agnostic.
In the past, if an app needed to be cross-platform and run on multiple operating systems (OSes),
there was little, if any, code that could be reused from the initial development project.
Essentially, each device required its own mobile app development project with its own code
base. Modern cross-platform tools use common languages such as C# and JavaScript to share
code across projects; more importantly, they integrate well with application lifecycle
management tools, such as Jenkins. This enables developers to use a single codebase for Apple
iOS, Google Android and progressive web apps (PWAs). PWAs are built to take advantage of
native mobile device features, without requiring the end user to visit an app store, make a
purchase and download software locally. Instead, a PWA can be located with a search engine
query and accessed immediately through a browser, thereby eliminating the need for e-
commerce merchants to develop native apps for multiple mobile OSes.
Just like YouTube videos, PWA content is downloaded progressively, which provides the end
user with a better user experience than a traditional website that uses responsive design.
Progressive web apps may also be referred to as instant mobile apps.
Before developing an app, you need to determine which type you'll be creating. Here's a
breakdown of several types of mobile app development technologies with information about
each.
An app model consists of three sub-models: the data model, the process model to
describe the app behavior, and the graphical user interface (GUI) model.
An app model consists of three sub-models: the data model, the process model
to describe the app behavior, and the graphical user interface (GUI) model.
In the following, we focus on the main language features.
The data model contains the typical elements of object-oriented data mod-
eling like classes, attributes, aggregations, associations, etc. It is not only used
to generate the underlying data access objects (DAOs) but also determines the
design of the user interface that is concerned with data input and output.
The GUI model defines the graphical user interface of an app. It contains
pages, style settings, and menus. The page type indicates the purpose of the
page (e.g. to select a processor or to edit and view data). Thus, app modelers
describe the required user interface just by selecting a page type (e.g., EditPage
or ViewPage) and the code generator deduces the detailed structure of the in-
terface (e.g. labels, edit and text fields, check boxes, etc.) by consulting the data
model.
The process model defines the behavior of an app. This model part is struc-
tured in processes, including various types of sequentially performed tasks. A
number of tasks are pre-defined such as tasks to create, read, update and delete
data objects. The process model may refer to the data types of the data model
and invoke pages of the GUI model; hence, it uses the other two model parts.
Deliver a world class mobile experience to end users involve different App development models.
There are 5 App Development Models exist:
Most of the apps for navigation and travel use the GPS to localize a mobile
device. For example, a public transport app can dynamically list the nearest
bus stop from which a bus will leave. Such a context-aware app uses the GPS
position and the time of the request for calculating the next reachable connection
and departure point. Indoor navigation is more challenging, because GPS is
usually not available inside a building. Hence, we developed a prototype app (cf.
screen shots in Figure 6) that combines different sensors (Barometer, Compass,
WLAN Access Points, Camera & QR-Codes) to get a more accurate positioning
in buildings. Additionally, the indoor navigation app provides different methods
of sensor processing (trilateration, distance comparison, field intensity, weighted
average) showing advantages/disadvantages in accordance with the building-
specific installation of access points.
Another application of combined sensor information is related to augmented
reality (AR): AR uses the built-in camera to recognize objects and to augment
the live view with different types of virtual objects. This is usually very processor-
intensive and mobile devices often have limited processor capacity. Hence, the
recognition and augmentation of many objects being close together is not feasi-
ble since the device cannot compare all trained patterns with the current view
captured from the camera in an acceptable time. In order to circumvent this
problem, the number of patterns can be reduced through an accurate position-
ing of the device. For example, an AR application is used to augment exhibits in
a museum. The accurate positioning of the device inside the building (floor and
room) can reduce the amount of data that must be processed (location-based
filtering).
This way of mobility-related interaction with the environment is not yet fully
capable in the DSML. It is intended to use the realized prototypes for extending
the DSML as well as the code generators in an agile way.
To analyze the quality of app models, syntax checks such as smells or translations
to formal models are possible approaches. The second is especially interesting to
verify semantical properties. Moreover, an app model can be used to generate.
skeleton code for test cases, not necessarily for the generated application code
but for separately implemented, i.e., non-generated code.
Smells represent modeling knowledge being condensed from developer expe-
riences; they point to model parts that are suspicious w.r.t. quality. This means
that modelers should have a look at smelling model parts and should decide
which have to be improved. Model smells may produce code smells, i.e. gen-
erated code parts do not have high quality. A model smell in an app model
may point to, e.g., processes with too many tasks leading to loosely structured
services.
The smartphone sector has seen a tremendous in the past years. With companies
launching affordable phones and having a wide distribution network, they have been able to
penetrate the markets exponentially and reach every sector of the economy.
If mobiles are the engines, apps are its fuel. In probable circumstances, you must be reading this
article through an app!
Now, developing an app sure costs money and resources. Naturally, anyone who
develops an app will want to have a source of revenue from the same. With advancements and
innovations, a bunch of possibilities have opened up to make this a reality.
Developing an app yourself and facing the dilemma of which business model to apply?
Let us analyse all the available options of Business Models for Mobile Application, one after the
other, to make the right choice.
Freemium models
More than 7 billion people populate our world. Naturally, more people are inclined towards
things that are free than what is paid.
The freemium model allows the developers to get a massive user base because it’s free for the
user.
For the revenue, it offers the option for users to enhance their experience through purchases and
subscriptions within the app, also called in-app purchases.
Do note that only around 2% of the users will get converted in the best case, but the other 98%
help you reach the potential audience. The reach makes the model very powerful and is widely
popular for games and other mobile applications
Advertisements
Digital advertisements have become widely prevalent and easy to integrate. Several platforms
like Google Ads allow app developers to run ads in their app’s interface and earn money out of
it.
It is a great business model, and developers need not demand money from the users, while they
can generate decent revenues.
Although, earnings per user is quite minimal unless too many ads are pushed. Doing that
hampers the user experience and also drives them away. Hence, the success of this model relies
on a wide user base.
Explaining it in simple words, the users will pay a certain amount of money on a monthly or
annual basis, and the users can access the app properly,i.e, without being disturbed by ads.
This model is widely popular for video-streaming, music, and e-book related applications. You
can also adopt a free trial period or keep some of the content free for everyone to lure more
customers.
Sponsorships
Start-ups these days are in the continual hunt to attract new customers. It has led them to
adopt varied marketing techniques, sponsorships being one of those.
They pay a certain sum of money to collaborate with the app to initiate or integrate their
campaign in their app. For this, your app should have a large user base or a great reach in a
niche-specific group.
Example: Zomato displaying the restaurants it has partnered with on top of its application to
incite more orders from these restaurants.
Affiliate Marketing
Affiliate Marketing is a simple business model. Most e-commerce apps like Amazon and
Flipkart offer affiliate memberships for their platforms.
If a sale is made through the affiliate member’s link on the e-commerce website, the
member receives a certain percentage as commission. It allows the app developers to earn decent
money without hampering the user experience with ads or compel them to pay.
Nowadays, affiliate marketing has established its existence in several other types of businesses
apart from e-commerce. This model can be easily applied by reviewers or apps that can influence
decisions.
E-commerce applications
Selling on the internet has very quickly become a thing. One can order anything and
everything from books, mobiles to even food and medicine online.
Thus, this opens us a wide opportunity to develop a business model around the same.
You can either choose to sell your products or allow other sellers to list their products on your
platform.
If you opt for the first option, there will profit margins for the products you sell. For the
latter, you charge a certain percentage of commission from the seller.
This model has already proved its mettle, making Jeff Bezos the richest man on Earth for
a considerable time.
Paid Apps
Both the well-known application stores in existence, the Google Play Store and App
Store by Apple, allow app developers to list their apps on their platforms either for free or by
paying a certain amount of money.
If you choose to make your app a paid one, you will earn money every time someone
installs the app. Please note that both the App Store and Play Store charge 15% as commissions
for all the sales made through their platforms for the first 1 million dollars each year.
If the revenues are more than a million dollars, Play Store charges 30% for everything
beyond the million, while Apple shall levy 30% on the whole amount.
Commissioned Apps
It is again a great business model available in our realms. Businesses need customers to
keep thriving. Customers need assistance from various businesses for a bunch of their daily
needs.
If you can act as an intermediary between the two parties through an app, both of them
wouldn’t mind paying some extra money as commissions for the convenience your app provides.
Due to this, this model has gained popularity, and around 26% of developers are building
apps this way, earning the lion’s share of 56% from the total revenue.
With the advent of data science and data analytics, data has become a more prized
possession than diamond and gold. Data can be used in several ways by organisations to generate
results.
A simple example would be schools selling their students’ data, like their phone numbers
and email addresses, to coaching institutes. The coaching institutes then use the data to know
about the interests of the students and persuade them to attend their classes.
People have become too conscious of sharing their data, which is not wrong. Data is
sensitive information, and this business model should be avoided if possible and only be used as
a last resort.
It may sound absurd, but it is a wide practice done on a large scale by app developers.
These types of apps are mostly developed for non-profit motives, and the intention goes beyond
money.
WhatsApp can be a prime example of this. For so many years, it has been running
without a revenue model. Recently, they decided to sell some of the user’s data. It received a lot
of resentments, and the move has been postponed for a while.
Some top mobile app development company also use this practice with plans to monetise
their apps in the future. The central idea is to make the user so used to the app that they won’t
mind paying some money in the future to use it.
This method is again not for everyone. Consider this only if you have the backing of
revenues from some other business or have a large sum of capital money from angel investors.
Otherwise, we will recommend you choose a proper business model.
Application infrastructure components may include things like servers, data storage,
networking, application monitoring, and logging capabilities, and application security services.
The Central Infrastructure and Facilities Management System (the "Central System")
manages all data entered by users connected directly via wired networks or via mobile apps. The
Central System also automates computation tasks on data collected in the field using the mobile
apps.
Applications written with MIDP are normally designed for cell phones and PDAs. They
are known as midlets. Some commonly-used MIDP development tools include the Sun Java
Wireless Toolkit and the Netbeans Mobility Pack.
In theory, applications written using MIDP and CLDC should have the ability to run on
different Java ME-capable devices without any changes in their code, which is consistent with
Java’s "write once, run anywhere" mantra. In practice, however, varying hardware specifications
among devices, such as graphical display sizes/resolutions and user interfaces, force developers
to make additional customizations.
MIDP 3.0, released in 2009, supports the following features (not an exhaustive list):
Mobile Profiles allow you to target specific mobile devices and display content differently to
those devices. For example, you could target all devices that have a resolution width greater than
300 pixels to display one version of the website. A different version could be shown to devices
that have a smaller resolution. Or you could use them to specifically target iPhones and Android
devices.
Viewing Mobile Profiles
You can view Mobile Profiles by going to Site Manager -> Mobile -> Mobile Profiles. From this
view you can add, edit and delete profiles.
To delete one or more profiles simply check the checkbox next to each profile that you want to
delete and click the Delete link at the top of the table.
Fields
Enabled
Whether or not this profile is enabled. If it is not enabled it will not be used when detecting
a mobile device.
Profile Match
Select whether All or Any of the profile conditions must be matched in order for the
mobile profile to be used.
Profile Conditions
First select a mobile device attribute and then you can set the value that must be matched.
Click the "Add Another Condition" link at the bottom to add another condition. You can reorder
the conditions if desired. When the profile is being tested the conditions will be tested in the
order that they are created.
Editing a Mobile Profile
Editing a Mobile Profile is very similar to adding one. From the profile list page click the
"edit" link next to the profile that you want to edit.
Once you're done making your changes click the "Save Mobile Profile" button to save
and return to the profile list page. Or click the "Save & Continue Editing" button to save and stay
on the edit page.
Fields
Enabled
Whether or not this profile is enabled. If it is not enabled it will not be used when detecting
a mobile device.
Profile Match
Select whether All or Any of the profile conditions must be matched in order for the
mobile profile to be used.
Profile Conditions
First select a mobile device attribute and then you can set the value that must be matched.
Click the "Add Another Condition" link at the bottom to add another condition. You can reorder
the conditions if desired. When the profile is being tested the conditions will be tested in the
order that they are created.
Click the checkbox next to the profiles that you want to delete. You can delete more than one at a
time. After you check at least one checkbox the Delete link at the top of the table will become
active. Click that link to delete. You will be prompted to confirm that you want to delete the
selected profiles.
Deleting from the Edit page
You can also delete an individual profile while on the Edit Mobile Profile page. Simply
click the Delete link in the upper right. You will be prompted to confirm that you want to delete
the profile.
·Basic4Android-www.basic4ppc.com
·CoronaSDK-www.coronalabs.com
·DHTMLXTouch-www.dhtmlx.com
·DojoMobile-www.dojotoolkit.org
·iUI-www.code.google.com
·jQueryMobile-www.jquerymobile.com
·kendoUI-www.kendoui.com
·MonoforAndroid-www.xamarin.com
Companies with an established mobile app and those looking to create a new
mobile phone app need in-depth study, strategy creation, comprehensive planning,
and analyzing the current mobile environment to flourish in an exceedingly
aggressive digital market.
Native apps are expensive to establish and sustain, even though they provide
an unrivalled encounter in terms of looks and performance. With native apps, the
highest customer engagement is challenging due to the variety of channels and
devices. The answer is to use mobile app development frameworks to create a web,
hybrid, or cross-platform mobile app for companies at an expense.
Companies have demonstrated that mobile applications are the best way to grow their customer
base. There’s never been a lack of original app concepts. Everything functioned to the benefit of
application development businesses.
You don’t need to know any complicated computer languages to create an app. There are various
app development frameworks for iOS and Android. All you require is a solid grasp of web-based
programming languages Such as HTML, CSS, or JavaScript.
A mobile app framework is a software creation platform that includes tools and software,
compilers, debugging tools, and programming interfaces, among other things. Thus, a developer
creates the application’s source code and the framework and uses various elements to generate
the application for the different mobile devices.
Modern-day mobile app development frameworks provide several built-in benefits, like
speed, effectiveness, and a bug-free atmosphere. The framework uses pre-built elements,
including compilers, debugging tools, and toolkit, to display the application on the target device
using the company’s code.
Using the expertise of a reputable mobile app development company may help the firm
create mobile applications which are quick, reactive, and provide excellent user interactions. The
use of mobile app development platforms speeds up and simplifies the app creation procedure.
Android, iOS, as well as Windows are just a few of the digital devices available. Mobile
applications come in a variety of shapes and diverse sizes. We’re not speaking about specific app
areas like purchasing or games. However, in terms of how applications work on a smartphone,
mobile apps may be divided into three categories.
1. Native Apps
They are designed for specific operating systems such as Android, iOS, and Windows. Apps
make use of device features such as RAM, camera, GPS, and so on.
2. Web Apps
A Web app is software that is kept in a distant location and distributed via the Web using a
browser interface. Emails, online shopping sales, auction sites, weblogs, instant messaging apps,
and other web apps are popular.
3. Hybrid Apps
Hybrid apps are applications that are launched on a smartphone in the same way that every other
application is. What sets them apart is that hybrids combine features from native apps and with
components from web apps.
When financial constraints and a large number of customers are the primary goals, an
application development firm may choose hybrid or cross-platform application development
technologies.
Below are some Modern mobile app development frameworks. These can be very helpful for
both android and iOS users.
1. React Native
The major appeal of React Native is because it enables quicker development and
implementation. Reusable elements, interaction with third-party extensions, plus
component-based GUI creation for front-end apps are further important characteristics of
React Native.
Features of React Native –
o Exceptional performance
o Components that can be reused
o Compatibility with third-party extensions
2. Flutter
Flutter is an open and free framework from Google that allows you to create native
Android and iOS applications with a simple codebase. It’s a ground-breaking SDK for
cross-platform application development, which distinguishes it because it takes a novel
way of creating native-like apps. It’s an unrivaled and dependable smartphone UI
framework for swiftly developing attractive apps by accelerating development.
Features of Flutter –
3. Xamarin
Microsoft has acquired Xamarin. Because developing an app is so much faster these
days, you might assume that quicker development means sacrificing quality and
construction. However, Xamarin-based apps deliver flawless native functionality about
quality and efficiency. As a result, its connection with Microsoft Visual Studio is a plus
in terms of app development management and productivity.
An intermediate layer in Xamarin controls the connection between the core system code
and standard code. Utilizing tools, frameworks, and computer languages backed by an
engaged community, programmers, may cultivate an environment with APIs, backends,
components, and more.
Features of Xamarin –
o Rapid Advancement
o Appearance and touch of a native app
o Compatibility with a variety of devices
4. Swiftic
Swiftic is a do-it-yourself mobile app platform that seeks to make it easy for anybody to
build unique applications for their company. It simplifies app development by allowing
programmers to integrate current material from the internet rather than starting fresh.
Push alerts, social media platform feeds, app advertising, and other technological
advances are all incorporated within the framework. It is among the simplest mobile app
development solutions since it allows you to design, launch, and expand your app all
from a unified control panel.
Features of Swiftic-
5. Ionic
Ionic is an explicit framework for crafting Progressive Web Apps (PWAs), hybrid, and
cross-platform mobile applications. Ionic is an accessible framework that uses Apache
Cordova (PhoneGap) plus Angular to enable programmers to create Android and iOS
applications that seamlessly operate together.
The framework aids developers in creating solid and feature-rich native apps. The most
prominent feature of Ionic would be that it lets programmers employ various UI
components in the application framework, including filtration, inputs, views, easy
navigation, and actions sheets.
Features of Ionic –
6. Apache Cordova
Features of PhoneGap –
7. jQuery Mobile
jQuery makes use of the HTML5-based foundation and the Theme Roller to provide
highly configurable themes for online and mobile applications. jQuery Mobile is
available in two varieties: a customized framework as well as a stable version.
Features of jQuery –
o It works well with PhoneGap and other mobile app development frameworks.
o The size is limited.
o PI compatibility is both comprehensive and straightforward.
Tools:
If it is good, you can reap the benefits in future for long and if it turns out bad, then you have to
make a new investment strategy, with all the fresh cost involved.
Across the board are many challenges that put the mobile app at risk.
This is because, once you choose the technology, it will ultimately decide the quality and
capabilities of your mobile app. And changing the technology in future means complete
reworking, which is expensive and time-consuming.
Most of the time, mainly startups often ignore the scalability factor in mobile apps. Their focus is
on at-the-moment solutions, which is the wrong way of selecting a mobile application
development tool.
Before selecting a mobile app development tool, carefully analyze the features and requirement
of your application and then pick up the best tool that helps you develop functions and features
to meet those requirements.
Besides, you can also take the help of a mobile app development company that could guide you
in making the right choice.
Here, we have created a list of 5 best Mobile Application Development Tools, which you can
choose based on your project requirement.
Top 5 Mobile App Development Tools
Given that application development tools play an important role in the fate of a mobile app, it is
advisable to choose the tool after a rigorous research process. To ease up this process, we have
created a list of Mobile app development tools, highlighting their key features and strengths.
1. Xamarin
There is nothing better than the Xamarin to build native apps. Since it is a Microsoft product,
you will always be safe against unexpected termination of service, critical security threats, and
technology updates.
More than 1.4 million developers use Xamarin, means talent scarcity will not be a crucial
challenge for you when it comes to building your own mobile app development team.
Mono framework that exposes 100% of the native APIs to allow full use of device
capabilities
Platform-specific IntelliSense makes coding easier
Application indexing and deep linking
Easy cycle of build, test, deploy, and repeat using C++ programming language
Possible to use enterprise or social authentication, push notifications, offline sync features
Ability to create high-performance shared libraries
2. Sencha
Sencha is for rapid mobile app development. If you want to create a native app that is compatible
with the latest versions of iOS, Android, and Blackberry, Sencha should be your ideal choice. It
is one of the most suitable app development tools for building enterprise applications.
It is an MVC-based JavaScript framework which enables the developers to use it through a touch
of fingertips, which also helps in increasing the responsiveness of the application.
Mobile app developers can code in HTML5 and then can use it for Android or iOS applications.
Benefits:
More than 115 fully supported components that can be integrated with a wide range of
frameworks such as Angular, FOSS, and more
Commercially supported UI widgets for menus, toolbars, and lists
End-to-end testing solution for Ext JS
Reduce dependencies on multiple libraries and versions
Single code paradigm across all components
Good community strength
3. Appcelerator
Appcelerator is used by mobile app development companies to build both native cross-platform
applications.
This tool is the developers’ favorite because it requires fewer lines of code to develop a mobile
application. It has platform-specific features, APIs, and UI.
Appcelerator has an open mobile marketplace where developers and users sell or share
templates, extensions, and modules.
Benefits:
4. Ionic
Since Ionic has a complete open-source SDK, it is widely used to build hybrid applications using
CSS, HTML5, and SASS like technologies. By building a mobile application on Ionic, app
developers can directly send the release update to the users.
Automating app delivery is much easier with Ionic and does not require any special talent. With
automation capabilities, developers can easily deploy features and fixes to increase the speed of
mobile app development.
Benefits:
Deliver app updates, bug fixes, and content changes without requiring MDM approval or
waiting for app store approval
Ability to automate workflow, from native binary builds to QA
Native app binaries can be created in the cloud with Ionic package
Central, shared dashboard with live activity feeds
Industry-specific defaults and pre-built workflows to automate development tasks
5. Framework 7
Framework 7 is used to create native iPhone applications. Although, recently they have started
providing support for Android apps.
This open source, mobile HTML framework is easy to understand and build native apps faster.
Since it is iOS focused, it is not compatible with all the platforms.
Benefits:
It works in simple HTML layout attached with CSS framework and JS files
iOS specific UI elements visualization, animations, and touch interaction
A wide range of ready-to-use UI elements and widgets such as list views, media lists,
modals, popups, form elements, and more
Support iOS swipe back action from the left border of the screen
Ability to introduce custom styles to your applications
Enhanced video ad experience by partnering with vi (Video Intelligence)
Choosing mobile app development tools from a plethora of options available in the market is
tough, only when you are not fully aware of your requirements.
So, before you venture out to seek the best mobile application development tool for your project,
create a set of your requirements and compare it with the features of the tools. Besides, you can
always consult a reliable mobile app development company to better understand the tool.