Atjaunināt sīkdatņu piekrišanu

E-grāmata: Designing Platform Independent Mobile Apps and Services: Your Idea, on Any Device, Anywhere [Wiley Online]

  • Formāts: 256 pages
  • Izdošanas datums: 08-Nov-2016
  • Izdevniecība: Wiley-Blackwell
  • ISBN-10: 1119060400
  • ISBN-13: 9781119060406
  • Wiley Online
  • Cena: 50,87 €*
  • * this price gives unlimited concurrent access for unlimited time
  • Formāts: 256 pages
  • Izdošanas datums: 08-Nov-2016
  • Izdevniecība: Wiley-Blackwell
  • ISBN-10: 1119060400
  • ISBN-13: 9781119060406
In the mobile age, any time is written to be delivered to a device such as an Android, iPhone or Windows device, three completely separate code bases have had to be written. There are tools and techniques available now that assist with cross platform development to help solve this problem. This book presents a strategy that makes this redevelopment effort minimal, while reaching the entire mobile, wearable, embedded and traditional device market. The book's emphasis is on internet accessible services, and creating value at the service layer, which makes the device specific code very minimal and easy to maintain going forward. This strategy of Device Independent Delivery of Cloud Services will show readers how to create value in their services, and be able to improve and deliver them to any device anywhere, now or in the future with minimal effort.
List of Figures
xi
List of Tables
xiii
Preface xv
Acknowledgments xvii
Chapter 1 The Mobile Landscape
1(14)
1.1 Introduction
1(1)
1.2 Previous Attempts at Cross-Platform
2(7)
1.2.1 Java
2(3)
1.2.2 Early Web Apps
5(2)
1.2.3 Multiple Codebases
7(2)
1.3 Breadth Versus Depth
9(1)
1.4 The Multi-Platform Targets
10(5)
1.4.1 Traditional
10(1)
1.4.2 Mobile
11(1)
1.4.3 Wearables
12(1)
1.4.4 Embedded
13(2)
Chapter 2 Platform-Independent Development Technologies
15(49)
The Golden Rule
15(1)
2.1 Vendor Lock-In
16(2)
2.2 Recommended Standards and Guidelines
18(45)
2.2.1 Respecting the Device
18(1)
2.2.2 Respecting the Network
19(2)
2.2.3 Communication Protocols
21(10)
2.2.4 Data Formats
31(9)
2.2.5 Mobile User Experience Guidelines
40(5)
2.2.6 Authentication
45(2)
2.2.7 Dealing with Offline and Partially Connected Devices
47(16)
2.3 Wrapping Up
63(1)
Chapter 3 Platform-Independent Development Strategy
64(8)
3.1 High-Level App Development Flow
64(1)
3.2 Five-Layer Architecture
65(1)
3.3 Five-Layer Architecture Detail
66(6)
3.3.1 The User Interface Layer
66(2)
3.3.2 The Service Interface Layer
68(1)
3.3.3 The Service Layer
69(1)
3.3.4 The Data Abstraction Layer
70(1)
3.3.5 The Data Layer
70(2)
Chapter 4 The User Interface Layer
72(7)
4.1 Porting Versus Wrapping
72(1)
4.2 Multi-Client Development Tools
73(3)
4.2.1 PhoneGap (http://phonegap.com/)
73(1)
4.2.2 Xamarin (http://xamarin.com/)
74(1)
4.2.3 Unity (http://www.unity3d.com)
75(1)
4.2.4 Visual Studio
76(1)
4.3 Cross-Platform Languages
76(1)
4.4 Avoid Writing for the Least Common Denominator
77(1)
4.5 Wrapping Up
78(1)
Chapter 5 The Service Interface Layer
79(35)
5.1 Message Processing
79(3)
5.1.1 Push versus Pull
80(1)
5.1.2 Partially Connected Scenarios
81(1)
5.2 Message Processing Patterns
82(3)
5.3 High-Volume Messaging Patterns
85(6)
5.3.1 Queue Services and Microsoft Azure Event Hubs
86(3)
5.3.2 Web Sockets
89(2)
5.4 High-Volume Push Notifications
91(6)
5.4.1 Third Party Notification Hubs
93(4)
5.5 Message Translation and Routing
97(14)
5.5.1 Message Translation
97(6)
5.5.2 Message Routing
103(5)
5.5.3 Handling Large Amounts of Data
108(3)
5.6 Wrapping Up
111(3)
Chapter 6 The Service Layer
114(40)
6.1 Thinking in Nodes
114(3)
6.1.1 Scale Out and Scale Up
114(1)
6.1.2 Scale Out versus Scale Up
114(3)
6.2 Planning for Horizontal Scaling
117(4)
6.2.1 Node Sizing
117(3)
6.2.2 Statelessness
120(1)
6.3 Designing Service Layers for Mobile Computing
121(3)
6.3.1 Service Componentization
122(2)
6.4 Implementation Abstraction
124(3)
6.4.1 Service Interface Abstraction
124(3)
6.5 Using CQRS/ES for Service Implementation
127(13)
6.5.1 CQRS Overview
127(2)
6.5.2 Why CQRS
129(1)
6.5.3 Being Able to Separate Data Models
129(2)
6.5.4 Aggregates and Bounded Contexts
131(1)
6.5.5 The Read and Write Sides
132(1)
6.5.6 CQRS Communications
132(8)
6.6 Side by Side Multi-Versioning
140(1)
6.7 Service Agility
141(1)
6.8 Consumer, Business, and Partner Services
141(1)
6.9 Portable and Modular Service Architectures
142(10)
6.9.1 Designing Pluggable Services
145(2)
6.9.2 Swapping Services
147(4)
6.9.3 Deployment and Hosting Strategies
151(1)
6.10 Wrapping up
152(2)
Chapter 7 The Data Abstraction Layer
154(22)
7.1 Objects to Data
154(3)
7.2 Using the DAL with External Services
157(2)
7.3 Components of a DAL
159(15)
7.3.1 Data Mapper
160(1)
7.3.2 Query Mapper
161(5)
7.3.3 Repository
166(2)
7.3.4 Serializers
168(1)
7.3.5 Storage Consideration
169(3)
7.3.6 Cache
172(2)
7.4 Wrapping Up
174(2)
Chapter 8 The Data Layer
176(28)
8.1 Overview
177(1)
8.2 Business Rules in the Data Layer
178(1)
8.3 Relational Databases
178(3)
8.4 NoSQL Databases
181(16)
8.4.1 Key Value Database
183(3)
8.4.2 Document Database
186(3)
8.4.3 Column Family Databases
189(5)
8.4.4 Graph Database
194(3)
8.4.5 How to Choose?
197(1)
8.5 File Storage
197(3)
8.6 Blended Approach
200(3)
8.6.1 The Polyglot Data Layer
201(2)
8.7 Wrapping up
203(1)
Chapter 9 Strategies For Ongoing Improvement
204(17)
9.1 Feature Expansion
204(3)
9.1.1 User Interface
206(1)
9.1.2 Service Interface Layer
206(1)
9.1.3 Service Layer
206(1)
9.1.4 Data Abstraction Layer
206(1)
9.1.5 Data Layer
207(1)
9.2 Data Collection Matters
207(2)
9.3 Multi-Versioning
209(3)
9.4 Version Retirement
212(4)
9.4.1 Scale Back
214(2)
9.5 Client Upgrades
216(4)
9.6 Wrapping Up
220(1)
Chapter 10 Conclusion
221(4)
References 225(4)
Index 229
Rocky Heckman works for Microsoft Corporation. He acts as an architectural advisor and technical consultant to Microsoft's partners and customers on the topics of HoloLens, Windows Azure, Windows 10 Universal Apps, and SQL server. He received his bachelor's degree in software engineering at the University of Canberra, Australia, and certification in C++ programming, object-oriented programming, and project management at the Colorado Technical University.