MES903: Mobile Application Development Best Practices
Download
1 / 63

MES903: Mobile Application Development Best Practices - PowerPoint PPT Presentation


  • 200 Views
  • Updated On :

MES903: Mobile Application Development Best Practices. Alex Reif Product Manager [email protected] August 16, 2004. Goals. Make you aware of the differences between desktop and mobile application development

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'MES903: Mobile Application Development Best Practices' - holiday


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Goals l.jpg
Goals

  • Make you aware of the differences between desktop and mobile application development

  • Identify some of the interesting challenges present when developing mobile applications

  • Focus will be on Pocket PC and Palm OS devices

  • Demo will focus on Pocket PC devices (.NET Compact Framework)



The enterprise unwired4 l.jpg
The Enterprise. Unwired.

Industry and Cross Platform Solutions

Manage

Information

Unwire

Information

Unwire

People

  • Adaptive Server Enterprise

  • Adaptive Server Anywhere

  • Sybase IQ

  • Dynamic Archive

  • Dynamic ODS

  • Replication Server

  • OpenSwitch

  • Mirror Activator

  • PowerDesigner

  • Connectivity Options

  • EAServer

  • Industry Warehouse Studio

  • Unwired Accelerator

  • Unwired Orchestrator

  • Unwired Toolkit

  • Enterprise Portal

  • Real Time Data Services

  • SQL Anywhere Studio

  • M-Business Anywhere

  • Pylon Family (Mobile Email)

  • Mobile Sales

  • XcelleNet Frontline Solutions

  • PocketBuilder

  • PowerBuilder Family

  • AvantGo

Sybase Workspace


Agenda l.jpg
Agenda

  • Introduction

  • Considerations

  • Demo: Building an Application

  • Best Practices Summary


Demo custdb l.jpg
Demo: CustDB

Enterprise

Pocket PC Device

Consolidated

Database

(ASA)

Local

Database

(UltraLite)

Sync

Server

(MobiLink)

CustDB

Application

Sybase

Central


The wireless golf scoring application l.jpg
The Wireless Golf Scoring Application

  • Platforms

    • Palm OS, Windows CE

  • Features

    • Team scoring for a “scramble” format tournament

    • Record score, player’s drive used, special holes

    • Local data store (UltraLite) and wireless synchronization (MobiLink)

    • “Poor man’s” device management

    • Simple messaging

    • Leaderboard

  • Database features

    • Common UltraLite database code

    • Common MobiLink synchronization scripts




Agenda10 l.jpg
Agenda

  • Introduction

  • Considerations

  • Demo: Building an Application

  • Best Practices Summary



Considerations12 l.jpg
Considerations

  • Device Selection

  • Network Issues

  • Application Design and Development

  • Data Storage

  • Data and Communications Security

  • Application Deployment and Management


Considerations13 l.jpg
Considerations

  • Device Selection

  • Network Issues

  • Application Design and Development

  • Data Storage

  • Data and Communications Security

  • Application Deployment and Management


Device selection l.jpg
Device Selection

  • Think about your users

    • Where will the application be used?

    • How will this application be used?

    • How often will the device be used?

    • Single-purpose or multi-purpose device?

  • What are your constraints?

    • Cost

    • Edicts from above

    • Current expertise

  • Special requirements?

    • Connectivity (wired or wireless)

    • Peripherals (printers, scanners, …)


Hardware considerations l.jpg
Hardware Considerations

  • Power (batteries)

  • Processor speed

  • Memory

  • Screen

  • Ruggedness


Varied screen sizes l.jpg
Varied Screen Sizes

  • Desktop vs. handheld

  • Across handheld platforms

    • Move an application from Pocket PC to Palm OS

  • Within a platform

    • Pocket PC vs. CE .NET

    • Palm OS 4 vs. Palm OS 5


Ui differences input l.jpg
UI Differences - Input

  • Most devices have no keyboard

  • Other input methods

    • Touch screen with stylus

      • Handwriting recognition, “Graffiti”, Gestures

      • Virtual keyboards

    • Navigation pad

    • Jog dials

  • Future?

    • Voice recognition

    • Bluetooth pens


Considerations18 l.jpg
Considerations

  • Device Selection

  • Network Issues

  • Application Design and Development

  • Data Storage

  • Data and Communications Security

  • Application Deployment and Management


Network issues l.jpg
Network Issues

  • Need to learn about a new networking technology? Use it!


The eight fallacies of distributed computing peter deutsch l.jpg
The Eight Fallacies of Distributed Computing – Peter Deutsch

  • The network is reliable

  • Latency is zero

  • Bandwidth is infinite

  • The network is secure

  • Topology doesn't change

  • There is one administrator

  • Transport cost is zero

  • The network is homogeneous

    http://today.java.net/jag/Fallacies.html


Network considerations general l.jpg
Network Considerations - General Deutsch

  • Bandwidth

    • What does “19.2 Kbps” really mean?

    • How much do I need now? Later?

    • Are there multiple “pipes” available to my application?

  • Availability

    • Does no network mean no application?

    • Applications should be architected in such a way that lack of network doesn’t stop application from working

  • Security (or lack thereof)

    • Public networks can be dangerous for sensitive data

    • Even “private” networks can be sniffed…


Considerations22 l.jpg
Considerations Deutsch

  • Device Selection

  • Network Issues

  • Application Design and Development

  • Data Storage

  • Data and Communications Security

  • Application Deployment and Management


Application design l.jpg
Application Design Deutsch

  • If you are extending a desktop application

    • What subset of the desktop app is feasible on a handheld device?

    • What subset of data does the device need?

  • If you are creating a new application

    • Determine the applications’ scope: what makes sense on the device?

  • Take a lesson from ergonomics…

    • Understand how people will use these devices

    • Use the device yourself

    • Once you know how the device will be used, you can design a better application/UI


Application development l.jpg
Application Development Deutsch

  • Development tools

  • Migrating an application from desktop to mobile

  • Memory constraints

  • Building a user interface for a small screen


Development tools l.jpg
Development Tools Deutsch

  • Many options, depending on platform

    • Pocket PC

      • PocketBuilder

      • eMbedded Visual C++, eMbedded Visual Basic

      • Visual Studio.NET (Compact Framework/Smart Device Extensions)

      • Java (Jeode VM)

    • Palm OS

      • Metrowerks CodeWarrior

  • Few cross-platform options

    • M-Business Anywhere

    • AppForge MobileVB/Crossfire


Migrating applications from desktop to mobile l.jpg
Migrating Applications From Desktop to Mobile Deutsch

  • Don’t forget your current development practices: they still apply to mobile!

    • Source control

    • Build and test environments

    • Etc.

  • What can feasibly be ported or re-used?

    • Development tool/language used

    • Development tools/language available

  • Where does your business logic reside?

    • Databases?

    • Application servers?

    • Does all of that logic need to be on the device?


Memory constraints l.jpg
Memory Constraints Deutsch

  • Amount of memory available varies according to platform

    • New Pocket PC devices typically have >= 32 MB available

    • New Palm OS (non-entry level) devices typically have 8-16 MB available

  • Memory is shared between storage and applications

  • Older devices may have different constraints

    • Palm OS device with 2 MB of memory has < 36 KB of heap space available!


User interface design l.jpg
User Interface Design Deutsch

  • Good UI is very important

    • More important than on the desktop?

  • Handheld != desktop

    • No keyboard

    • Small screen

  • Platform differences

  • How do you squeeze lots of information onto a small screen?

    • Tab controls, menus, etc.

  • Iterative development

    • Keep application logic separate from GUI!

      • This helps when porting to other platforms


Considerations29 l.jpg
Considerations Deutsch

  • Device Selection

  • Network Issues

  • Application Design and Development

  • Data Storage

  • Data and Communications Security

  • Application Deployment and Management


Data storage l.jpg
Data Storage Deutsch

  • Any mobile enterprise application will need to store at least some data on the device

  • How will you store this data?

  • How much on-device data does your application require?

    • How much now?

    • How much later?

  • How much on-device data manipulation will occur?

  • Do you need to synchronize on-device data with an enterprise data source?


Other mobile data storage options l.jpg
Other Mobile Data Storage Options Deutsch

  • Proprietary APIs

    • Palm DB, flat file

  • Custom-coded solutions

    • Customer built data structures, searching, sorting, and synchronization

  • ‘Shrunk-down’ enterprise database

    • Vendor reduces capabilities of enterprise database to make it fit on small devices


Other mobile data storage limitations l.jpg
Other Mobile Data Storage Limitations Deutsch

  • Proprietary APIs

    • One table per ‘database’

    • Poor performance

    • Limited capabilities

  • Custom-coded solutions

    • Very resource intensive

    • Increased risk

    • Increased maintenance costs

  • ‘Shrunk-down’ enterprise database

    • Pre-chosen limited functionality

    • Architecture not geared for mobile and wireless devices


Ultralite l.jpg
UltraLite Deutsch

  • “Small-fingerprint” database in SQL Anywhere Studio

    • High-performance mobile data store

    • Data synchronization with the enterprise (MobiLink)

  • Aimed at small, mobile, embedded and wireless devices

    • Personal organizers, smart phones, etc.

    • Point-of-sale devices

  • Typical constraints

    • No hard disk

    • Limited memory

    • Slow processors

    • Limited power

    • Wireless connection


Considerations34 l.jpg
Considerations Deutsch

  • Device Selection

  • Network Issues

  • Application Design and Development

  • Data Storage

  • Data and Communications Security

  • Application Deployment and Management


Data and communications security l.jpg
Data and Communications Security Deutsch

  • General observations

    • Costs must be compared to cost and risk of security breech

    • No solution is perfect

      • Security is reducing risk, not eliminating risk

    • If security is cumbersome, it will likely be circumvented

    • User education is important

  • What security problem are you trying to solve?

    • Interception of data transmission

    • Loss of device

    • User authentication


Considerations36 l.jpg
Considerations Deutsch

  • Device Selection

  • Network Issues

  • Application Design and Development

  • Data Storage

  • Data and Communications Security

  • Application Deployment and Management


Application deployment and management l.jpg
Application Deployment and Management Deutsch

  • Cost of mobile and remote computing

    • Expensive application & update rollouts

    • Significant assets (software/hardware) not tracked

  • Cost of support

    • Direct support center costs and lost productivity

    • Employees can’t function without devices – mission critical

  • Security risks

    • Mobile / remote / embedded operation outside the firewall

    • Risk when devices are corrupted or lost

    • Update/enforce virus protection, OS, software configuration

  • Desktop management solutions don’t fit

    • Not suited to the mobile environment

    • Complexity, footprint, connection flexibility, device diversity


Xcellenet frontline solutions l.jpg
XcelleNet Frontline Solutions Deutsch

  • XcelleNet: Afaria and RemoteWare

    • MES913 Managing and Securing Frontline Devices: An XcelleNet Overview

    • http://www.xcellenet.com


Agenda39 l.jpg
Agenda Deutsch

  • Introduction

  • Considerations

  • Demo: Building an Application

  • Best Practices Summary


Ultralite and the net compact framework l.jpg
UltraLite and the .NET Compact Framework Deutsch

  • We’re going to create and deploy an application from scratch

    • Developed using Visual Studio.NET

    • UltraLite for data storage

    • MobiLink for data synchronization

  • Application: Survey application

    • Data-driven: questions and response choices all in database

    • Signature capture

    • Runs on Pocket PC devices

  • First, let’s see the completed application…


Demo survey application l.jpg

UltraLite Deutsch

USM

Demo: Survey Application

Device

Enterprise

Consolidated

Database

(Sybase/Oracle/

Microsoft/IBM)

.NET

Compact

Framework

Survey

Application

(.NET)

TCP/IP

HTTP

HTTPS

HotSync

(wired or wireless)

MobiLink


Ultralite42 l.jpg
UltraLite Deutsch

  • “Small-fingerprint” database in SQL Anywhere Studio

    • High-performance mobile data store

    • Data synchronization with the enterprise (MobiLink)

  • Aimed at small, mobile, embedded and wireless devices

    • Personal organizers, smart phones, etc.

    • Point-of-sale devices

  • Typical constraints

    • No hard disk

    • Limited memory

    • Slow processors

    • Limited power

    • Wireless connection


Goals of ultralite l.jpg
Goals of UltraLite Deutsch

  • Provide advantages of an enterprise database

    • Transaction processing, data types (including numeric and date/time), referential integrity, indexing, strong encryption

  • Provide synchronization to industry standard enterprise databases (robust and secure)

  • Maintain extremely small footprint

  • Maintain hand-coded speed

  • Reduce the requirement for platform specific knowledge


Ultralite programming interfaces l.jpg
UltraLite Programming Interfaces Deutsch

  • UltraLite Components

    • Set of components to enable UltraLite development with various development tools

      • UltraLite.NET

      • AppForge MobileVB/Crossfire

      • Microsoft eMbedded Visual Basic

      • Native UltraLite for Java

      • UltraLite for M-Business Anywhere

      • UltraLite C++ Component

      • UltraLite ODBC

      • Sybase PocketBuilder

  • “Classic” UltraLite

    • Embedded SQL

    • C++ API

    • JDBC


Ultralite net l.jpg
UltraLite.NET Deutsch

  • .NET wrapper for UltraLite Component API

    • All .NET languages supported

  • Platform support

    • Pocket PC (.NET Compact Framework)

    • Windows XP (Tablet PC - desktop .NET Framework)

  • Namespace is iAnywhere.UltraLite

  • SQL928 Building Hand-held Database Applications Using UltraLite

    • Wednesday, 3:30 PM, Captiva 2


Ultralite schema files l.jpg
UltraLite Schema Files Deutsch

  • Schema file (.usm file)

    • Provides schema information for a new database

    • Can be used to “upgrade” an existing database

  • Schema files can be created with:

    • Existing ASA database (ulinit)

    • XML file (ulxml)

    • UltraLite Schema Painter GUI tool (ulview)



Demo create an ultralite schema48 l.jpg
Demo: Create an UltraLite Schema Deutsch

Device

Enterprise

Consolidated

Database

(Sybase/Oracle/

Microsoft/IBM)

.NET

Compact

Framework

Survey

Application

(.NET)

TCP/IP

HTTP

HTTPS

HotSync

(wired or wireless)

MobiLink

UltraLite

USM


Ultralite components class hierarchy l.jpg
UltraLite Components - Class Hierarchy Deutsch

DatabaseManager

ConnectionParms

Connection

DatabaseSchema

PublicationSchema

Table

Column

ColumnSchema

TableSchema

IndexSchema

PreparedStatement

ResultSet

ResultSetSchema

SyncResult

SyncParms


Demo ultralite net in the compact framework l.jpg

UltraLite Deutsch

USM

Demo: UltraLite.NET in the Compact Framework

Device

Enterprise

Consolidated

Database

(Sybase/Oracle/

Microsoft/IBM)

.NET

Compact

Framework

Survey

Application

(.NET)

TCP/IP

HTTP

HTTPS

HotSync

(wired or wireless)

MobiLink


What is mobilink l.jpg
What is MobiLink? Deutsch

  • A two-way synchronization technology for large scale mobile database deployment

    • Remote database (mobile, embedded, or workgroup database server)

    • Consolidated database (enterprise, workgroup, or desktop database)

  • A server that processes synchronization requests from remote databases

  • Synchronization Streams

    • Pocket PC: TCP/IP, HTTP

    • Palm OS: TCP/IP, HTTP, HotSync

    • 128-bit strong encryption of synchronization stream supported using Certicom TLS



Mobilink design goals l.jpg
MobiLink Design Goals Deutsch

  • Heterogeneous consolidated database

  • Scalable and robust (tens of thousands)

  • Manageable in large deployments

  • Support handheld and wireless devices

  • Flexible


Mobilink consolidated databases l.jpg
MobiLink Consolidated Databases Deutsch

  • Oracle 8, 8i, 9i

  • Microsoft SQL Server

  • IBM DB2 UDB

  • Adaptive Server Enterprise (ASE)

  • Adaptive Server Anywhere (ASA)

  • List of Recommended ODBC Drivers

    • http://www.ianywhere.com/developer/technotes/odbc_mobilink.html


Adding synchronization l.jpg
Adding Synchronization Deutsch

  • Set properties of Connection.SyncParms

    myConn.SyncParms.UserName = “sync_user”

    myConn.SyncParms.Stream = StreamType.TCPIP

    myConn.SyncParms.Version = “sync_version”

  • To synchronize:

    myConn.Synchronize

  • Status will be in Connection.SyncResult

  • Template sync forms need two extra lines of code:

    Dim pd As SyncProgressDialog =

    New SyncProgressDialog(dbMgr, myConn)

    pd.ShowDialog()


Demo add synchronization l.jpg

UltraLite Deutsch

USM

Demo: Add Synchronization

Device

Enterprise

Consolidated

Database

(Sybase/Oracle/

Microsoft/IBM)

.NET

Compact

Framework

Survey

Application

(.NET)

TCP/IP

HTTP

HTTPS

HotSync

(wired or wireless)

MobiLink


Demo summary l.jpg

UltraLite Deutsch

USM

Demo Summary

Device

Enterprise

Consolidated

Database

(Sybase/Oracle/

Microsoft/IBM)

.NET

Compact

Framework

Survey

Application

(.NET)

TCP/IP

HTTP

HTTPS

HotSync

(wired or wireless)

MobiLink


Agenda58 l.jpg
Agenda Deutsch

  • Introduction

  • Considerations

  • Demo: Building an Application

  • Best Practices Summary


Best practices l.jpg
Best Practices Deutsch

  • Always think ahead

  • Don't forget about your current development practices

  • Use the devices and the networks to learn them

  • Don't forget about security

  • Figure out which part(s) of your application make sense for the device

  • A good UI is very, very important

  • Use a local data store

  • Test!


Ianywhere at techwave2004 l.jpg
iAnywhere at TechWave2004 Deutsch

  • Ask the iAnywhere Experts on the Technology Boardwalk (exhibit hall)

    • Drop in during exhibit hall hours and have all your questions answered by our technical experts!

    • Appointments outside of exhibit hall hours are also available to speak one-on-one with our Senior Engineers. Ask questions or get your yearly technical review – ask us for details!

  • TechWave ToGo Channel

    • TechWave To Go, an AvantGo channel providing up-to-date information about TechWave classes, events, maps and more – also, keep up to date with the TechWave Newsletter – now available via your handheld device!

    • www.ianywhere.com/techwavetogo

  • Mobile and Wireless Email using Pylon Anywhere

    • iAnywhere is providing access to your corporate email at TechWave using Pylon Anywhere. You can keep up-to-date with your latest email, calendar, contacts, and tasks from your PDA or any Web-client! Visit the iAnywhere demo station in the Sybase booth or our “Ask the Experts” area in the Technology Boardwalk (Exhibit Hall) for details on how you can evaluate Pylon Anywhere yourself!


Ianywhere at techwave200462 l.jpg
iAnywhere at TechWave2004 Deutsch

  • Wi-Fi Hotspots – brought to you by Intel

    • You can enjoy wireless internet access via Wi-Fi hotspots provided by Intel. Using either a laptop or PDA that is Wi-Fi 802.11b wirelessly-enabled, visitors can access personal email, the internet and “TechWave ToGo”

  • Developer Community

    • A one-stop source for technical information!

    • Access to newsgroups,new betas and code samples

    • Monthly technical newsletters

    • Technical whitepapers,tips and online product documentation

    • Current webcast,class,conference and seminar listings

    • Excellent resources for commonly asked questions

    • All available express bug fixes and patches

    • Network with thousands of industry experts

    • http://www.ianywhere.com/developer/


Slide63 l.jpg

Questions? Deutsch

Alex Reif

Product Manager

[email protected]


ad