Chapter
1.4 The Multi-Platform Targets
2 Platform-Independent Development Technologies
2.2 Recommended Standards and Guidelines
2.2.1 Respecting the Device
2.2.2 Respecting the Network
2.2.3 Communication Protocols
2.2.5 Mobile User Experience Guidelines
2.2.7 Dealing with Offline and Partially Connected Devices
3 Platform-Independent Development Strategy
3.1 High-Level App Development Flow
3.2 Five-Layer Architecture
3.3 Five-Layer Architecture Detail
3.3.1 The User Interface Layer
3.3.2 The Service Interface Layer
3.3.4 The Data Abstraction Layer
4 The User Interface Layer
4.1 Porting Versus Wrapping
4.2 Multi-Client Development Tools
4.2.1 PhoneGap (http:phonegap.com)
4.2.2 Xamarin (http:xamarin.com)
4.2.3 Unity (http:www.unity3d.com)
4.3 Cross-Platform Languages
4.4 Avoid Writing for the Least Common Denominator
5 The Service Interface Layer
5.1.2 Partially Connected Scenarios
5.2 Message Processing Patterns
5.3 High-Volume Messaging Patterns
5.3.1 Queue Services and Microsoft Azure Event Hubs
5.4 High-Volume Push Notifications
5.4.1 Third Party Notification Hubs
5.5 Message Translation and Routing
5.5.1 Message Translation
5.5.3 Handling Large Amounts of Data
6.1.1 Scale Out and Scale Up
6.1.2 Scale Out versus Scale Up
6.2 Planning for Horizontal Scaling
6.3 Designing Service Layers for Mobile Computing
6.3.1 Service Componentization
6.4 Implementation Abstraction
6.4.1 Service Interface Abstraction
6.5 Using CQRS/ES for Service Implementation
6.5.3 Being Able to Separate Data Models
6.5.4 Aggregates and Bounded Contexts
6.5.5 The Read and Write Sides
6.5.6 CQRS Communications
6.6 Side by Side Multi-Versioning
6.8 Consumer, Business, and Partner Services
6.9 Portable and Modular Service Architectures
6.9.1 Designing Pluggable Services
6.9.3 Deployment and Hosting Strategies
7 The Data Abstraction Layer
7.2 Using the DAL with External Services
7.3.5 Storage Consideration
8.2 Business Rules in the Data Layer
8.4.3 Column Family Databases
8.6.1 The Polyglot Data Layer
9 Strategies for Ongoing Improvement
9.1.2 Service Interface Layer
9.1.4 Data Abstraction Layer
9.2 Data Collection Matters