0% found this document useful (0 votes)
24 views20 pages

Mobile Application Architecture

Mobile Application Architecture

Uploaded by

Hellen Mwende
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views20 pages

Mobile Application Architecture

Mobile Application Architecture

Uploaded by

Hellen Mwende
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Lesson 3

Mobile Application Architecture

Abdulrahman Ahmed
PhD IT(Currently), MSc. IT, MSc. CS & BSc. IT
CONTENT
1. Android Development Environments
2. Mobile Application Architecture
1. ANDROID DEVELOPMENT
ENVIRONMENTS
Android Development Environments
 Known fully as Integrated Development Environments (or IDEs)
 A programming environment that has been packaged as an application
program.

Official IDEs for Mobile OSes


Android Studio
 It is the official IDE for Android application development, based on
IntelliJ IDEA (a Java IDE).
 It includes code templates to help build common app features and rich
layout editor with support for drag-and-drop theme editing.
 It also has built-in support for Google Cloud Platform, making it easy
to integrate Google Cloud Messaging and App Engine.
Xcode
 Includes everything that can be used to create amazing apps for iPhone
and iPad.
 It allows users to build apps and run them directly on their Apple
devices.
 The programming language used is Swift (created by Apple for iOS,
OS X, and watchOS development
Visual Studio
 It is a fully-featured extensible IDE for creating modern applications for
Windows, Android, and iOS, as well as web applications and cloud
services.
Factors to Consider when developing mobile apps
Platforms and Device Compatibility
 Building mobile applications requires more factors to consider when
planning, including which device platform to build first, what mobile
technology option to choose, and what capabilities should the mobile
phone support.
Screen Size
 Designing an app for a device that fits in your pocket requires
simplification and a rethink about navigation.
 While a desktop application may have tabs, options and links on all
sides of the screen and in-line with text, mobile apps require the need
to concentrate on the immediate function, reducing the number of
options to only those needed for the immediate task or feature.
User Interaction
 Manual data entry should be minimized. Options for selecting must be
readily provided instead of asking for specifics through data entry.
Screen Density
 Using hard coded values for pixels and a single set of images will lead to
one (1) of two (2) things on a higher end phone: either your UI will be
up-scaled and fuzzy, or the controls will be too small to allow
comfortable targeting with a finger.
Phone Function Integration
 Smartphones are sophisticated communication devices; making phone
calls is their most basic function.
 While mobile platforms place many limitations on design and content,
they also open up new opportunities that traditional desktops cannot
provide.
Resource Management
 Mobile devices lack the computing power and memory capacity of
most desktop and server systems.
 Developers need to write algorithms and perform code optimization to
support the mobile device capacity because a complex algorithm or
sub-optimal code will drain the battery quickly.
2. MOBILE APPLICATION
ARCHITECTURE
Mobile Application Architecture
• A mobile application will normally be structured as a multi-layered
application consisting of user experience, business, and data layers.
 When developing a mobile application, you may choose to develop a
thin Web-based client or a rich client.
 If you are building a rich client, the business and data services layers
are likely to be located on the device itself.
 If you are building a thin client, the business and data layers will be
located on the server.
Mobile application architecture
An application can consist of basically three layers design. They are,
 Presentation layer.
 Business layer.
 Data layer.

Presentation Layer:
 The presentation layer contains the components that implement and
display the user interface and manage user interaction. This layer
includes controls for user input and display, in addition to components
that organize user interaction.
 The presentation layer will usually include the following:
1. User interface components
2. Presentation logic components
1. User Interface components.
 These are the application's visual elements used to display information
to the user and accept user input.
2. Presentation Logic components.
 Presentation logic is the application code that defines the logical
behavior and structure of the application in a way that is independent
of any specific user interface implementation.
 When implementing the Separated Presentation pattern, the
presentation logic components may include Presenter, Presentation
Model, and ViewModel components.
 The presentation layer may also include Presentation Layer Model
components that encapsulate the data from your business layer, or
Presentation Entity components that encapsulate business logic and
data in a form that is easily consumable by the presentation layer.
Business Layer
 The business layer will usually include the following:
1. Application façade
2. Business Logic component
Application façade.
 This optional component typically provides a simplified interface to the
business logic components, often by combining multiple business
operations into a single operation that makes it easier to use the
business logic.
 It reduces dependencies because external callers do not need to know
details of the business components and the relationships between
them.
Business Logic components.
 Business logic is defined as any application logic that is concerned with
the retrieval, processing, transformation, and management of
application data; application of business rules and policies; and
ensuring data consistency and validity.
 Business logic components can be further subdivided into the
following two categories:
1. Business Workflow components
2. Business Entity components
Business Workflow components.
 After the UI components collect the required data from the user and
pass it to the business layer, the application can use this data to
perform a business process.
 Business workflow components define and coordinate long running,
multistep business processes, and can be implemented using business
process management tools.
Business Entity components.
 Business entities, or more generally business objects,
encapsulate the business logic and data necessary to
represent real world elements, such as Customers or
Orders, within your application.
 They store data values and expose them through
properties; contain and manage business data used by the
application; and provide stateful programmatic access to
the business data and related functionality. Business
entities also validate the data contained within the entity
and encapsulate business logic to ensure consistency and
to implement business rules and behavior.
Data Layer
 The data layer may include the following:
1. Data Access components
2. Service agents
Data Access components.
 These components abstract the logic required to access the underlying
data stores.
 They centralize common data access functionality in order to make the
application easier to configure and maintain.
 Some data access frameworks may require the developer to identify and
implement common data access logic in separate reusable helper or
utility data access components.
 Other data access frameworks, including many Object/Relational
Mapping (O/RM) frameworks, implement such components
automatically, reducing the amount of data access code that the
developer must write.
Service agents.
 When a business component must access data provided by
an external service, you might need to implement code to
manage the semantics of communicating with that
particular service.
 Service agents implement data access components that
isolate the varying requirements for calling services from
your application, and may provide additional services such
as caching, offline support, and basic mapping between the
format of the data exposed by the service and the format
your application requires.
Crosscutting concerns
 The majority of applications design will contain common functionality
that spans layers and tiers.
 This functionality typically supports operations such authentication,
authorization, caching, communication, exception management,
logging and instrumentation, and validation.
 Such functionality is generally described as crosscutting concerns
because it affects the entire application, and should be centralized in
one location in the code where possible.
Exercise
 What is an IDE? Explain any Three in details.
 Explain the factors considered when developing a mobile application.
 Explain the main components found in a data layer.
 Explain the different layers found in a mobile application architecture.
 What are the layers included in a mobile application architecture?
 What is authentication?
 What is validation?
 List and explain five common functionality that majority of
applications design will contain.
Next Session

 Developing Environment for


Mobile Application
The End
Any Questions?

You might also like