Open all
Close all
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.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.2 Mobile App Development for SAP Mobile Platform
39
2 Introduction to Sybase Unwired Platform
49
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.3 SAP Afaria Server
61
2.2.4 Sybase Control Center (SCC)
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.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
4 Installing and Connecting the Sybase Mobile SDK
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
5 Installing the Hybrid Web Container Application
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.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
PART II Building Hybrid Apps
141
6 Working with the Hybrid Web Container
143
6.1 Mobile Architectures
143
6.1.2 Mobile Web Apps
147
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.2 Server Notification
162
7 Building Mobile Business Objects
167
7.1 Introduction to Mobile Business Objects
168
7.1.2 MBO Development Concepts
170
7.2 MBO Development Tools
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.3.2 Web Service MBO
187
7.4 Controlling Data Flow and Performance
202
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.2 FindByPrimaryKey
218
7.6.3 Designer Developed Queries
218
7.7 Creating Relationships between MBOs
219
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.2 Designing Screen Flow
236
8.2.1 Flow Design Page Properties
236
8.2.2 Starting Points
239
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
9 Examples of Hybrid App Development
269
9.1 Employee Database Example
269
9.2 Customer/Sales Order Database Example
276
9.3 General Ledger Account Balances from SAP Example
291
9.4 Sales Order Notification Database Example
301
9.4.2 Create Hybrid App and Define Server Notification
304
PART III Customizing Hybrid Apps
313
10 Customizing Hybrid App User Interfaces
315
10.1 Generating the Project Code
316
10.1.3 JavaScript Files
322
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
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
PART IV Developing Native Apps
383
12 Introduction to Developing Object API Native Apps
385
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.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.13 Persistence API
416
13 Developing Android Apps
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.4 CustomerListActivity
455
13.6.5 CustomerListAdapter Activity
458
13.6.6 CustomerDetailsActivity
460
13.6.7 CustomerSearchActivity
465
14 Developing iOS Apps
473
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
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.2 Flow Design Changes
539
15.5.3 Developing Code
541
15.5.4 Testing the App
548
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.3 Appcelerator Titanium
561
16.3 REST Services Apps
562
17 CRM Lite Case Study
565
17.2.1 Queries and Server Queries
567
17.2.3 Products and Categories MBOs
571
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