Mobile App Guide
Mobile App Guide
13.1 Introduction
These are the key learning outcomes, which make up workplace function:
o Identify mobile application concepts
o Identify mobile application development environment
o Identify application design issues
o Develop mobile application
o Test the developed mobile application
o Publish and commercialize the developed application
258
o Types of Mobile applications: Hybrid, Native
o Mobile application development approaches: Native, Hybrid Native, Hybrid web,
Progressive web
o Reasons for mobile application
2. Hybrid apps for all platforms altogether with Xamarin, React Native, Ionic, and Angular
Mobile Sencha Touch etc.
source/whitepapers/choose-right-approach-mobile-app-
s
ea
developmentbb581d10116543e79a9febdb187fd0a3.pdf?sfvrsn=0
13.3.2.3 Self-Assessment
i. Give 5 reasons to build successful mobile applications?
ii. Define mobile application.
iii. Explain types of mobile application?
iv. Language, which is supported by Android for application development?
A. PHP
B. VB.NET
C. Java
D. C++
v. Each application can have zero or more activities. True or False? Justify in short.
vi. Android is based on Linux for the following reason.
259
A. Portability
B. Security
C. Networking
D. All of these
vii. What was the main reason for replacing the Java VM with the Dalvik VM when the
project began?
A. Java VM ran too slow
B. Java VM was too complicated to configure
C. Java virtual machine was not free
D. There was not enough memory capability
viii. From a phone manufacturer's point of view, what makes Android so great?
A. Aside from some specific drivers, it provides everything to make a phone work
B. It allows them to compete with Apple's iPhone
C. It makes the hardware work better
D. It allows users to create apps, generating revenue for the companies
11.3.2.5 References
om
• https://mashable.com/article/build-mobile-apps/
t.c
ve
• http://www.matchboard.com.au/MatchBoard/Forms/Article/App%20Appeal%20%2010%
yt
20Great%20Reasons%20to%20build%20a%20Mobile%20App.aspx
s
ea
• https://www.telerik.com/docs/default-source/whitepapers/choose-right-approach-mobile-
app-developmentbb581d10116543e79a9febdb187fd0a3.pdf?sfvrsn=0
• Android Application Development All-in-One For Dummies authored by Barry A. Burd
published by John Wiley & Sons Inc, 2015
• Beginning Android Programming With Android Studio (4th edition) authored by Jerome
DiMarzio published by Wrox;, 2016
260
o Mobile development frameworks; Native script, Flutter, React Native
o Mobile application development tools: Integrated Development Environment (IDE),
Graphic User Interface (GUI), Emulator, Android SDK
The Linux kernel is a free and open-source, monolithic, Unix-like operating system kernel.
The Linux family of operating systems is based on this kernel and deployed on both
traditional computer systems.
Dalvik is a discontinued process virtual machine in Google's Android operating system that
executes applications written for Android.
om
A Software Development Kit (SDK) is typically a set of software development tools that
t.c
allows the creation of applications for a certain software package, software framework,
ve
yt
hardware platform, computer system, video game console, operating system, or similar
s
ea
development platform.
Native script this has been ranked as the top frameworks for the development of the hybrid
apps. Telerik, a Bulgaria based software company, which supports this framework and the
creator is Progress. The apps using the Native Scripts utilize the same APIs similar to using
Xcode or the Android Studio. You will get sufficient help in the form of tutorials from the
official website.
React Native is basically an open-source framework offering ample support to the IDEs and
the other mobile app development tools.
261
Read: Mobile Development framework: https://www.mindinventory.com/blog/mobile-app-
development-framework-2019/
The graphical user interface (GUI ) is a form of user interface that allows users to interact
with electronic devices through graphical icons and visual indicators such as secondary
notation, instead of text-based user interfaces, typed command labels or text navigation.
13.3.3.3 Self-Assessment
i. Explain mobile architecture?
om
iv. What is the name of the program that converts Java byte code into Dalvik byte code?
s
ea
262
13.3.3.4 Tools, Equipment, Supplies and Materials
Software, Emulator, Mobile Device, Android SDK
13.3.3.5 References
• https://www.techopedia.com/definition/6010/application-stack
• https://www.cs.cmu.edu/~bam/uicourse/830spring09/BFeiginMobileApplicationDevelop
ment.pdf
• https://searchsoftwarequality.techtarget.com/definition/integrated-development-
environment
• https://www.techopedia.com/definition/30676/mobile-emulator
• Android Application Development All-in-One For Dummies authored by Barry A. Burd
published by John Wiley & Sons Inc., 2015
• Beginning Android Programming With Android Studio (4th edition) authored by Jerome
DiMarzio published by Wrox, 2016
The lifecycle of mobile development is largely no different than the SDLC for web or
desktop applications.
Hamburger Menu: Screen space is a precious commodity on mobile, and the hamburger
menu (or side drawer) is one of the most popular mobile navigation patterns for helping you
save it. The drawer panel allows you to hide the navigation beyond the left edge of the screen
and reveal it only upon a user’s action.
263
The tab bar pattern is inherited from desktop design. It usually contains relatively few
destinations, and those destinations are of similar importance and require direct access from
anywhere in the app.
13.3.4.3 Self-Assessment
i. Explain lifecycle of mobile development?
ii. Explain briefly navigation patterns and give example?
iii. Universal front end to database applications that connects to back end through
Internet, are the
A. Web browsers
B. Applications
C. Tools
D. Software programs
iv. _________ is largely no different than the SDLC for web or desktop applications.
The lifecycle of mobile development
A. Android application
B. Mobile development
om
13.3.4.5 References
• https://www.smashingmagazine.com/2017/05/basic-patterns-mobile-navigation/
• https://www.corephp.com/blog/mobile-app-development-lifecycle/
• https://medium.com/@soulless/top-8-mobile-navigation-menu-design-for-your-
inspiration-8a2d925bffc0
• Android Application Development All-in-One For Dummies authored by Barry A. Burd
published by John Wiley & Sons Inc 2015
• Beginning Android Programming With Android Studio authored by Jerome DiMarzio
published by Wrox; 4 edition 2016
264
o Resources are defined in XML
o Framework components are defined
o SQL lite database is introduced
o Configuration of the Google play SDK is done
o Project prototype is created as per the scope
o Build the project prototype into a debuggable APK
o That can be installed to an emulator or Android powered device
Every application must have an AndroidManifest.xml file (with precisely that name) in its
root directory. The manifest presents essential information about the application to the
Android system; information the system must have before it can run any of the application's
om
code.
t.c
ve
yt
https://developer.android.com/guide/topics/manifest/manifest-intro
https://stuff.mit.edu/afs/sipb/project/android/docs/guide/topics/manifest/manifest-intro.html
XML files that define a user interface layout. They are saved in res/layout/ and accessed
from the R.layout class.
XML files that define application menus, such as an Options Menu, Context Menu, or Sub
Menu. They are saved in res/menu/ and accessed from the R.menu class.
An activity is the entry point for interacting with the user. It represents a single screen with a
user interface. For example, an email app might have one activity that shows a list of new
emails, another activity to compose an email, and another activity for reading emails.
A service is a general-purpose entry point for keeping an app running in the background for
all kinds of reasons. It is a component that runs in the background to perform long-running
operations or to perform work for remote processes.
A broadcast receiver is a component that enables the system to deliver events to the app
outside of a regular user flow, allowing the app to respond to system-wide broadcast
265
announcements. Because broadcast receivers are another well-defined entry into the app, the
system can deliver broadcasts even to apps that aren't currently running.
A content provider manages a shared set of app data that you can store in the file system, in
a SQLite database, on the web, or on any other persistent storage location that your app can
access. Through the content provider, other apps can query or modify the data if the content
provider allows it.
13.3.5.3 Self-Assessment
i. What is activity?
ii. What is service?
iii. Explain briefly Resources defined in XML
iv. Differentiate XML and SDK?
v. How Long Does It Take To Build An App?
vi. What Is A Resource?
om
vii. Create Android program convert Temperature from Celsius to Fahrenheit and
t.c
Fahrenheit to Celsius?
ve
yt
viii. What happen if we all execute () more than once in Async Task
s
ea
13.3.5.5 References
• https://www.tutorialspoint.com/android/android_resources.htm
• https://developer.android.com/guide/components/fundamentals
266
• https://www.ntu.edu.sg/home/ehchua/programming/android/Android_HowTo.html
• Android Application Development All-in-One For Dummies authored by Barry A. Burd
published by John Wiley & Sons Inc, 2015
• Beginning Android Programming With Android Studio (4th edition) authored by Jerome
DiMarzio published by Wrox, 2016
Mobile application testing is a process by which application software developed for handheld
s
ea
mobile devices is tested for its functionality, usability and consistency. Mobile application
testing can be an automated or manual type of testing.
267
o Test method: There are two main ways of testing mobile applications: testing on real
devices or testing on emulators. Emulators often miss issues that can only be caught by
testing on real devices, but because of the multitude of different devices in the market,
real devices can be expensive to purchase and time-consuming to use for testing.
o Compatibility: It is necessary to test the compatibility; suppose an application can work
on the high resolution and it doesn't work on the lower resolution.
o Variety of mobile devices: Mobile devices differ in screen input methods (QWERTY,
touch, normal) with different hardware capabilities.
Testing applications on mobile devices is more challenging than testing web apps on the
desktop due to:
o Different range of mobile devices with different screen sizes and hardware configurations
like a hard keypad, virtual keypad (touch screen) and trackball etc.
o Wide varieties of mobile devices like HTC, Samsung, Apple and Nokia.
o Different mobile operating systems like Android, Symbian, Windows, Blackberry and
IOS.
o Different versions of operation system like iOS 5.x, iOS 6.x, BB5.x, BB6.x etc.
o Different mobile network operators like GSM and CDMA.
o Frequent updates – (like Android- 4.2, 4.3, 4.4, iOS-5.x, 6.x) – with each update a new
testing cycle is recommended to make sure no application functionality is impacted.
om
t.c
o Functional testing ensures that the application is working as per the requirements. Most
s
ea
of the tests conducted for this is driven by the user interface and call flow.
o Laboratory testing, usually carried out by network carriers, is done by simulating the
complete wireless network. This test is performed to find out any glitches when a mobile
application uses voice and/or data connection to perform some functions.
o Performance testing is undertaken to check the performance and behavior of the
application under certain conditions such as low battery, bad network coverage, low
available memory, simultaneous access to the application’s server by several users and
other conditions. Performance of an application can be affected from two sides: the
application’s server side and client’s side. Performance testing is carried out to check
both.
o Memory leakage testing: Memory leakage happens when a computer program or
application is unable to manage the memory it is allocated resulting in poor performance
of the application and the overall slowdown of the system. As mobile devices have
significant constraints of available memory, memory leakage testing is crucial for the
proper functioning of an application.
o Interrupt testing: An application while functioning may face several interruptions like
incoming calls or network coverage outage and recovery. The different types of
interruptions are:
o Incoming and outgoing SMS and MMS
o Incoming and outgoing calls
o Incoming notifications
268
o Battery removal
o Cable insertion and removal for data transfer
o Network outage and recovery
o Media player on/off
o Device power cycle
o An application should be able to handle these interruptions by going into a
suspended state and resuming afterwards.
o Usability testing is carried out to verify if the application is achieving its goals and
getting a favorable response from users. This is important as the usability of an
application is its key to commercial success (it is nothing but user friendliness). Another
important part of usability testing is to make sure that the user experience is uniform
across all devices. This section of testing hopes to address the key challenges of the
variety of mobile devices and the diversity in mobile platforms/OS, which is also called
device fragmentation. One key portion of this type of usability testing is to be sure that
there are no major errors in the functionality, placement, or sizing of the user interface on
different devices.
o Installation testing: Certain mobile applications come pre-installed on the device
whereas others have to be installed by the store. Installation testing verifies that the
installation process goes smoothly without the user having to face any difficulty. This
testing process covers installation, updating and uninstalling of an application
om
269
required geographies. Since real users using real devices test the application, this is more
likely to find issues faced by users under real world conditions.
Basic Difference Between Mobile And Desktop Application Testing: Few obvious aspects
that set mobile app testing apart from the desktop testing
o On the desktop, the application is tested on a central processing unit. On a mobile device,
the application is tested on handsets like Samsung, Nokia, Apple, and HTC.
o Mobile device screen size is smaller than a desktop.
o Mobile devices have less memory than a desktop.
o Mobiles use network connections like 2G, 3G, 4G or WIFI where desktop use broadband
or dial-up connections.
o The automation tool used for desktop application testing might not work on mobile
applications.
The debugger allows you to control the execution of your application by:
o Setting breakpoints.
o Suspending launched applications.
om
13.3.6.3 Self-Assessment
i. What is debugging?
ii. How is mobile application testing different for different mobile?
iii. You are to prepare a mobile application of online grocery shopping (android). What
are the key parameters for testing and debugging?
270
iv. __________ ensures that the application is working as per the requirements. Most of
the tests conducted for the user drives this interface and call flow.
A. Black box testing
B. Functional testing
C. Location testing
D. None of above
v. ___________ connectivity changes with network and location.
A. Location testing
B. Installation testing
C. Testing
D. Program testing
11.3.6.5 References
• https://www.softwaretestinghelp.com/beginners-guide-to-mobile-application-testing/
• https://docs.oracle.com/cd/E37975_01/doc.111240/e24475/debugging.htm#ADFMF1047
• Android Application Development All-in-One For Dummies authored by Barry A. Burd
published by John Wiley & Sons Inc., 2015
om
• Beginning Android Programming With Android Studio (4th edition) authored by Jerome
t.c
ve
271
API monetization is the process by which businesses create revenue from their application
programming interfaces (APIs). APIs are the cornerstone of what is widely seen as the next
iteration of business development, where having well-developed APIs establishes and
maintains relationships in a digital economy. APIs are the wholesale version of a web
presence, allowing others to access and integrate your data and resources into their public or
private sites and applications.
13.3.7.3 Self-Assessment
ve
yt
i. What is API?
s
ea
272
11.3.7.5 References
• https://docs.microsoft.com/en-us/windows/desktop/msi/patching-and-upgrades
• https://www.redhat.com/en/topics/api/what-is-api-monetization
• Android Application Development All-in-One For Dummies authored by Barry A. Burd
published by John Wiley & Sons Inc 2015
• Beginning Android Programming With Android Studio authored by Jerome DiMarzio
published by Wrox; 4 edition 2016
om
t.c
ve
yt
s
ea
273