Overview of Mobile Computing
Overview of Mobile Computing
Overview of Mobile Computing
04/25/2023
1
Contents
04/25/2023 2
Overview of Mobile computing
04/25/2023 3
● Ubiquitous computing is the connecting of many small, cheap
computational devices that are present in users’ physical
environments, including the home, office and even natural
settings.
○ The term ‘ubiquitous’ is intended to suggest that small computing
devices will eventually become so pervasive in everyday objects
that they are scarcely noticed.
04/25/2023 4
Cont’d
● Ubiquitous computing:
○ Activates the world,
○ Is invisible, everywhere computing that does not live on a
personal device of any sort, but is in the woodwork everywhere,
○ Makes a computer so imbedded, so fitting, so natural, that we
use it without even thinking about it.
● Also called: pervasive, deeply embedded, 4G mobile or
sentient computing, and ambient intelligence.
04/25/2023 5
Cont’d
● Technological advances in device miniaturization and wireless networking
○ Led increasing integration of small and portable computing devices into distributed systems.
■ Handheld devices, including mobile phones, smart phones, GPS-enabled devices, pagers, PDAs, video
cameras and digital cameras.
■ Devices embedded in appliances such as washing machines, hi-fi systems, cars and refrigerators.
● The portability of many of these devices, together with their ability to connect
conveniently to networks in different places, makes mobile computing possible and
increasingly adopted and expanded throughout the world.
04/25/2023 6
Cont’d
●4 waves of computing
○Mainframe computing (60’s-70’s) – massive computers to execute big data
processing applications – very few computers in the world.
○Desktop computing (80’s-90’s) – one computer at every desk to help in
business-related activities – computers connected in intranets to a massive
global network (internet), all wired
○Mobile computing (90’s-00’s) – a few devices for every person, small enough to
carry around – devices connected to cellular networks or WLANs
○Ubiquitous computing (now) – tens/hundreds of computing devices in every
room/person, becoming “invisible” and part of the environment – WANs, LANs,
PANs – networking in small spaces
04/25/2023 7
Cont’d
○The changes in technology change the order of the world in many ways such
as communication, business, provision of products and services, etc.
■ Data shows that the penetration and adoption rate of mobile computing is high.
● Use of mobile technologies has become part of daily life around the world as a way of sharing
information.
○ For example, (in 2020) 96% of Americans own a cellphone of some kind whereas 81% of those are smartphones.
○ roughly half of the population own tablet computers and e-reader devices.
○ In Ethiopia mobile penetration is 44.9 of every 100 inhabitant in the 2019/20 report.
04/25/2023 10
○Mobile computing technologies have wide application in every
sectors:
■ Health, financial, business, education, agriculture, tourism –
■ For payment, order, communication, booking, share
information, etc.
04/25/2023 11
Cont’d
● Mobile Computing - Features supported
■ Companies are also moving away from the traditional hard disk data storage
systems into modern servers (cloud computing services).
● Advantages: offered on-demand, pooling of resources, scalability, increased performance, security, and efficiency of
services. Eliminate the need to have network infrastructure.
04/25/2023 12
Cont’d
■ Lack of comprehensive mobile solution strategies exposes the enterprise it governance objectives.
■ For instance, the cost of implementing the technology might exceed the benefits or opportunities
for the solutions adopted.
04/25/2023 13
Cont’d
○Mobile technologies require regular updates and support from the IT department.
■ Frequent upgrades and monitoring of the systems introduce the need to have an IT management team.
○The nature of mobile devices means that they can easily be lost or stolen compared
to their desktop counterparts.
■ Loss of mobile devices is also a security risk because malicious people can obtain critical data stored on these devices.
■ In case of organization, employees can also use their devices to store and transfer work-related information, which
affects the confidentiality and integrity of data
■ Business continuity is affected during updates or when the technologies are disrupted by security risks.
■ Security risks in the mobile environment include cyber-attacks, hacking, malware attacks, disruption of network
services, and human errors that expose valuable customer information
■ These activities might lead to increased cases of identity theft as hackers might sell information to third-party users or
black markets.
04/25/2023 14
Mobile Computing - Enabling Technologies
●Automatic identification
○RFID, numbering schemes, network information services
●Sensing and actuation
○mechanical, chemical, electric, bio
●Context awareness
○physical: properties of objects
○Information: data, profile, provider
○social: identity, situation, role
●Ambient displays
○public screens, interaction
●Tangible interfaces
04/25/2023 16
Cont’d
04/25/2023 17
Mobile Application Architecture
04/25/2023 18
● Mobile App Architecture vs Mobile Tech Stack
○ The term mobile app architecture and mobile tech stack, although
used interchangeable are different.
■ Mobile technology stack is the set of technologies and technical
frameworks that make up the front and back-end of a mobile or web app
(the what of the app), but is less concerned with the business / customer
requirements (the why of the app) or the development process (the how of
creating the app).
■ The mobile app architecture is made up of all the parts of the app – all the
questions about why, what, how – including what data is collected, how the
data moves, what the app looks like, for what platform, using what tech
stack.
04/25/2023 19
● Value of mobile app architecture
○ Many mobile apps developed today without any architecture or reference to standards.
○ Lack of architecture results in an app that is:
■ Longer and more costly to develop
■ Hard to maintain, particularly if staff change
■ Harder to build upon or scale
■ Difficult to test
■ More prone to errors
○ A good architecture is platform independent, but rather apply to native and cross-platform
choices, resulting in a unified approach to development.
○ If we think of mobile app architecture as a skeleton for how we create a mobile app, we can
then define layers (the bones, if you will) for how we build out the vital components of the
app.
04/25/2023 20
A Three layer – Mobile app architecture
04/25/2023 21
1. Presentation Layer of Mobile app architecture
○Presentation layer consists of all the processes and components to deliver the app to the
user. When building the presentation layer, developers are concerned with what the user
sees and feels when using the app.
○In other terms, the presentation layer is made up of the user interface (UI) and user
experience (UX).
■ User Interface (UI) is concerned with design questions such as colors, fonts, placement, and
overall design.
■ User Experience (UX) manages the way a customer interacts with the app through a detailed
understanding of what a user wants and feels.
○When designing the presentation layer, developers need to determine the right platform
and device type so that the presentation is consistent with the standards for each.
04/25/2023 22
2. Business Layer of mobile app architecture
○The business layer is concerned with the logic and rules responsible for data
exchange, operations, and workflow regulation.
○This layer is responsible for:
■ Security
■ Data caching
■ Logging
■ Data validation
■ Exception management
○The business layer can exist on the server or on the user device, depending on the
operations of the app and the resources each operation takes.
04/25/2023 23
3. Data Layer
○ The data layer includes all the data utilities, service agents,
and data access components to support data transactions.
○ This layer can be thought of in two parts:
■ Persistence – data access with data sources via API
■ Network – network communication, routing, error reporting
04/25/2023 24
● Android Mobile Application Architecture
○ Apps developed specifically for Android are one kind of native
app – an app developed for a specific mobile platform.
○ Android apps are developed to support Android languages
(Kotlin and Java) for devices from a variety of manufacturers
including Google, Samsung, Sony, and Nokia.
○ There is no a single architecture recommended for Android,
but the most commonly accepted Android architecture for
mobile apps is Clean Architecture.
04/25/2023 25
● Clean Architecture Manifest of Android
○ In Clean, the architecture is built on the
principles of layers and inversion of control.
■ Clean focuses on the same 3 layer structure
modeled above, with the business layer
sometimes referred to as the domain layer.
■ In Clean architecture, the domain / business
layer must not depend on the other layers, but
instead must leverage interfaces. While this can
be difficult to understand, it does make it easy
to add to and scale apps over time.
04/25/2023 26
● iOS Mobile Application Architecture
○ Native iOS apps are developed using Objective-C and Swift
languages, with Apple providing clear best practices over app
architecture with the MVC model (Model-View-Controller).
○ While other options are available for iOS, the MVC model is made
up of: model, view and controller (see the diagram in next slide).
○ The MVC model supports rapid and parallel development, with the
ability to create multiple views – a great option for mobile
development.
04/25/2023 27
● MVC model of ios app
○ Model – The data layer (persistence,
model objects, parsers, managers,
networking code).
○ View – Similar to the presentation
layer, a re-usable layer that
represents the app to the user.
○ Controller – A mediator level that
communicates with an abstraction
via a protocol.
04/25/2023 28
● Hybrid Mobile Application Architecture
○ Hybrid mobile apps leverage both native and web solutions.
Hybrid apps use native apps as “shells” for the back-end, but
platform-neutral JavaScript, HTML and CSS for the front-end.
○ Hybrid apps use plugins such as Apache Cordova or Ionic
Capacitor to access native platform features.
○ Hybrid mobile apps are among the fastest apps to create across
a variety of platforms and easy to update, but are not
appropriate for complex, interactive, or feature-rich applications.
04/25/2023 29
04/25/2023 30
Factors Considered While Developing Mobile App Architecture
1. Device Type
● When designing a mobile app, first choose the platform (iOS, iPadOS, Android,
Windows, Cross-platform), then consider the different models of smartphone that
are in use – and there are many.
● The following are important factors consider when designing a mobile app:
○ Screen size and DPI
○ Screen resolution
○ CPU (processor)
○ RAM (memory)
● The goal in this stage is trying to deliver the most consistent experience across
various platforms and device sizes (tablet vs mobile, model varieties) so that every
user – regardless of their device choice – has the best possible experience.
04/25/2023 31
2. Development Frameworks
● Development frameworks are a consideration in designing the mobile
app architecture as well as in establishing the tech stack.
● Frameworks provide libraries and basic templates and components for
building mobile apps, both for the front and the back-end.
● For example,
○ The front-end frameworks for building mobile apps
include bootstrap, foundation, react, angular, vue, and backbone.
○ The back-end (server-side), developmental frameworks depend on the chosen
programming language and target platforms, including ruby on rails, flask,
django, laravel, swift, xamarin, react native and flutter – among many others.
04/25/2023 32
3. Bandwidth Scenarios
● User research is important to understand more about
the target user.
● Around the world, users experience different
bandwidth limitations, with some countries on 5G and
others still experiencing spotty connections.
● For example, a highly interactive, graphic-heavy app will
not be appropriate for apps that target rural users.
04/25/2023 33
4. User Interface/ User Experience Design (UI/UX Design)
● When it comes to mobile app architecture, design plays an important
role in first impressions (how it looks – a strong UI) as well as keeping
users around (how it works – a strong UX).
○ A strong UX design is critical to online success, but mobile UX is complicated
by changing user expectations and best practices of each operating system
(OS) and device type.
● The mobile app architecture must balance UI against UX in the design
phase.
○ Start by understanding the basics of mobile UX design and the latest mobile
UX design trends to ensure the app is delivering value.
04/25/2023 34
5. Navigation
● Navigation is the user’s direct contact with the design, impacting both the front-end
and the back-end.
○ A great mobile UX design helps users easily identify how to move around the page and
explore further sections. Familiarity is key to navigation.
● Navigation best practices help ensure the mobile app is easy to use, reducing friction
in the customer journey:
○ Hamburger menu – the three line menu in the navigation drawer or top bar is popular with
mobile apps. Enhance navigation with a hover over menu, reducing clicks.
○ Search – A well-positioned search bar levels up usability, with standard position being the
top right.
○ Bars, rails, drawers, or tabs – There are many options to navigate around an app,
including fixed bars of buttons (top and/or bottom), rails (a vertical bar), drawers (hidden
navigation), and tabs (screened content with fixed titles).
04/25/2023 35
○ Familiar icons – familiar icons such as home, search, photos, folder, etc.
make navigation easier.
○ Intuitive labeling – helping distinguish information with labels that spell
out the intent of a button, option, or feature.
○ Site organization – categorization can make site navigation easier – or
more complicated.
○ Gestures – supporting gesture-based navigation (swipes) can streamline
navigation.
○ Scrolling – how the app supports scroll vs fixed elements.
○ And others.
04/25/2023 36
04/25/2023 37
6. Push Notifications vs Real-time Updates
●Mobile push notifications are messages that apps send to inform users
they have a new in-app message, either from the app itself (such as
product updates, offers, or reminders) or from another user.
○Android users are automatically opted in for push notifications, but iOS users
must opt-in, and typically do so at a lower rate (51% iOS vs 81% Android).
●There is a careful balance to be had between nudging users and
annoying them when it comes to notification frequency and method.
○Notification frequency can also have an impact on device battery life, which
can in turn impact user retention.
04/25/2023 38
●Mobile apps are leveraging real-time technologies to add greater
interactivity to their apps.
○For example, a delivery app can use real-time updates to provide
updates about when a food order has been accepted, prepared,
picked-up, or tracked on a live map.
○Other examples include health and fitness apps or home technologies
that benefit from real-time alerts (such as security systems).
●Like push notifications, real-time updates have their time and
place in order to avoid overwhelming users with notifications.
04/25/2023 39
04/25/2023 40
Mobile Computing – Business Model
○ Note
04/25/2023 that there is no hard and fast rule, to select specific model as every 42
1. Freemium
04/25/2023 43
2. Free, but with ads (in-app advertising)
04/25/2023 44
3. Advertisement
●This model offer the application completely free, however the return
on investment is recovered by introducing advertisement within the
application.
○Digital advertisements have become widely prevalent and easy to integrate.
Several platforms like Google Ads allow app developers to run ads in their
app’s interface and earn money out of it.
○It is a great business model, and developers need not demand money from
the users, while they can generate decent revenues.
○Although, earnings per user is quite minimal unless too many ads are
pushed. Doing that hampers the user experience and also drives them away.
Hence, the success of this model relies on a wide user base.
04/25/2023 45
4. Subscription Model
04/25/2023 47
6. Paid Apps
●Both the well-known application stores in existence, the Google Play Store and
App Store by Apple, allow app developers to list their apps on their platforms
either for free or by paying a certain amount of money.
○If you choose to make your app a paid one, you will earn money every time someone
installs the app. Please note that both the App Store and Play Store charge 15%
as commissions for all the sales made through their platforms for the first 1 million
dollars each year.
○If the revenues are more than a million dollars, Play Store charges 30% for everything
beyond the million, while Apple shall levy 30% on the whole amount.
○Although an attractive prospect, it limits your audience substantially. Developers
should adopt this model only after proper market research based on extensive data.
○There are also Commissioned app, Sponsorships, etc.
04/25/2023 48
Questions?
04/25/2023
Thank You
04/25/2023