Designing Platform Independent Mobile Apps and Services

個数:
電子版価格
¥7,441
  • 電書あり

Designing Platform Independent Mobile Apps and Services

  • 提携先の海外書籍取次会社に在庫がございます。通常3週間で発送いたします。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合が若干ございます。
    2. 複数冊ご注文の場合、分割発送となる場合がございます。
    3. 美品のご指定は承りかねます。
  • 【入荷遅延について】
    世界情勢の影響により、海外からお取り寄せとなる洋書・洋古書の入荷が、表示している標準的な納期よりも遅延する場合がございます。
    おそれいりますが、あらかじめご了承くださいますようお願い申し上げます。
  • ◆画像の表紙や帯等は実物とは異なる場合があります。
  • ◆ウェブストアでの洋書販売価格は、弊社店舗等での販売価格とは異なります。
    また、洋書販売価格は、ご注文確定時点での日本円価格となります。
    ご注文確定後に、同じ洋書の販売価格が変動しても、それは反映されません。
  • 製本 Hardcover:ハードカバー版/ページ数 230 p.
  • 言語 ENG
  • 商品コード 9781119060147
  • DDC分類 005.25

Full 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

Contents

LIST OF FIGURES xi

LIST OF TABLES xiii

PREFACE xv

ACKNOWLEDGMENTS xvii

CHAPTER 1 THE MOBILE LANDSCAPE 1

1.1 Introduction 1

1.2 Previous Attempts at Cross-Platform 2

1.2.1 Java 2

1.2.2 Early Web Apps 5

1.2.3 Multiple Codebases 7

1.3 Breadth Versus Depth 9

1.4 The Multi-Platform Targets 10

1.4.1 Traditional 10

1.4.2 Mobile 11

1.4.3 Wearables 12

1.4.4 Embedded 13

CHAPTER 2 PLATFORM-INDEPENDENT DEVELOPMENT TECHNOLOGIES 15

The Golden Rule 15

2.1 Vendor Lock-In 16

2.2 Recommended Standards and Guidelines 18

2.2.1 Respecting the Device 18

2.2.2 Respecting the Network 19

2.2.3 Communication Protocols 21

2.2.4 Data Formats 31

2.2.5 Mobile User Experience Guidelines 40

2.2.6 Authentication 45

2.2.7 Dealing with Offline and Partially Connected Devices 47

2.3 Wrapping Up 63

CHAPTER 3 PLATFORM-INDEPENDENT DEVELOPMENT STRATEGY 64

3.1 High-Level App Development Flow 64

3.2 Five-Layer Architecture 65

3.3 Five-Layer Architecture Detail 66

3.3.1 The User Interface Layer 66

3.3.2 The Service Interface Layer 68

3.3.3 The Service Layer 69

3.3.4 The Data Abstraction Layer 70

3.3.5 The Data Layer 70

CHAPTER 4 THE USER INTERFACE LAYER 72

4.1 Porting Versus Wrapping 72

4.2 Multi-Client Development Tools 73

4.2.1 PhoneGap (http://phonegap.com/) 73

4.2.2 Xamarin (http://xamarin.com/) 74

4.2.3 Unity (http://www.unity3d.com) 75

4.2.4 Visual Studio 76

4.3 Cross-Platform Languages 76

4.4 Avoid Writing for the Least Common Denominator 77

4.5 Wrapping Up 78

CHAPTER 5 THE SERVICE INTERFACE LAYER 79

5.1 Message Processing 79

5.1.1 Push versus Pull 80

5.1.2 Partially Connected Scenarios 81

5.2 Message Processing Patterns 82

5.3 High-Volume Messaging Patterns 85

5.3.1 Queue Services and Microsoft Azure Event Hubs 86

5.3.2 Web Sockets 89

5.4 High-Volume Push Notifications 91

5.4.1 Third Party Notification Hubs 93

5.5 Message Translation and Routing 97

5.5.1 Message Translation 97

5.5.2 Message Routing 103

5.5.3 Handling Large Amounts of Data 108

5.6 Wrapping Up 111

CHAPTER 6 THE SERVICE LAYER 114

6.1 Thinking in Nodes 114

6.1.1 Scale Out and Scale Up 114

6.1.2 Scale Out versus Scale Up 114

6.2 Planning for Horizontal Scaling 117

6.2.1 Node Sizing 117

6.2.2 Statelessness 120

6.3 Designing Service Layers for Mobile Computing 121

6.3.1 Service Componentization 122

6.4 Implementation Abstraction 124

6.4.1 Service Interface Abstraction 124

6.5 Using CQRS/ES for Service Implementation 127

6.5.1 CQRS Overview 127

6.5.2 Why CQRS 129

6.5.3 Being Able to Separate Data Models 129

6.5.4 Aggregates and Bounded Contexts 131

6.5.5 The Read and Write Sides 132

6.5.6 CQRS Communications 132

6.6 Side by Side Multi-Versioning 140

6.7 Service Agility 141

6.8 Consumer, Business, and Partner Services 141

6.9 Portable and Modular Service Architectures 142

6.9.1 Designing Pluggable Services 145

6.9.2 Swapping Services 147

6.9.3 Deployment and Hosting Strategies 151

6.10 Wrapping up 152

CHAPTER 7 THE DATA ABSTRACTION LAYER 154

7.1 Objects to Data 154

7.2 Using the DAL with External Services 157

7.3 Components of a DAL 159

7.3.1 Data Mapper 160

7.3.2 Query Mapper 161

7.3.3 Repository 166

7.3.4 Serializers 168

7.3.5 Storage Consideration 169

7.3.6 Cache 172

7.4 Wrapping Up 174

CHAPTER 8 THE DATA LAYER 176

8.1 Overview 177

8.2 Business Rules in the Data Layer 178

8.3 Relational Databases 178

8.4 NoSQL Databases 181

8.4.1 Key Value Database 183

8.4.2 Document Database 186

8.4.3 Column Family Databases 189

8.4.4 Graph Database 194

8.4.5 How to Choose? 197

8.5 File Storage 197

8.6 Blended Approach 200

8.6.1 The Polyglot Data Layer 201

8.7 Wrapping up 203

CHAPTER 9 STRATEGIES FOR ONGOING IMPROVEMENT 204

9.1 Feature Expansion 204

9.1.1 User Interface 206

9.1.2 Service Interface Layer 206

9.1.3 Service Layer 206

9.1.4 Data Abstraction Layer 206

9.1.5 Data Layer 207

9.2 Data Collection Matters 207

9.3 Multi-Versioning 209

9.4 Version Retirement 212

9.4.1 Scale Back 214

9.5 Client Upgrades 216

9.6 Wrapping Up 220

CHAPTER 10 CONCLUSION 221

REFERENCES 225

INDEX 229