Table of Contents

Open all
Close all
Introduction
17
Acknowledgments
19
PART I Getting Started
21
1 Introduction to Mobile App Development
23
1.1 The Mobile Market and SAP
23
1.1.1 Growth of Smart Devices
23
1.1.2 SAP and Mobility
26
1.2 Mobile Devices and Data Sources
27
1.2.1 Device Platforms
27
1.2.2 Backend Data Sources
30
1.3 Types of Mobile Apps
32
1.3.1 Game Apps
32
1.3.2 Utility Apps
32
1.3.3 Real-Time Apps
33
1.4 Types of Mobile App Development
34
1.4.1 Native App Development
34
1.4.2 Web App Development
35
1.4.3 Hybrid App Development
36
1.5 Introduction to SAP Mobile Platform
36
1.5.1 Architecture
37
1.5.2 Mobile App Development for SAP Mobile Platform
39
1.6 Summary
47
2 Introduction to Sybase Unwired Platform
49
2.1 Sybase Mobile SDK
50
2.1.1 Unwired Workspace
51
2.1.2 Mobile SDK Library: Object API
53
2.1.3 Mobile SDK Library: OData
54
2.2 Unwired Platform Runtime
55
2.2.1 DMZ
56
2.2.2 Unwired Server
58
2.2.3 SAP Afaria Server
61
2.2.4 Sybase Control Center (SCC)
62
2.3 Summary
62
3 Installing the Sybase Unwired Platform Runtime
63
3.1 Choosing the Unwired Platform Landscape
63
3.1.1 Single-Server Installation
63
3.1.2 Simple Load-Balancing Cluster
64
3.1.3 Standard Microsoft Failover Cluster
65
3.1.4 Microsoft Failover Cluster with Shared Hosts
66
3.2 Choosing Licensing Options
66
3.2.1 Types of Environments
67
3.2.2 Product Editions
67
3.2.3 License Types
68
3.2.4 Mapping Environment to Product Editions and License Types
69
3.2.5 Examples: Single-Developer Development and Team Development
70
3.3 Typical Installation Steps
72
3.3.1 Hardware and Software Requirements
72
3.3.2 Generating License Keys
73
3.3.3 Downloading Installation Files
76
3.3.4 Installation of the Unwired Platform Runtime
76
3.4 Sybase Control Center
82
3.4.1 Creating a New Administrative User
84
3.4.2 Creating a New Domain
87
3.5 Summary
89
4 Installing and Connecting the Sybase Mobile SDK
91
4.1 Getting Started
91
4.1.1 Hardware and Software Requirements
92
4.1.2 Backward Compatibility
92
4.2 Steps for Installation and Connection
93
4.2.1 Installing the Unwired Workspace
93
4.2.2 Connecting the Unwired Workspace
95
4.3 Installing and Connecting a Cloud-Based Sybase Unwired Platform
107
4.3.1 Creating the SUP Server Instance
108
4.3.2 Installing the Unwired Workspace
109
4.3.3 Managing the Server
110
4.3.4 Configuring Connections in the Local Unwired Workspace
114
4.4 Summary
116
5 Installing the Hybrid Web Container Application
117
5.1 Android Devices
117
5.1.1 Installing Android Emulators
118
5.1.2 Installing and Configuring the Container Application on the Emulator
127
5.1.3 Installing the Container Application on the Device
133
5.2 iOS Devices
134
5.2.1 Installing the Simulator
134
5.2.2 Installing and Configuring the Container Application on the Simulator
136
5.2.3 Installing the Container Application on the Device
139
5.3 Summary
139
PART II Building Hybrid Apps
141
6 Working with the Hybrid Web Container
143
6.1 Mobile Architectures
143
6.1.1 Native Apps
143
6.1.2 Mobile Web Apps
147
6.1.3 Hybrid Apps
150
6.2 Hybrid Web Container Architecture
153
6.3 Hybrid App Design for the Hybrid Web Container
156
6.4 Hybrid App Patterns for the Hybrid Web Container
160
6.4.1 Online Lookup
160
6.4.2 Server Notification
162
6.4.3 Cached Data
164
6.5 Summary
165
7 Building Mobile Business Objects
167
7.1 Introduction to Mobile Business Objects
168
7.1.1 Defining MBOs
168
7.1.2 MBO Development Concepts
170
7.2 MBO Development Tools
172
7.2.1 Eclipse Menu
172
7.2.2 Workspace Navigator View
174
7.2.3 Enterprise Explorer View
175
7.2.4 Mobile Application Diagram Editor
176
7.2.5 Properties View
176
7.2.6 Palette
177
7.3 Creating MBOs
178
7.3.1 Database MBO
179
7.3.2 Web Service MBO
187
7.3.3 SAP MBO
192
7.4 Controlling Data Flow and Performance
202
7.4.1 Load Arguments
203
7.4.2 Synchronization Parameters
206
7.4.3 Personalization Keys
208
7.4.4 Cache and Cache Groups
210
7.4.5 Join within an MBO
211
7.5 Creating Database Operations
213
7.6 Creating Object Queries
216
7.6.1 FindAll
217
7.6.2 FindByPrimaryKey
218
7.6.3 Designer Developed Queries
218
7.7 Creating Relationships between MBOs
219
7.8 Summary
224
8 Creating Hybrid Apps
225
8.1 Designing a Hybrid App: Process Overview
225
8.1.1 Creating Hybrid Apps
226
8.1.2 Designing Screen Flow
228
8.1.3 Designing Screens
230
8.1.4 Generating Mobile Packages
233
8.1.5 Testing Apps
235
8.2 Designing Screen Flow
236
8.2.1 Flow Design Page Properties
236
8.2.2 Starting Points
239
8.2.3 Drag and Drop
241
8.2.4 Palette Options
246
8.3 Designing Screens
247
8.3.1 Defining General Properties
248
8.3.2 Adding Controls
250
8.3.3 Defining Values for Control Properties
252
8.3.4 Adding Menu Items and Custom Actions
259
8.3.5 Defining Values for Menu Item and Custom Action Properties
260
8.4 Generating a Hybrid App
265
8.5 Summary
268
9 Examples of Hybrid App Development
269
9.1 Employee Database Example
269
9.1.1 MBO
269
9.1.2 Flow Design
270
9.1.3 Screen Design
271
9.1.4 Review App
275
9.2 Customer/Sales Order Database Example
276
9.2.1 MBOs
276
9.2.2 Flow Design
278
9.2.3 Screen Design
280
9.2.4 Review App
285
9.3 General Ledger Account Balances from SAP Example
291
9.3.1 MBO
291
9.3.2 Flow Design
296
9.3.3 Screen Design
296
9.3.4 Review App
300
9.4 Sales Order Notification Database Example
301
9.4.1 MBO
301
9.4.2 Create Hybrid App and Define Server Notification
304
9.4.3 Flow Design
308
9.4.4 Test App
309
9.5 Summary
311
PART III Customizing Hybrid Apps
313
10 Customizing Hybrid App User Interfaces
315
10.1 Generating the Project Code
316
10.1.1 Project Files
319
10.1.2 HTML Files
320
10.1.3 JavaScript Files
322
10.1.4 CSS Files
324
10.2 Adding a jQuery Button Group
325
10.2.1 Modifying the Hybrid App
325
10.2.2 Adding the HTML
326
10.2.3 Hiding the Menu Items
328
10.3 Creating a Custom List
329
10.3.1 Modifying the Hybrid App
329
10.3.2 Adding Custom JavaScript
330
10.4 Displaying a Map Using a jQuery Plug-in
335
10.4.1 Copying the jQuery Map Plug-in
335
10.4.2 Modifying the Hybrid App
336
10.4.3 Adding Custom JavaScript
337
10.5 Implementing Conditional Navigation
341
10.5.1 Modifying the Hybrid App
342
10.5.2 Adding Custom JavaScript
343
10.6 Summary
345
11 Customizing Hybrid App Functionality
347
11.1 Working with Data
347
11.1.1 Understanding the WorkflowMessage Structure
350
11.1.2 Accessing Data using the JavaScript API
352
11.2 Using Custom Actions
360
11.2.1 Two Custom Actions
361
11.2.2 One Custom Action
366
11.3 Using the SUPStorage API
369
11.3.1 Saving the Chosen Postage Type as a Default Value
370
11.3.2 Saving the Postage Types on the Device
373
11.3.3 Using Dynamic Credentials
379
11.4 Summary
381
PART IV Developing Native Apps
383
12 Introduction to Developing Object API Native Apps
385
12.1 Synchronization
387
12.2 Object API App Functionalities
389
12.2.1 Registering an App on the Unwired Server
389
12.2.2 Accessing MBO Data
393
12.2.3 Manipulating Data
395
12.3 APIs Included in the Object API
397
12.3.1 Application API
397
12.3.2 Afaria APIs
402
12.3.3 Connection API
402
12.3.4 Authentication API
405
12.3.5 Personalization API
405
12.3.6 Synchronization API
406
12.3.7 Message-Based Synchronization API
407
12.3.8 Log Record APIs
408
12.3.9 Change Log APIs
408
12.3.10 Security APIs
408
12.3.11 Callback and Listener APIs
408
12.3.12 Query APIs
415
12.3.13 Persistence API
416
12.4 Summary
419
13 Developing Android Apps
421
13.1 Getting Started
421
13.1.1 Components of an Android App
422
13.1.2 Preparing the Development Environment
423
13.1.3 Introducing the Example App
425
13.2 Creating the MBOs
427
13.3 Generating the Object API Classes
428
13.4 Creating the Project
431
13.5 Importing Libraries
434
13.6 Implementing the App
435
13.6.1 Defining the App Structure in AndroidManifest.xml
435
13.6.2 Creating the Layout Files
437
13.6.3 MainActivity
448
13.6.4 CustomerListActivity
455
13.6.5 CustomerListAdapter Activity
458
13.6.6 CustomerDetailsActivity
460
13.6.7 CustomerSearchActivity
465
13.7 Running the App
469
13.8 Summary
471
14 Developing iOS Apps
473
14.1 Getting Started
474
14.1.1 iOS App Components
474
14.1.2 Preparing the Development Environment
476
14.1.3 Introducing the Example App
476
14.2 Generating the Object API Classes
478
14.3 Creating the Project
481
14.4 Importing Libraries
483
14.5 Importing Generated Code
485
14.6 Implementing the App
486
14.6.1 CustomerAppAppDelegate
486
14.6.2 ConnectionController
489
14.6.3 CustomerAppViewController
493
14.6.4 ItemListViewController
498
14.6.5 DetailViewController
504
14.7 Running the App
510
14.8 Summary
511
PART V Advanced Topics
513
15 Using the Mobile Analytics Kit
515
15.1 Introducing the Example App
516
15.2 Creating the Hybrid App
518
15.3 Copying MAKit Files
521
15.3.1 Copying CSS Files
523
15.3.2 Copying Images Associated with CSS
524
15.3.3 jQuery Style Sheets
524
15.3.4 General Images
525
15.3.5 Copying JavaScript Files
525
15.4 Creating a Simple Column Chart
527
15.4.1 Modifying the Current App
527
15.4.2 Developing Code
529
15.4.3 Testing the App
535
15.5 Creating a Zooming Chart
538
15.5.1 MBOs
539
15.5.2 Flow Design Changes
539
15.5.3 Developing Code
541
15.5.4 Testing the App
548
15.6 Summary
550
16 SAP Support for Open Platforms
553
16.1 Introduction to Third-Party Frameworks
553
16.2 SAP Partnerships
556
16.2.1 Adobe PhoneGap
556
16.2.2 Sencha Touch
557
16.2.3 Appcelerator Titanium
561
16.3 REST Services Apps
562
16.4 Summary
563
17 CRM Lite Case Study
565
17.1 The Scenario
565
17.2 Defining MBOs
566
17.2.1 Queries and Server Queries
567
17.2.2 Customer MBO
570
17.2.3 Products and Categories MBOs
571
17.2.4 Employee MBO
573
17.2.5 Sales Orders and Sales Order Items MBOs
574
17.2.6 Purchase Orders MBO
575
17.3 Developing the Hybrid App
576
17.3.1 Designing the Standard App
576
17.3.2 Customizing the App
584
17.4 Summary
608
The Authors
609
Index
611