Nothing Special   »   [go: up one dir, main page]

3 - Mobile Architecture and Mobile Applications

Download as pdf or txt
Download as pdf or txt
You are on page 1of 31

INTE 34253 - MOBILE

APPLICATION
DEVELOPMENT
MOBILE ARCHITECTURE AND MOBILE APPLICATIONS
OVERVIEW

¡ Mobile Operating Systems

¡ Mobile Application Development Platforms & IDEs

¡ Mobile Architecture

¡ Mobile Application Types

¡ Mobile Application Testing

¡ Mobile App Publishing

¡ Mobile Application Monetization


MOBILE OPERATING SYSTEMS
MOBILE OPERATING SYSTEMS

¡ Mobile operating systems are those that are designed specifically to power smartphones, tablets, and wearables, the
mobile devices we take with us wherever we go.

¡ A mobile OS is a light weight one and also manages mobile multimedia functions, mobile and internet connectivity,
the touch screen, Bluetooth connectivity, GPS navigation, cameras, speech recognition, and more in a mobile
device.

¡ The top popular mobile operating systems are Android and iOS, but others include BlackBerry OS, webOS, and
watchOS.

¡ Most operating systems are not interchangeable among devices. If you have an Apple iOS phone, you can't load the
Android OS on it and vice versa.
MOBILE OPERATING SYSTEMS
¡ A mobile operating system
The piece of software on top of which other programs can run on mobile devices.

¡ Mobile platform
Collectively refers to the operating system with its binding to the mobile device’s hardware such as chipset &
microprocessor used by the device.

¡ Mobile Framework
Application development environment which provides tools and interface to communicate with the mobile
platform to develop mobile applications.
MOBILE OPERATING SYSTEMS
Some mobile operating systems are proprietary while some are FOSS.
¡ iOS
Proprietary used by Apple iPhones/ iPad etc.
¡ BlackBerry
Proprietary used by RIM (Research In Motion)
¡ Windows Phone
Proprietary used in Windows Phones, Windows Pocket PCs and in some phones of other vendors like Nokia, Dell,
HP etc.
¡ Android
Free & Open Source used on various devices powered by Google.
MOBILE APPLICATION DEVELOPMENT PLATFORMS
& IDES
MOBILE APPLICATION DEVELOPMENT PLATFORMS
& IDES
¡ Windows Phone
¡ Windows Phone SDK is used as the application development tools.

¡ Applications can be developed via Visual Studio using Microsoft .NET languages.

¡ Emulator support is provided.

¡ BlackBerry

Two options for developing native applications


¡ C/C++ native SDK

To develop applications for tablets using C/C++


¡ C++/ Qt Cascades framework

To develop applications for smartphones


MOBILE APPLICATION DEVELOPMENT PLATFORMS
& IDES
iOS

¡ iOS Software Development


Kit used as the application
development tool.

¡ Xcode is the IDE that can be


used to develop iOS
applications and it offers
compilers for C,C++,
Objective-C and Swift.

¡ Swift is the more preferred


programming language

¡ Swift UI is introduces in 2019


and is a new framework for
building UIs at rapid pace
MOBILE APPLICATION DEVELOPMENT PLATFORMS
& IDES

¡ Android
¡ Android SDK will be used
to develop applications
using Java based
environment.

¡ Android Studio is the


most popular IDE to use
with Android application
development.
MOBILE ARCHITECTURE
¡ Mobile apps are mostly distributed network based systems except when they are used as a stand alone application.

¡ Communication is based on message parsing or variations of message parsing in a network based system.

¡ Therefore most mobile computing architectures are based on common network-based software architectures such as:
¡ Fully Centralized architecture

¡ Client-Server architecture

¡ N-tier architecture

¡ Variations of N-tier architecture

¡ Peer-to-peer architecture
MOBILE APPICATION TYPES
Based on nature of executing we can categorize mobile applications into 3 categories.
¡ Native Applications

¡ Mobile Web Sites


¡ Hybrid Applications
MOBILE APPICATION TYPES

Native Applications

¡ Applications run totally on the mobile device and there is no need to use network resources unless the app performs
any synchronization with the server.

¡ Specific to the mobile OS

¡ Written using related SDKs and then compiled into an executable format & bundled with all the resources required.

¡ Benefit of ability to get the full use of device & OS features. (GPS, sensors etc.)

¡ Not device independent.


MOBILE APPICATION TYPES
Native Applications
MOBILE APPICATION TYPES
Mobile Web Sites

¡ Applications act as an interface to connect with central servers to obtain or to send data. Connectivity at all times is
required in most of the cases.

¡ Runs on a mobile web browser.

¡ Can use standard web development techniques.

¡ Platform independent.

¡ Easy to update since content can be centrally controlled.

¡ Limited use of resources provided by device & OS.

¡ There is no need of application stores.


MOBILE APPICATION TYPES
Mobile Web Sites
MOBILE APPICATION TYPES

Hybrid Applications

¡ Applications occasionally connect with the server. Even when there is no connectivity some activities can be
performed.

¡ Combines the features of native & web applications.

¡ Can use web technologies together with some features provided from the device.

¡ Require to use additional tools like PhoneGap, Cordova to convert mobile web in to native format.

¡ Cross Platform accessibility


MOBILE APPICATION TYPES
Hybrid Applications
MOBILE APPLICATION TESTING
MOBILE APPLICATION TESTING

Recent studies have showed that

¡ Almost a quarter of users only use a mobile app once

¡ A shocking 95% abandon an app within the first month.

¡ Some of the reasons that users abandon an app are due to content and engagement.

¡ The biggest non-content reasons for abandonment are application crashes and security concerns.
MOBILE APPLICATION TESTING
¡ Following types of testing can be performed in order to test your mobile application (You can follow the usual testing
techniques as well).
¡ Unit testing

Tests individual parts of your code for correctness, usually using an automated test suite.

¡ UI testing

Takes a flow that the user might follow and ensures it produces the right output. It can be done on real devices or on
emulators and simulators.

¡ Fuzz testing

Test the app with random stream of events into your app and see what happens (i.e. randomly presses the screen)
MOBILE APPLICATION TESTING
¡ Performance testing
Gather performance metrics while running the UI and fuzz tests to ensure that your application does not take up significant
resources on the device

¡ End-to-end testing (Integration Testing)


After you test your mobile app in isolation, you test it with a mobile backend.

¡ Pre-production testing
test your app on as large a community of devices and OS combinations as you possibly can before publishing in to the market.

¡ Post-production testing
Test to ensure that the mobile app and the backend are running harmoniously after launching the app into endusers.
MOBILE APPLICATION PUBLISHING
CI/CD

¡ Continious Integrations Continoues Delivery / Continous Deployements


¡ Circle CI

¡ Appcenter

¡ Xcode Cloud

¡ Atlassian Bamboo

¡ Codemagic
MOBILE APPLICATION PUBLISHING

¡ Publishing is the general process that makes your mobile applications available to users.

¡ When you publish an mobile application you perform two main tasks:
¡ Prepare the application for release.

¡ During the preparation step you build a release version of your application, which users can download and install on
their mobile devices.

¡ Release the application to users.

¡ During the release step you publicize, sell, and distribute the release version of your application to users

¡ You will have to pay the relevant fee for app publishing to respective application stores.
MOBILE APPLICATION MONETIZATION

¡ The way of Mobile app developers generate revenue out of the apps they have built & published.

¡ There are various forms of mobile app monetization.


¡ In-App Advertising

¡ In-App Purchases

¡ Subscriptions

¡ Paid Apps

¡ Freemium
MOBILE APPLICATION MONETIZATION

In-App Advertising

¡ The most popular way among developers since it allows you to gain users quickly.

¡ Developers are paid each time their users interact with ads in their app.

¡ Adds will be displayed in an allocated area of the app this will be effective if moderate and targeted advertising is
used.

¡ Users can get annoyed of ads, which may lead to close the app.

¡ Can comprise users app experience by claiming a portion of the already limited screen size.

¡ Will not suitable for utility apps that are designed to help users to perform important functions.
MOBILE APPLICATION MONETIZATION

In-App Purchasing

¡ In-app purchases are premium items or features that normally form the bulk of the in-app economy.

¡ When integrated well, they are typically an integral part of game or app design, with prompts to purchase in-app
items or services displayed at times users are likely to convert.

¡ Usually physical products that are used in the real world exchanged for virtual goods.

¡ This makes comfortable profits with the lowest amount of risk.

¡ App stores usually take a cut of the revenue.

¡ Can lead children to make accidental in-app purchases.


MOBILE APPLICATION MONETIZATION

Subscriptions

¡ For apps that host continuously updating content and different features, offering a subscription can provide a reliable
revenue channel.

¡ Subscriptions allow members to access premium content and features while building a loyal following.

¡ usually users get to trial version of the app, but need to sign up for a subscription to bypass certain content limits
and restrictions.

¡ Apps can also provide different subscription tiers, giving users greater flexibility and capturing a broader range of
potential paying users.

¡ This method does not easily translate to all verticals


MOBILE APPLICATION MONETIZATION
Paid Apps

¡ Some apps may opt to offer access to the entire experience for a one-time payment at the start.

¡ As opposed to in-app purchases or subscriptions, one-time payments are ideal for apps whose content is not
refreshed as frequently or who provide a very specific or high-quality service which users would be willing to pay
for.

¡ Earn revenue upfront with every new download.

¡ People who have paid for an app are more likely to turn into engaged users.

¡ The app does not usually have any in-app advertising thus allowing it to have a cleaner interface.

¡ Selling an app is hard because app stores are so overcrowded and App stores take a cut of the revenue from paid
apps.
MOBILE APPLICATION MONETIZATION

Freemium

¡ Allows to tease users with a stripped down version of the app until users are hooked enough to happily buy
additional features.

¡ People who “try before they buy” are more likely to become engaged and loyal users later on.

¡ Makes it easy to build up a large user base and showcases your app so people get hooked.

¡ If you offer too few features for free, app churn will be high and if you offer too many features for free, upgrade
won’t have much incremental value.

You might also like