Course Content
Introduction to Software Design Patterns
- Software Design Pattern
- History of Design Pattern
- Describing a Pattern
- Risks and Criticisms
- Resources
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
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
Basic Presentation Tier Patterns
- Introduction
- 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
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
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
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
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 Participantsr Application
- Android: Sharing Content to Participantsr Application
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
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