Professional Documents
Culture Documents
Question 1
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
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.
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
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.
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.
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
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.
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
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).
12