3 - Mobile Architecture and Mobile Applications
3 - Mobile Architecture and Mobile Applications
3 - Mobile Architecture and Mobile Applications
APPLICATION
DEVELOPMENT
MOBILE ARCHITECTURE AND MOBILE APPLICATIONS
OVERVIEW
¡ Mobile Architecture
¡ 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.
¡ BlackBerry
¡ Android
¡ Android SDK will be used
to develop applications
using Java based
environment.
¡ 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
¡ Peer-to-peer architecture
MOBILE APPICATION TYPES
Based on nature of executing we can categorize mobile applications into 3 categories.
¡ Native Applications
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.
¡ 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.)
¡ 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.
¡ Platform independent.
Hybrid Applications
¡ Applications occasionally connect with the server. Even when there is no connectivity some activities can be
performed.
¡ 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.
¡ 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
¡ 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
¡ 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.
¡ 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.
¡ 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.
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.
¡ 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.
¡ 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.