Mobile Application Development
Mobile Application Development
13.1 Introduction
This unit specifies competencies required to develop computer program.
1. It involves Identifying Mobile application concepts,
2. identifying mobile application development environment,
3. identifying Application Design Issues,
4. actual Development of mobile application,
5. testing of the developed mobile application and
6. Publishing and Commercializing the developed Application.
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
Page 1 of 17
Trainees to demonstrate knowledge in relation to:
o Definition of Mobile application
2. Hybrid apps for all platforms altogether with Xamarin, React Native, Ionic, and
Angular Mobile Sencha Touch etc.
Page 2 of 17
TVET CDACC LECTURE GUIDE NOTES
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.
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
Page 3 of 17
13.3.2.4 Tools, Equipment, Supplies and Materials
Software, Android SDK, Integrated Development Environment (IDE)
11.3.2.5 References
https://mashable.com/article/build-mobile-apps/
http://www.matchboard.com.au/MatchBoard/Forms/Article/App%20Appeal%20%2010%
20Great%20Reasons%20to%20build%20a%20Mobile%20App.aspx
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
Page 4 of 17
TVET CDACC LECTURE GUIDE NOTES
An application stack is a suite or set of application programs that help in performing a certain
task.
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.
A Software Development Kit (SDK) is typically a set of software development tools that allows
the creation of applications for a certain software package, software framework, hardware
platform, computer system, video game console, operating system, or similar 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.
Flutter was launched by Google and is an open-source mobile application development SDK. It
is a popular cross-platform app development and is written in the Dart language.
React Native is basically an open-source framework offering ample support to the IDEs and the
other mobile app development tools.
Page 5 of 17
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?
ii. Explain briefly mobile development architecture?
iii. What is emulator?
iv. What is the name of the program that converts Java byte code into Dalvik byte code?
A. Mobile Interpretive Compiler (MIC)
B. Dex compiler
C. Dalvik Converter
D. Android Interpretive Compiler (AIC)
v. Required folder when Android project is created.
A. Build
B. Build/
C. Bin
D. Bin/
vi. Which of the following is not a component of an APK file?
A. Dalvik executable
B. Native Libraries
C. Resources
D. All of these are components of the APK
vii. Select a component which is NOT part of Android architecture.
A. Android framework
B. Libraries
C. Linux kernel
D. Android document
Page 6 of 17
TVET CDACC LECTURE GUIDE NOTES
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.
Page 7 of 17
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
C. None of the above
D. Both of the above
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
Page 8 of 17
TVET CDACC LECTURE GUIDE NOTES
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 code.
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
Page 9 of 17
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?
vii. Create Android program convert Temperature from Celsius to Fahrenheit and
Fahrenheit to Celsius?
viii. What happen if we all execute () more than once in Async Task
A. Nothing will happen
B. It will create those many threads
C. It will throw an error
D. It will throw an execution
ix. ADB is located in platform-tools folder under android-SDK
A. True
B. False
x. Can we create a different layout files for portrait and landscape mode?
A. One cannot create different layout files for portrait and landscape mode
B. One can create different layout files for portrait and landscape mode
x. A task can have multiple apps?
A. True
B. False
13.3.5.5 References
https://www.tutorialspoint.com/android/android_resources.htm
https://developer.android.com/guide/components/fundamentals
Page 10 of
17
TVET CDACC LECTURE GUIDE NOTES
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
mobile devices is tested for its functionality, usability and consistency. Mobile application
testing can be an automated or manual type of testing.
Page 11 of
17
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.
Page 12 of
17
TVET CDACC LECTURE GUIDE NOTES
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
o Certification testing: To get a certificate of compliance, each mobile device needs to be
tested against the guidelines set by different mobile platforms.
o Security testing checks for vulnerabilities to hacking, authentication and authorization
policies, data security, session management and other security standards.
o Location testing: Connectivity changes with network and location.
o Outdated software testing: Not everyone regularly updates their operating system. Some
Android users might not even have access to the newest version. Professional testers can
test outdated software.
o Load testing: When many users all attempt to download, load, and use an app or game
simultaneously, slow load times or crashes can occur causing many customers to abandon
your app, game, or website. In-country human testing done manually is the most effective
way to test load.
o Black box testing doesn't include the internally coding logic of the application. The tester
tests the application with functionality without peering with internally structure of the
application. This method of test can be applied virtually to every level of software testing:
unit, integration, system and acceptance.
o Crowdsourced testing: In recent years, crowdsourced testing has become popular as
companies can test mobile applications faster and cheaper using a global community of
testers. Due to growing diversity of devices and operating systems as well as localization
needs, it is difficult to comprehensively test mobile applications with small in-house
testing teams. A global community of testers provides easy access to different devices
and platforms. A globally distributed team can also test it in multiple locations and under
different network conditions. Finally, localization issues can be tested by hiring testers in
Page 13 of
17
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.
o Stepping through your code.
o Examining the contents of the variables and view them on an emulator.
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?
Page 14 of
17
TVET CDACC LECTURE GUIDE NOTES
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
Page 15 of
17
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
i. What is API?
ii. Define application distribution through application stores
iii. is the process by which businesses create revenue from their
application programming interfaces (APIs).
A. API terminal
B. API monetization
C. API content
D. None of above
iv. You are mobile developer and your client ask you to cerate for him a e-commerce
mobile application and he wanted users to pay through mobile money how will you
do it?
v. is a software update comprised code inserted into the code of an
executable program.
A. Enterprise application
B. Patch
C. Update
D. Upgrade
E. None of above
Page 16 of
17
TVET CDACC LECTURE GUIDE NOTES
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
Page 17 of
17