You are on page 1of 12

NATIONAL UNIVERSITY OF SCIENCE AND TECHNOLOGY

Department of Computer Science


Program: B.Sc. Computer Science (Con) Part 2.

Student number: N0182439C

Student name: Trust Zhou


Course Name: Mobile Application Development

Course Code: SCS 2210






Question 1

Make a comparison of cross platform mobile application development framework


and native mobile application development framework. In your comparison make
use of specific examples of these frameworks. [20]

Solution

1

Parameter Native Cross platform
Application High-performing apps that are Cross-platform apps are often
performance fast, responsive, and less likelyplagued with performance issues.
and speed to crash. In reality, cross-platform apps are
comparatively slower than the
native ones.
Application High cost of development since Relatively cheaper in terms of both
development it requires building more than development and maintenance
and one app if you wish to distribute
maintenance your products or services to
cost multiple platforms.
Maintenance is equally
timeconsuming and costly
Development High, as codes have to be Low, as single code can be used on
time written from scratch for each multiple platforms
platform.
Time to market High, as two apps have to be Code reusability reduces the time to
developed which may take launch the app.
time.
Features Platform SDK ensures access to No assured access to device’s
device’s API without any API.It does not allow offline
hindrance. Another great features
advantage of native apps is that
they allow offline features,
unlike cross-platform apps.
Language Native apps are developed in Cross-platform apps are developed
compatibility platform specific language. For in Javascript which is compatible
instance, Objective C and Swift with multiple platforms.
for iOS, while Java or Kotlin
for Android.
UI consistency Consistent with the UI Limited consistency.
components of the device

2

User Offers amazing user experience Relatively low as it gets difficult
experience resulting from high speed, for developers and designers to
better performance, better cater to all the UX requirements of
visuals and optimum utilization multiple platforms in a single app.
of device’s features. Moreover, an attempt to enhance
UX often hampers speed.
Programming Native developer’s skills Required expertise is easier to find
expertise usually cost more and are as most cross platform frameworks
difficult to obtain. are web based.
App store and Easy Authorization of these applications
Google play in the App Store or in Google Play
authorization is time consuming. Moreover,
every update is also separately
authorized before it’s made
available for use.
Dependancy Less dependent on other open Largely dependent on various
source libraries or platforms libraries and tools.

3

Question 2

Describe the components of a cross platform mobile application architecture with


aid of a diagram.
[20]
Solution:

Cross Platform Mobile Framework is when developers write code once and the
single code base can run on multiple operating systems examples include Xamarin,
Flutter, React, Adobe PhoneGap and Ionic. The cross platform mobile application
frameworks are developed by third party vendors to create a unified API based on
the native operating systems’ SDKs.

General Architecture Diagram of a Cross Mobile Architecture

4

Example the XAMARIN architecture Diagram and its components

Xamarin Cross Platform has two major sections that is platform specific SDKs to
interface with the underlying unique device operating system. The Architecture
comprises of three main Native Application interfaces which are iOS and Android
and Windows which in turn contains Xamarin.iOS SDK assemblies,
Xamarin.Android SDK assemblies, Windows Phone SDK assemblies respectively.

Component layer

5

Each component consists of one public interface and each targeted platform will
have a particular native implementation. The different implementations are hidden
to the users

Universal language layer

To access a component public interface, a declarative language was implemented


that users could use (it is a link between component methods and Apps). This
language allows users to declare instantiate a component, and use its methods from
its public interface. Annotations can be written in any place of source code and
linked with any methods or variables.

Shared code

Presentation Layer
The main focus of this layer is how to present the app to the end user. When
designing it, app developers must determine the correct client type for the intended
infrastructure. Client deployment restrictions should also be kept in mind. Another
prerequisite for designing this layer is choosing the correct data format and using
powerful data validation techniques to protect your apps from invalid data entry. In
addition, our mobile app developers also focus on decoupling business logic from
the presentation code.

Business layer

Definition of the Model classes and the Façade or Manager classes that expose
functionality to the platform-specific applications.
Caching, logging, authentication, exception management and security are all
matters of concern. According to our developers, you need to split tasks into
different categories to reduce the complexity of this layer.

6

Data layer
For complex rules, app policies, data transformations and validation, you must
identify the set of Code that takes care of physical data storage eg. SQLiteNET
or even XML files. The data layer classes are normally only used by the data
access layer demands separately for each of the categories.

Data Access Layer

Defines an API that supports the required data operations for the application’s
functionality, such as methods to access lists of data, individual data items and also
create, edit, and delete them. This layer complies with the app requirements to
facilitate secure data transactions. You must design this dimension so that it can be
rescaled over time as business needs change.

Service Access Layer

An optional layer to provide cloud services to the application. Contains code that
accesses remote network resources (web services, image downloads, etc) and
possibly caching of the results.

File System

The Virtual Filesystem (also known as VFS) is a component of the kernel that
handles all system calls related to files and file systems. VFS is a generic interface
between the user and a particular file system. This abstraction simplifies the
implementation of file systems and provides an easier integration of multiple file
systems. This way, the implementation of a file system is accomplished by using
the API provided by the VFS, and the generic hardware and I/O subsystem
communication parts are handled by VFS.

Manifest file
A manifest file in computing is a file containing metadata for a group of
accompanying files that are part of a set or coherent unit. For example, the files of
a computer program may have a manifest describing the name, version number,
license and the constituent files of the program.

7

Software Widget

A software widget is a relatively simple and easy-to-use software application or


component made for one or more different software platforms. A desk accessory or
applet is an example of a simple, stand-alone user interface, in contrast with a more
complex application such as a spreadsheet or word processor. These widgets are
typical examples of transient and auxiliary applications that don't monopolize the
user's attention.

Question 3
Explain any four important factors that can influence user experience and user
interface choices when developing a tutor mobile application for primary school
students. [20] Solution:

8

User Experience (UX) is critical to the success or failure of a software product in
the market. UX goes beyond usability and it is important to pay attention to all
facets of the user experience in order to deliver successful products to market. With
reference to a Primary school mobile tutor application, it is very critical to
streamline the application to cater for small children who find it difficult to
navigate in complex navigation application. Four features namely accessibility,
usability, consistency and focus on the user.

Accessible
Accessibility is about providing an experience which can be accessed by users of a
full range of abilities and this includes those who are disabled in some respect such
as hearing loss, impaired vision, motion impaired or learning impaired.
It’s also worth remembering that when you design for accessibility, you will often
find that you create products that are easier for everyone to use not just those with
disabilities. Don’t neglect accessibility in the user experience. For the application
to become a fully featured application that cannot segregate other learners based on
their disabilities a careful though and a powerful design needs to be factored in the
application so as to avoid disenfranchising students who are living with disabilities
that hinders their learning process.

Credible

9

Credibility relates to the ability of the user to trust in the product that you’ve
provided. Not just that it does the job that it is supposed to do but that it will last
for a reasonable amount of time and that the information provided with it is
accurate and fit-for-purpose.
It is nearly impossible to deliver a user experience if the user thinks the product
creator is a lying with bad intentions – they’ll take their business elsewhere instead.
Given that a tutor application is for small pupils some of whom are still struggling
with reading hence monetization in terms of in app advertisement which disrupts
the learning process.

Focus on the user


Is the most important principle in UX design, and underpins all of the other
principles. This principle sits at the core of UX design because it helps to combat a
very common issue found in application as designers become more adept at
working with complex design frameworks, they can end up designing applications
that are more concerned with impressing fellow application designers than
providing real-life users with a great experience.
Great design has always been about elegant combinations of form and function,
and by integrating user experience into your tutor application design at the earliest
possible stage, you will end up with a site that is genuinely user-centric. Applying
this principle involves thinking carefully about the way in which your users will
actually interact with your site, and the most common tasks they will use it for, and
keeping these key concerns in mind throughout the design process.
The most practical way to apply this principle for web designers will depend on the
type (and size) of the organization you work for. If you have the luxury of a
dedicated UX research team, this will involve working closely with your UX
researchers. For smaller organizations, you may have to build your own user
feedback mechanisms (more on that below). Whichever approach you take, though,
user-centric design means that there should be a continual process of design and
feedback, where each process informs the other.
Hence a mobile for a tutor application need to focus more on the needs of the
pupils.
Consistency

10

A more specific principle of UX design, and one that is extremely important when
it comes to building a successful tutor application, is consistency. At the broadest
level, consistency means that designs and functionality stay the same across all of
your pages and products. However, it’s also important to recognize that many of
the most popular and successful apps and websites use similar templates for user
interfaces, whether this is in the placement of buttons or the way in which menu
systems “flow.”
For this reason, users will come to your site with a pre-existing idea of how things
“should work,” and it’s important to respect this. While you shouldn’t replicate
your competitors’ apps and websites, creating an interface that feels similar to
market-leading websites can help your users to navigate your pages easily. This is
because the more familiar your page looks, the easier it will be to use, and the more
seamless your users’ experience will be. Research shows that users respond
positively to pages that look familiar.
Implementing this principle should be approached through three techniques. The
first is that you should consider all the ways in which your users interact with your
site, and use the same design across all these systems.
Secondly, you should resist the temptation to try new, crazy ideas. While
innovation is important for web design, this should never get in the way of
usability. Third, you can consider adopting a “design language” as a way of
keeping your designs consistent: good examples of design languages include
Apple’s Human Interface Guidelines and Google’s Material Design Guidelines.

References

[1] A. I. Wasserman, Software engineering issues for mobile application


development, in: Proceedings of the FSE/SDP workshop on Future of software
engineering research, FoSER ’10, ACM, 2010.
[2] A. Puder, I. Yoon, Smartphone cross-compilation framework for multiplayer
online games, in: Proceedings of the 2010 Second International Conference on
Mobile, Hybrid, and On-Line Learning, ELML ’10, IEEE Computer Society, 2010.
[3] F. J. Martinez-Ruiz, J. Vanderdonckt, J. M. n. Arteaga, Context-aware

11

generation of user interface containers for mobile devices, in: Proceedings of the
2008 Mexican International Conference on Computer Science, IEEE Computer
Society, 2008.
[4] J. Meskens, K. Luyten, K. Coninx, Jelly: a multi-device design environment for
managing consistency across devices, in: Proceedings of the International
Conference on Advanced Visual Interfaces, AVI ’10, ACM, 2010.
[5] F. Balagtas-Fernandez, M. Tafelmayer, H. Hussmann, Mobia modeler: easing
the creation process of mobile applications for non-technical users, in: Proceedings
of the 15th international conference on Intelligent user interfaces, IUI ’10, ACM,
2010.
[6] C. Quinton, S. Mosser, C. Parra, L. Duchien, Using multiple feature models to
design applications for mobile phones, in: Proceedings of the 15th International
Software Product Line Conference, Vol. 2 of SPLC ’11, ACM, 2011. [7] C. A.
Parra, C. Quinton, L. Duchien, CAPucine: Context-Aware ServiceOriented
Product Line for Mobile Apps, ERCIM News 88.
[8] D. Kramer, T. Clark, S. Oussena, Platform independent, higher-order, statically
checked mobile applications, International Journal of Design, Analysis and Tools
for Circuits and Systems 2 (1).

[9] Gutman J.: A means-end chain model based on consumer categorization


processes, Journal of Marketing, 46(2):60–72, 1982
[10] Park J. and Han S. H.: Defining user value: A case study of a smartphone,
International Journal of Industrial Ergonomics, 43(4):274-282, 2013
[11] Maslow A. H.: A theory of human motivation, Psychological review,
50(4):370, 1943

[12] D. Popovici, M. Desertot, S. Lecomte, T. Delot, When the context changes, so


does my transportation application: Vespa, Procedia CS 5

12

You might also like