Chapter Two
Chapter Two
❖Generic UI Development
❖Android User
❖More on UIs
2
Introduction
❖With the increased usage of mobile devices across the world, more
and more applications are being targeted at them.
❖If an application that is developed for computers can also run on the
mobile devices, then the entire paradigm of application usage changes
as it enables the user to run application from wherever he is.
❖There were different standards on which the mobile networks are
based.
❖One of the popular standards is GSM.
❖In this unit, we introduce the GSM architecture.
3
Introduction …
5
Introduction …
6
Introduction …
❖Sun's Java Device Test Suite (JDTS) is the de facto industry-standard
tool for assessing the quality of Java Platform, Micro Edition (Java
ME platform) implementations.
❖This tool performs quality testing for devices using the Java ME
platform.
❖The JDTS helps device manufacturers and service providers ensure
their reputation for quality, while building customer satisfaction and
loyalty.
❖It helps lower engineering costs by standardizing and simplifying the
whole testing cycle.
7
Mobile Software Engineering
❖Mobile application development is the set of processes and
procedures involved in writing software for small, wireless computing
devices, such as smartphones and other hand-held devices.
❖Factors that influence your mobile app development process are:
▪ Distribution Channel
▪ Audience Research
▪ App Idea
▪ App Development Strategy
▪ User interface (UI) and user experience (UX)
▪ Testing, Security, and Monitoring.
8
Distribution Channel
❖As a developer, you must first identify which platform best supports
your grand idea.
❖Though Google Play Store and Apple App Store serve the same
function, they have different guidelines.
❖You can view the description, icon, logo, screenshots or image
gallery, and a snippet or a trailer of the app on both platforms.
❖However, there are few elements that differentiate one from the other.
❖For instance, businesses generate more income when they first release
their app on the App Store than in Google Play Store.
9
Distribution Channel …
❖In terms of description, Google Play Store gets more taps because of their
read more button is in a prominent position.
❖You can find the description hidden above the image gallery and
screenshots.
❖The App Store, on the other hand, optimizes their description for iPhone
screens.
❖You can read the description directly without needing to tap on a button or
scroll down.
❖Moreover, the platforms are also essential when thinking of other factors
such as monetization, security, and the availability of different types of
apps.
10
Audience Research
❖For your idea to become successful, you must first conduct audience
research.
❖Knowing your audience involves understanding the industry and
getting in-depth knowledge about the people that might take an
interest in your apps.
❖It is important because users tend to be diverse.
❖You must track the demographics of the users of your app.
❖If you want your app to solve a problem, you should not base your
decisions on assumptions.
11
App Idea
❖Unfortunately, not all ideas become great and successful once you
turn them into an app.
❖Remember that working on an app development project requires
money, effort, and time.
❖You must first check if your design is unique.
❖Most of all, you must be able to differentiate your idea from the
what’s already available on the platforms.
❖It must also be able to resolve the weaknesses of the existing
competitive apps.
12
App Development Strategy
❖To properly execute your app idea, you must have a solid app development
strategy.
❖It clarifies how much of the design work you will undertake for the app
development.
❖It covers your timeframe for working in the project.
❖It also factors in the technology you will use to develop your app idea.
❖Part of your app development strategy must include the strengths and
weaknesses of each mobile device.
❖If you over or underestimate in any of the factors, your app can end up
becoming a failure.
13
User interface (UI) and user experience (UX)
❖User interface (UI) and user experience (UX) are part of what keeps
users hooked on an app.
❖Users prefer apps that are “handier” compared to those that require
too much effort to operate.
❖Navigation and usability aren’t the only ones that matter to the users.
They are also receptive to several UI/UX factors.
❖For instance, an app with low-res images, slow loading times, broken
sign up/ login functionality and app navigation, and poor connectivity
to social profiles are all signs of poor UI/UX.
14
Testing
❖Developing and designing your mobile app idea is only half of the job
in your mobile app development journey.
❖You must also run a few tests to ensure your design runs smoothly.
❖It’s a way to secure that your mobile app has no exceptions and bugs.
❖You must also look into the app’s integrations and usability.
❖It’s also important to find out if your app is compatible with different
platforms and devices.
❖Most of all, you should test if the app functions properly at the user’s
end before going live.
15
Security
16
Monitoring
❖You still have work to do after you publish your mobile app.
❖You must be hands-on with fixes, performance improvements,
changes, and integrating new features.
❖As a developer, you must track crashes and look at technical
information to help you resolve the problems users encounter.
❖You can also check into analytics as well as recommendations and
reviews by users to see how well the market responds to your app.
❖The information you get from these platforms is what you need to
identify trouble spots and make room for improvement.
17
Monitoring …
❖Lifecycle management:
▪ Once an app is deployed, developers must test, host, deploy, maintain and
analyze its usage throughout its lifecycle.
▪ As a result, it’s important for developers to consider the long-term capabilities
and long-term costs of tools.
❖Delivery:
▪ Apps aren’t done when they go into production. They must be dependable.
▪ They must scale. They will need updating based on evolving requirements and
end user feedback.
▪ Developers need to make sure the tool they select will allow for easy upgrades,
updates, availability, scalability and performance.
18
Monitoring …
19
The main considerations for mobile app design
❖Intended utility of the mobile app:
▪ Consumer engagement with richer user experience.
▪ Productivity through efficient flows.
▪ Driving incremental revenue through user stickiness.
▪ Customer conversion
▪ User loyalty through targeted and personalized offers
❖App Architecture:
▪ Native vs hybrid vs web based on the requirements
▪ Middleware requirement for centralized configuration
▪ Offline vs online capability for storing data
20
The main considerations for mobile app
design…
❖App Development Principles:
▪ User experience through richer controls and interactive components
▪ Compatibility on various devices and platforms
▪ Performance for each screen and task
▪ Security for data o Productivity enhancement tools
❖Target users:
▪ Consumers for B2C apps
▪ Business for Business to Business (B2B) apps
▪ Partners for B2B apps o Employees for Business to Employee (B2E) apps
21
The main considerations for mobile app
design…
❖Testing:
▪ Device testing
▪ Performance testing
▪ Various testing scenarios
22
The main challenges in mobile app strategy
❖Diversity of devices and heterogeneous technologies:
▪ There are various mobile platforms and devices.
▪ The app should provide optimal experience in all the scenarios.
❖Security:
▪ Mobile app should ensure data security during transmission and during storage.
❖User experience:
▪ Mobile app should provide optimal user experience leveraging the device capabilities to
provide highest engagement possible.
❖Network:
▪ Mobile app should be designed to work in regions with network, latency and bandwidth
challenges.
❖Compliance to diverse standards, OS, mobile platforms and devices.
23
Frameworks and Tools
24
Frameworks and Tools …
25
Flutter
❖Flutter is Google’s open-source framework for developing native
Android and iOS apps using a single codebase.
❖It is an unmatched and highly reliable mobile UI framework for
creating stunning apps quickly by speeding up the development
process.
❖Flutter is a complete framework that includes widgets, a rendering
engine, testing and integrating APIs and tools to help developers build
and deploy aesthetically pleasing mobile apps.
❖Examples of applications built using Flutter development include
Google, Alibaba, and Abbey Road Studios.
26
React Native
27
Ionic
29
Native Script
30
Apache Cordova
34
Onsen UI
❖Onsen UI is one of the best application development frameworks for
building complex web applications that deliver native-like experiences
across platforms with the same source code.
❖It’s easy to learn using Onsen UI as the software provides lots of
learning resources on its website and is compatible with Angular JS 1,
Angular2+, React, and Vue.
❖As a modern and developer-friendly application development
framework, Onsen UI provides a great collection of UI components,
such as tabs, stack navigation, and lists, that further streamline
development and accelerate time to market.
35
Generic UI Development
37
Generic UI Development …
38
Generic UI Development …
❖The application screens consist of the following parts:
▪ Descriptors:
➢ XML files for declarative definition of the screen layout and data components.
▪ Controllers:
➢ Java classes for handling events generated by the screen and its UI controls and for
programmatic manipulation with the screen components.
❖The code of application screens interacts with visual component
interfaces (VCL Interfaces).
❖These interfaces are implemented using the Vaadin framework
components.
39
Generic UI Development …
▪ Visual Components Library (VCL) contains a large set of ready-to-use components.
▪ Data components provide a unified interface for binding visual components to entities
and for working with entities in screen controllers.
▪ Infrastructure includes the main application window and other common client
mechanisms.
❖A screen is a main unit of the generic UI.
❖It contains visual components, data containers and non-visual components.
❖A screen can be displayed inside the main application window either in the
tab or as a modal dialog.
40
Generic UI Development …
❖The main part of the screen is a Java or Groovy class called controller.
❖Layout of the screen is usually defined in an XML file called
descriptor.
❖In order to show a screen, the framework creates a new instance of the
Window visual component, connects the window with the screen
controller and loads the screen layout components as child
components of the window.
❖After that, the screen’s window is added to the main application
window.
41
Generic UI Development …
42
Generic UI Development …
43
Generic UI Development …
▪ Window:
➢ a standalone window that can be displayed inside the main application window in a tab or
as a modal dialog.
▪ Fragment:
➢ a lightweight component that can be added to windows or other fragments.
❖Controllers are also divided into two distinct categories according to
the frames they use:
▪ Screen:
➢ a base class of window controllers.
▪ Screen Fragment:
➢ a base class of fragment controllers.
44
Generic UI Development …
46
Generic UI Development …
47
Generic UI Development …
48
Android User
❖Android is the most popular operating system in the world, with over
2.5 billion active users spanning over 190 countries.
❖Created by Andy Rubin as the open-source alternative to iPhone and
Palm OS, Android quickly became the favorite operating system for
most mobile manufacturers in the early 2010s.
❖With titans of the industry such as Samsung, LG, Motorola and HTC
all launching phones running Android, it quickly became the most
popular mobile OS, hitting over one billion active users by 2014.
49
Android User …
50
More on UIs
52
More on UIs …
53
More on UIs …
54
VUIs and Mobile Apps, Text-to-Speech
Technique
❖Voice user interfaces are user interfaces that are used through speech.
❖Typical examples of voice user interfaces include smart speakers and
voice assistants.
❖Voice UIs employ speech recognition and natural language
understanding technologies to transform user speech into text and
meaning.
❖Speech is a tool for enhancing traditional touch user interfaces into
multimodal voice user interfaces.
55
VUIs and Mobile Apps, Text-to-Speech
Technique …
❖Voice user interfaces are highly intuitive as they use the most natural
way for us to communicate: speech.
❖They are significantly faster than typing to input information but
significantly slower than reading or seeing to output information from
the computer system back to the user.
❖The first voice user interfaces were IVR, Interactive Voice Response,
systems that enabled users to interact with a phone system by using
speech.
❖Typically, IVRs recognized only digits, but nonetheless they were
early voice user interfaces
56
VUIs and Mobile Apps, Text-to-Speech
Technique …
❖The first applications of voice UIs were interactive voice response
(IVR) systems that came into existence already back in the 80s.
❖These were systems that understood simple commands through a
telephone call and were used to improve efficiency in call centers.
❖Current voice user interfaces can be a lot smarter and can understand
complex sentences and even combinations of them.
❖For example, Google Assistant is perfectly fine with something like
“Turn off the living room light and turn on the kitchen light”.
57
VUIs and Mobile Apps, Text-to-Speech
Technique …
❖However, as these smart speakers always wait until the end of the user
utterance and only then process the information and act accordingly,
they will fail if the user hesitates with their speech or says something
wrong.
58
Designing the Right UI
❖UI principles:
▪ Consistency of the design layout.
▪ Unambiguous Interactive Elements.
▪ Single Trial Learning Experience.
▪ Anticipate and Answer Users’ Queries.
➢ Use Toast in Android and notifications in iOS so users will be notified when a process has
completed.
▪ Layered User Experience:
➢ The UX should be layered.
➢ Layered here refers that all the features of an app must not be exposed at once.
60
Designing the Right UI …
▪ Uniqueness
➢ There is no point in creating something that already exists.
▪ Structure
➢ User interfaces for mobile applications should be organized in such a way that users will
find it helpful and meaningful.
▪ Context
➢ Before moving on, you need to find out in what context your app will be used and then
build the interface according to this information.
▪ Gestures
➢ Let’s say if the user is holding the handrail on a public transport with one hand and trying
to work an app with the other hand, it might be annoying if there are no other gestures but
to pinch to expand, since this gesture requires two hands.
61
Designing the Right UI …
▪ Tolerance
➢ Tolerance means allowing users to make mistakes and giving them the opportunity to
revoke changes.
▪ Consistency
➢ Consistency means tidiness and it is certainly a must-have in every app, which is why in
the majority of mobile app design companies there’s a rule to create a UI kit for every
project.
▪ Communication
➢ The core idea here is to let users know your app registered the action and processing it
even if it is not possible to give an immediate result.
➢ From a psychological perspective, people need to get acknowledgment for their actions,
and it is especially important in the banking sphere.
62
Designing the Right UI …
63
Multichannel and Multimodal UI
64
Multichannel and Multimodal UI …
❖The question arises: What are important challenges in using speech as
a “mainstream” modality?
❖While ASR made significant efforts within the last years, e.g., partly
driven by the successful application of deep neural networks, the
identification of the intended semantic for a further processing by the
dialog manager is still a rather difficult process.
❖ASR capabilities are easy to integrate into new user interfaces by
making use of available programming APIs.
❖On the technical side one of the next challenges is therefore to realize
conversational speech interaction in many applications.
65
Multichannel and Multimodal UI …
66
Multichannel and Multimodal UI …
67
Thank you!
Any questions?
Good day!