Section 2. Overview About App Architecture - EN
Section 2. Overview About App Architecture - EN
Section 2. Overview About App Architecture - EN
app development
Overview of mobile app
architecture
Outline
• System architecture
• Cross-platform architecture
2
SYSTEM ARCHITECTURE
3
History of the mobile programming
industry
• Mobile devices are increasingly experiencing design
changes:
• Bag phone.
• Next is the generation that can be held in the palm of your
hand
• Folding case phones
• Full keyboard
• Smartphone with touch screen and very few push buttons
4
History of Mobile Programming
(2)
• Motorola DynaTAC 8000X
• 1983
• 13 x 1.75 x 3.5
• 2.5 pounds
• $3,995
• + Monthly Fee
5
History of Mobile Programming
(3)
From the rough bricks, what has made us now care about the user experience on mobile:
• The cheaper price makes it no longer a luxury.
• The battery lasts longer, the size is more compact, the touch technology is more
sensitive, the screen is more shatterproof, scratch-resistant ...
• Mobile hardware manufacturers don't want and don't anymore
• The ability to write responsive applications for users too.
• However, hardware manufacturers do not want to share too much technology secrets
to manufacture their hardware
• From there, standards have emerged that are agreed between
hardware
manufacturers and application developers.
• The first is mobile Web standards.
6
History of the Mobile Programming Industry
(4)
7
History of Mobile Programming (5)
• Mobile payments at the time (and are still used today) were SMS, with
messages called value added (VAT)
• Send messages to a certain number to be served with a skyrocketing
message fee compared to normal news
• There are units that accept payment via scratch card or Web charging.
• Over time, the demand for phone payments increased as
large companies saw the potential of the phone market (except Microsoft)
• The evolution of hardware makes programming languages for portable
• It's not a nightmare like J2ME anymore.
8
History of Mobile Programming
(6)
• Before 2010, it can be said that Nokia took the throne in the market global phone
section in general and Vietnam in particular
• Other manufacturers equally split the remaining market share such as Blackberry,
• Samsung, HTC...
• Every manufacturer tries its own operating system, and they doesn't seem to
be going all out to develop them.
• Many operating systems were born, but developers still very good with his work
(Windows CE, Windows Mobile, Linux, Symbian...)
• Things changed completely when the iPhone came out.
9
History of Mobile Programming (7)
There used to be three big players in the market in the production of mobile applications
and mobile devices:
• Microsoft:
• With Nokia's mobile division, try with the Windows Universal philosophy.
• Due to delays, the Windows Phone product eventually failed
• Apple:
• It has always been the pinnacle of hardware design, application development
and business in mobile
• Google:
• Still follows the open standard criteria of the original Android
• As one of the largest corporations in the world, still successful in this phone
segment
10
History of Mobile Programming (8)
13
Software Architecture (2)
1
5 14
Software Architecture (3)
15
Software Architecture (4)
Model/View/ViewModel
• quite similar to MVC
• ViewModel: Contains models and prepares observation data for the
View. It provides mechanisms for transferring data from the
View to Model.
• An object-side update of a class in the View group updates the object-
side data of the class in the Model group and vice versa (Data
Binding)
1
7 16
Software Architecture (5)
• Client/server architecture
• MVC/MVVM architecture is applicable to applications without an Internet
connection
• The client/server architecture refers to applications that have access to
external
computers, via HTTP requests or sockets or webservices
• In general, applications that want to be used by users for a long time, cannot fail
to follow the client/server architecture.
• However, because the Internet connection still has unstable times or consumes
resources (memory, capacity, processing speed ...), it is necessary to store data
locally at the device.
17
Software Architecture (6)
18
2
0 19
Android Application Architecture
20
Android App Architecture
21
Android Application Architecture (3)
• Each Android app can still share data with other apps
• Different applications can still share user_id if they share the same digital
certificate.
• Each application can set up data sharing for other applications based on
modifying the XML permission in the manifest file.
• Each application can still have access to the address, phone status,
SMS ... when the user agrees to grant permissions.
22
Android Application Architecture (4)
23
Android Application Architecture
24
iOS App Architecture
2
8 25
iOS Application Architecture
2
9 26
iOS App Architecture
3
0 27
iOS App Architecture
3
0 28
iOS App
• MVC in iOS: Architecture
• Still Model-View-Controller is a basic application design methodology for mobile
devices
• Due to Objective-C's object-oriented capabilities, MVC is one of the design
patterns for both iOS and OS X
29
iOS Application Architecture
MVC in iOS:
30
Cross-platform architecture
If cross-platform tools are not used, it is necessary to develop each platform separately
31
Cross-platform architecture
32
Cross-platform architecture
(2)
• The development team needs to answer a few questions themselves
(continued):
• Is it trying to reduce development costs for both platforms?
• Is there currently a development team for several platforms or is there a
team for each platform?
• Who will maintain this system?
• The responses (of the majority of the group surveyed) were:
• Want to serve as many users as possible
• Want the cost to be as cheap as possible
• Want maintenance as easy as possible
• With three criteria: cheap, fast, good, only choose 2.
• Cross-platform applications are generally cheap, fast but not really good
33
Cross-platform architecture
(3)
34
Cross-platform architecture
(4)
35
Cross-platform architecture
(5)
36
Cross-platform architecture
(6)
37
Cross-platform architecture
(7)
38
Cross-platform architecture
(8)
React Native is a framework that allows writing in Javascript to build apps for
iOS and Android.
• Based on Facebook's React library to build app interfaces.
• React Native apps are built by:
• Javascript
• .CSS
• JSL = Javascript + XML
• The javascript source code will be converted to the native code of
the platform.
39
40
Cross-platform architecture
(9)
Flutter is Google's portable toolkit for building apps that work on mobile, web,
and personal computers using Google's Dart programming language.
Flutter has the following main components:
• Flutter engine: written in C++ provides low-level rendering support for
Google's Skia graphics library
• Platform library – written in Dart, provides basic layers of functionality
settings for applications and APIs for communicating with the Flutter
engine
• Widgets - basic interface blocks for UI
41
Cross-platform architecture
(10)
Flutter unlike Xamarin and React Native, it doesn't use the native widgets of each
platform.
• Instead, Flutter uses its own widgets (including components from Material Design
and Cupertino (iOS)), which are curated and rendered to the screen using the Flutter
engine.
• In this respect, Flutter will create less platform-dependent apps than React Native.
42
Cross-platform architecture
(11)
43
Cross-platform architecture
(13)
4
8 44
Scrolling
45
Data logging
46
According to the latest
figures
Biorn-Hansen, Andreas. "Presence and Performance of Mobile Development Approaches." PhD diss., Brunel University
London, 2021.
47