Designing Platform Independent Mobile Apps and Services

Author: Rocky Heckman  

Publisher: John Wiley & Sons Inc‎

Publication year: 2016

E-ISBN: 9781119060154

P-ISBN(Paperback): 9781119060406

P-ISBN(Hardback):  9781119060147

Subject: TN929.5 mobile communication

Keyword: mobile application development cloud computing app services mobile computing and app development

Language: ENG

Access to resources Favorite

Disclaimer: Any content in publications that violate the sovereignty, the constitution or regulations of the PRC is not accepted or approved by CNPIEC.

Description

Presents strategies to designing platform agnostic mobile apps connected to cloud based services that can handle heavy loads of modern computing

  • Provides development patterns for platform agnostic app development and technologies
  • Includes recommended standards and structures for easy adoption
  • Covers portable and modular back-end architectures to support service agility and rapid development

Chapter

1.2.3 Multiple Codebases

1.3 Breadth Versus Depth

1.4 The Multi-Platform Targets

1.4.1 Traditional

1.4.2 Mobile

1.4.3 Wearables

1.4.4 Embedded

2 Platform-Independent Development Technologies

2.1 Vendor Lock-In

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.4 Data Formats

2.2.5 Mobile User Experience Guidelines

2.2.6 Authentication

2.2.7 Dealing with Offline and Partially Connected Devices

2.3 Wrapping Up

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.3 The Service Layer

3.3.4 The Data Abstraction Layer

3.3.5 The Data 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.2.4 Visual Studio

4.3 Cross-Platform Languages

4.4 Avoid Writing for the Least Common Denominator

4.5 Wrapping Up

5 The Service Interface Layer

5.1 Message Processing

5.1.1 Push versus Pull

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.3.2 Web Sockets

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.2 Message Routing

5.5.3 Handling Large Amounts of Data

5.6 Wrapping up

6 The Service Layer

6.1 Thinking in Nodes

6.1.1 Scale Out and Scale Up

6.1.2 Scale Out versus Scale Up

6.2 Planning for Horizontal Scaling

6.2.1 Node Sizing

6.2.2 Statelessness

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.1 CQRS Overview

6.5.2 Why CQRS

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.7 Service Agility

6.8 Consumer, Business, and Partner Services

6.9 Portable and Modular Service Architectures

6.9.1 Designing Pluggable Services

6.9.2 Swapping Services

6.9.3 Deployment and Hosting Strategies

6.10 Wrapping up

7 The Data Abstraction Layer

7.1 Objects to Data

7.2 Using the DAL with External Services

7.3 Components of a DAL

7.3.1 Data Mapper

7.3.2 Query Mapper

7.3.3 Repository

7.3.4 Serializers

7.3.5 Storage Consideration

7.3.6 Cache

7.4 Wrapping Up

8 THE DATA LAYER

8.1 Overview

8.2 Business Rules in the Data Layer

8.3 Relational Databases

8.4 NoSQL Databases

8.4.1 Key Value Database

8.4.2 Document Database

8.4.3 Column Family Databases

8.4.4 Graph Database

8.4.5 How to Choose?

8.5 File Storage

8.6 Blended Approach

8.6.1 The Polyglot Data Layer

8.7 Wrapping up

9 Strategies for Ongoing Improvement

9.1 Feature Expansion

9.1.1 User Interface

9.1.2 Service Interface Layer

9.1.3 Service Layer

9.1.4 Data Abstraction Layer

9.1.5 Data Layer

9.2 Data Collection Matters

9.3 Multi-Versioning

9.4 Version Retirement

9.4.1 Scale Back

9.5 Client Upgrades

9.6 Wrapping Up

10 Conclusion

References

Index

EULA

The users who browse this book also browse