Mobile Application Architecture
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.
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