Preface xvii
Acknowledgments xxi
About the Author xxiii
Chapter 1: Mobile: The New Generation of Information Technology 1
Why Businesses Are Adopting Mobile Applications 1
Driving Business Process Innovation 1
A Formula for Designing Engaging Systems 2
Unique Challenges for Development of Engaging Applications 4
Form Factors and User Input Technology 4
Usability and User Interaction Design 4
Choice of Implementation Technology 5
Mobile Application Build and Delivery 6
Testing 7
Enterprise Mobile Development 7
Summary 8
Chapter 2: Mobile Development Lifecycle Overview 9
Introduction 9
DevOps and Enterprise Mobile Development Lifecycle Overview 11
A DevOps Approach Is Core to Delivering Client Value 11
One Essential View of DevOps: The Mobile Developer Perspective 12
Sprint 1: “Hello World”--Initial Operating Capability and Prototype 13
Design--The Big Picture 14
Integrate: Enterprise Services and Data 17
Test: Manual Testing Is Better than No Testing 18
Test: Simulate/Preview 18
Sprint 2: “Hello DevOps!”--Improve Developer Productivity 19
Develop: Productivity with Wizards and Mobile Platform Portability 19
Instrument: Quality Assurance and Testing “In the Wild” 19
Test: Code-Centric and Unit Testing 20
Deploy: Automate Your Deployment Pipeline 21
Sprint 3: “Software Delivery Is a Team Sport!” 23
Develop: Agile Planning 23
Develop: Work Items (Defects, Enhancement Requests) 23
Develop: Application Lifecycle Management (ALM) Imperatives 24
Test: Improving Manual, Automating User Interface Tests, and Test Data Management 26
Sprint 4: “Ruggedized for the AppStore” 27
Test: “FURPS” and Virtualization 27
Scan and Certify 28
Obtain Insight: Application Quality Feedback and Analytics 28
Sprint 5: “Optimizing Enterprise DevOps” 29
Integrate: Enterprise Developer Integration 29
Instrument and Obtain Insight: Customer Experience (CX) and Campaign Management 31
Obtain (AppStore) Insight: Mobile Quality Assurance 32
Manage: Application Versions, Updates, and More! 33
Summary 35
Chapter 3: Design Quality Is Crucial, Make the Investment Up-Front 37
Overview 37
Why Is Design Important? 37
Scope of Design in Mobile App Development 37
Design Research 38
Information Architecture 38
Interaction Design 38
Visual Design 38
Overarching Design Principles and Guidelines 39
Discover, Try, and Buy 39
Get Started 39
Everyday Use 40
Manage and Upgrade 42
Leverage and Extend 42
Get Support 42
Designing for Enterprise Mobile 42
Designing the IBM Way 42
Core Practices 43
Some Design Methods 45
Understand 45
Explore 46
Prototype 50
Evaluate 53
Summary 54
Chapter 4: Mobile Application Development 55
The Mobile App 55
Factors for Choosing 56
How Should I Build Applications? 58
The Case for Cloud 58
Mobile App Architectural Components 61
Mobile Device Components 61
Public Network Components 63
Provider Cloud Service Components 63
Enterprise Network Components 68
Complete Picture 68
Mobile App Flow 68
Mobile App Deployment Considerations 71
Summary 74
Chapter 5: Mobile Enterprise--Beyond the Mobile End-Point 75
Building Mobile Apps Powered by Enterprise Backend 75
Connecting the Mobile App with Enterprise IT Services and Data 76
Types of IT Backends to Integrate from Mobile Apps 78
Type of API Protocols 80
Security Integration 81
IBM DataPower XG45 Security Gateway 84
Mobile Devices Security Considerations 86
Loss and Theft 87
Malware 89
Phishing 90
Understanding the Worklight Security Integration Framework 90
Secured Data Store and Synchronization 92
Enterprise Mobile Application Management and Device Management 92
Special Challenges in Managing Mobile Applications and Devices 93
Example Product: IBM MaaS360 94
Architectural Choices for Secured Enterprise Connectivity 95
Summary 98
Chapter 6: A Comprehensive Approach to Testing of Mobile Applications 99
Why Is Quality Essential? 99
When Should Quality Be in Focus? 100
What Is the Cost of Quality? 100
Automated versus Manual Testing 100
Preproduction versus Postrelease 101
Automated Mobile App Testing Considerations 103
Test Devices 103
Emulators and Simulators 103
Device Clouds 103
Crowd-Sourced Testing 104
Using Service Virtualization to Isolate Mobile Code 105
Mobile Test Automation Techniques 105
Mobile App Programmatic Instrumentation 105
Random Generated Mobile Tests 106
Image Recognition Automated Mobile Tests 107
Making Manual Testing More Effective 107
Crash Data Capture and Analysis 108
Performance Testing 109
Load and Stress Performance Testing 109
Mobile Client Resource Metrics 109
User Sentiment as a Measure of Quality 110
Summary 111
Chapter 7: Best Practices of Mobile DevOps 113
What Is DevOps? 113
Some Definitions 113
The IBM DevOps Solution 115
Plan and Measure 115
Develop and Test 116
Release and Deploy 116
Monitor and Optimize 116
DevOps Best Practices 116
Plan and Track Everything 116
Dashboard Everything 117
Version Everything 117
Automate Everything 118
Test Everything 118
Monitor Everything 118
Mobile DevOps Challenges 119
Fragmented Platforms 119
Mobile Applications Front a Complex Enterprise Back Office 119
App Stores Add Additional Asynchronous Deployment Step 121
Security, Code Signing, and Keystores 121
Testing 121
Mobile DevOps Best Practices 121
Practice Continuous Integration/Delivery and Automate Builds and Deployments 121
Test Each Build 122
Simulate Backend Services to Expand Testing Environment Availability 123
Monitor Deployed Application and Backend Server Performance 124
Centralize Governance of Provisioning Profiles, Certificates, and API Keys 126
Use a Private App Store to Test Deployment Devices 126
Convert Real User Feedback to Enhancement 126
Summary 127
Chapter 8: Conclusions and Further Readings 129
Conclusions 129
Further Readings 130
Chapter 2: Development Lifecycle 130
Chapter 3: Design Related 131
Chapter 4: Mobile Development 131
Chapter 5: Mobile Server 132
Chapter 6: Mobile Quality 132
Chapter 7: Mobile DevOps 133
Index 135