Mobile Software Design Patterns and Architecture

Course#: BSMD1140 - Also available as a public course - Course Fee £ 895

About this Course

Course Type Course Code Duration
Mobile Development BSMD1140 3 Days

As a part of the mobile strategy, enterprises need to address all major mobile platforms, like Android and iOS (iPhone, iPad etc.). They need to make their core data and services available in these platforms. This course teaches students how to come up with a single vision of a mobile strategy and then implement it in Android and iOS. This course requires an Android development training course or iOS development training course as a pre-req.

Why Attend this Course?

This course teaches software patterns and best practices in mobile development. A pattern is a well regarded solution for a commonly occurring problem. After taking this class, students will be able to quickly come up with good solutions for most common problems in mobile application development.

Note: The contents of this course is not specific to any mobile OS. The hands on lab exercises can be taken in either Android or Apple iOS or both. Please let your sales representative know about your preference.

What Makes this Course Stand Apart?

This is a highly interactive Hands on courses with the options of the Accelerator Plus1 Workshop.

Lot of demos, practical exercises and samples. Very strong presentation skill of the trainer. Good balance between theory and practice application.

What you will Learn?

Upon completion of this course, you will be able to:

Application lifecycle patterns
User interface patterns
Business tier patterns
Notification patterns
Local data storage patterns
Location based services patterns
Background task processing patterns
Multimedia patterns


Architects and developers who are responsible for designing the architecture of mobile applications. Developers looking for more in-depth coverage of the API should consider Android Programming or  iOS Programming first courses.


For Android based hands on exercises, you must be able to read and understand Java. Basic understanding of the Android platform is helpful but not necessary. For iOS based hands on exercises, you should be able to read and understand Objective-C. Basic knowledge of the iOS API is helpful but not necessary.

Course Outline

Chapter 1. Introduction to Software Design Patterns

Software Design Pattern
History of Design Pattern
Describing a Pattern
Risks and Criticisms

Chapter 2. Mobile Application Architecture

The Model View Controller (MVC) Pattern
Advantages of MVC
The Model Layer
Controller Responsibilities
Controller in Android
View Layer in Android
Model Layer Issues in Mobile Applications
Controller Layer Issues
View Layer Issues
Cross Cutting Issues
Mobile Architecture and Pattern Resources

Chapter 3. Application Lifecycle Patterns

One Time Application Initialization
Implementation: Android Application Initialization
Per Screen Initialization
Implementation: Android Activity Initialization
Reduce Memory and CPU Usage from Unmapped Screen
Implementation: Android Unmapped Activity
Trapping Low Memory Situation
Implementation: Android Low Memory Warning

Chapter 4. Basic Presentation Tier Patterns

Usage Pattern Based UI Design
Tabbed Interface Pattern
Tabbed Interface in Android
Vertically Scrollable List Pattern
Scrollable List in Android
Master Detail Navigation Pattern
Example Navigation
Navigation in Android
Split View Pattern
Android: Implement Split View

Chapter 5. Basic Model Layer Patterns and Architecture

Single Tier Architecture
Two Tier Architecture
Three Tier Architecture
Facade Pattern
Application Service Pattern
Data Access Object (DAO)
Data Transfer Object (DTO) Pattern
Android Data Storage Options
Service Invocation Pattern
Android – Making a GET Request
Android – Making a POST Request
Choosing a Data Format
Android XML Parsing Options
Authentication Issues
Android – Using Basic Authentication
Android – Using Custom Authentication

Chapter 6. Background Processing Patterns

Asynchronous Task Execution Pattern
Task Execution Architecture
Android: Asynchronous Task Execution
The AsyncTask API
Doing the Work
Starting Work
Updating GUI From the Task
Canceling a Task
Off Screen Work Pattern
Android: Implement a Service
Creating a Service
Starting and Stopping a Service

Chapter 7. Advanced Presentation Tier Patterns

Device Dimension Specific UI Pattern
Android: Dimension Specific UI
Handling Orientation Change
Android: Handling Orientation Change
Toolbar Pattern
Android: Toolbar
Search Interface Pattern
Android: Search Interface
Pagination Pattern
Detail Iteration Pattern
Loading Images from the Internet

Chapter 8. Advanced Model Layer Patterns

Network Data Caching Pattern
Implementing Caching
Offline Execution Pattern
Store and Forward Pattern
Data Synchronization Pattern
Simple Data Synchronization Algorithm
Sharing Content with Other Applications
Android: Sharing Content with Other Applications
Allow Sharing Content to Your Application
Android: Sharing Content to Your Application

Chapter 9. Location Based Services Patterns

Obtaining Current Location
Android: Obtaining Current Location
Points of Interest (POI) Search Pattern
Spatial Search
Proximity Alert Pattern
Geocoding Pattern
Reverse Geocoding Pattern
Map View Pattern
One Click Driving Direction Pattern
Geo Tagging Pattern

Chapter 10. Mobile Anti-patterns

What are Anti-patterns?
Slow Application Start Up
Uncooperative Applications
Obtrusive Notifications
Excessive Authentication Restriction
Excessive Presumption
Excessive Network Usage
No Offline Support
Improper Orientation Support
Hidden Background Activity
Unique UI Behavior


Start typing and press Enter to search