MES903: Mobile Application Development Best Practices - PowerPoint PPT Presentation

1 / 63
About This Presentation
Title:

MES903: Mobile Application Development Best Practices

Description:

Make you aware of the differences between desktop and mobile application ... Costs must be compared to cost and risk of security breech. No solution is perfect ... – PowerPoint PPT presentation

Number of Views:180
Avg rating:3.0/5.0
Slides: 64
Provided by: alex131
Category:

less

Transcript and Presenter's Notes

Title: MES903: Mobile Application Development Best Practices


1
MES903 Mobile Application Development Best
Practices
Alex Reif Product Manager areif_at_ianywhere.com Augu
st 16, 2004
2
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)

3
The Enterprise. Unwired.
4
The Enterprise. Unwired.
Industry and Cross Platform Solutions
Unwire People
Unwire Information
Manage Information
  • 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
5
Agenda
  • Introduction
  • Considerations
  • Demo Building an Application
  • Best Practices Summary

6
Demo CustDB
Enterprise
Pocket PC Device
Consolidated Database (ASA)
Local Database (UltraLite)
Sync Server (MobiLink)
CustDB Application
Sybase Central
7
The Wireless Golf Scoring Application
  • Platforms
  • Palm OS, Windows CE
  • Features
  • Team scoring for a scramble format tournament
  • Record score, players drive used, special holes
  • Local data store (UltraLite) and wireless
    synchronization (MobiLink)
  • Poor mans device management
  • Simple messaging
  • Leaderboard
  • Database features
  • Common UltraLite database code
  • Common MobiLink synchronization scripts

8
Golf App - Palm OS Version
9
Golf App - Pocket PC Version
10
Agenda
  • Introduction
  • Considerations
  • Demo Building an Application
  • Best Practices Summary

11
Considerations
12
Considerations
  • Device Selection
  • Network Issues
  • Application Design and Development
  • Data Storage
  • Data and Communications Security
  • Application Deployment and Management

13
Considerations
  • Device Selection
  • Network Issues
  • Application Design and Development
  • Data Storage
  • Data and Communications Security
  • Application Deployment and Management

14
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, )

15
Hardware Considerations
  • Power (batteries)
  • Processor speed
  • Memory
  • Screen
  • Ruggedness

16
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

Device Screen Resolution
IBM ThinkPad T30 1400 x 1050
Tablet PC 1024 x 768
CE .NET (NEXiO S160) 800 x 480
Pocket PC 240 x 320
Palm OS 160 x 160
Palm OS (Hi-Res) 320 x 320
Nokia 9290 640 x 200
Sony Ericsson P800 208 x (320 144 )
17
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

18
Considerations
  • Device Selection
  • Network Issues
  • Application Design and Development
  • Data Storage
  • Data and Communications Security
  • Application Deployment and Management

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

20
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

21
Network Considerations - General
  • 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 doesnt stop application
    from working
  • Security (or lack thereof)
  • Public networks can be dangerous for sensitive
    data
  • Even private networks can be sniffed

22
Considerations
  • Device Selection
  • Network Issues
  • Application Design and Development
  • Data Storage
  • Data and Communications Security
  • Application Deployment and Management

23
Application Design
  • 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

24
Application Development
  • Development tools
  • Migrating an application from desktop to mobile
  • Memory constraints
  • Building a user interface for a small screen

25
Development Tools
  • 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

26
Migrating Applications From Desktop to Mobile
  • Dont 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?

27
Memory Constraints
  • Amount of memory available varies according to
    platform
  • New Pocket PC devices typically have gt 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 lt 36 KB of
    heap space available!

28
User Interface Design
  • 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

29
Considerations
  • Device Selection
  • Network Issues
  • Application Design and Development
  • Data Storage
  • Data and Communications Security
  • Application Deployment and Management

30
Data Storage
  • 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?

31
Other Mobile Data Storage Options
  • 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

32
Other Mobile Data Storage Limitations
  • 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

33
UltraLite
  • 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

34
Considerations
  • Device Selection
  • Network Issues
  • Application Design and Development
  • Data Storage
  • Data and Communications Security
  • Application Deployment and Management

35
Data and Communications Security
  • 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

36
Considerations
  • Device Selection
  • Network Issues
  • Application Design and Development
  • Data Storage
  • Data and Communications Security
  • Application Deployment and Management

37
Application Deployment and Management
  • 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 cant 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 dont fit
  • Not suited to the mobile environment
  • Complexity, footprint, connection flexibility,
    device diversity

38
XcelleNet Frontline Solutions
  • XcelleNet Afaria and RemoteWare
  • MES913 Managing and Securing Frontline Devices
    An XcelleNet Overview
  • http//www.xcellenet.com

39
Agenda
  • Introduction
  • Considerations
  • Demo Building an Application
  • Best Practices Summary

40
UltraLite and the .NET Compact Framework
  • Were 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, lets see the completed application

41
Demo Survey Application
Device
Enterprise
Consolidated Database (Sybase/Oracle/ Microsoft/IB
M)
.NET Compact Framework
Survey Application (.NET)
TCP/IP HTTP HTTPS HotSync (wired or wireless)
MobiLink
42
UltraLite
  • 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

43
Goals of UltraLite
  • 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

44
UltraLite Programming Interfaces
  • 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

45
UltraLite.NET
  • .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, 330 PM, Captiva 2

46
UltraLite Schema Files
  • 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)

47
Demo Create an UltraLite Schema
48
Demo Create an UltraLite Schema
Device
Enterprise
Consolidated Database (Sybase/Oracle/ Microsoft/IB
M)
.NET Compact Framework
Survey Application (.NET)
TCP/IP HTTP HTTPS HotSync (wired or wireless)
MobiLink
UltraLite
USM
49
UltraLite Components - Class Hierarchy
DatabaseManager
ConnectionParms
Connection
DatabaseSchema
PublicationSchema
Table
Column
ColumnSchema
TableSchema
IndexSchema
PreparedStatement
ResultSet
ResultSetSchema
SyncResult
SyncParms
50
Demo UltraLite.NET in the Compact Framework
Device
Enterprise
Consolidated Database (Sybase/Oracle/ Microsoft/IB
M)
.NET Compact Framework
Survey Application (.NET)
TCP/IP HTTP HTTPS HotSync (wired or wireless)
MobiLink
51
What is MobiLink?
  • 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

52
What is MobiLink?
53
MobiLink Design Goals
  • Heterogeneous consolidated database
  • Scalable and robust (tens of thousands)
  • Manageable in large deployments
  • Support handheld and wireless devices
  • Flexible

54
MobiLink Consolidated Databases
  • 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

55
Adding Synchronization
  • 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()

56
Demo Add Synchronization
Device
Enterprise
Consolidated Database (Sybase/Oracle/ Microsoft/IB
M)
.NET Compact Framework
Survey Application (.NET)
TCP/IP HTTP HTTPS HotSync (wired or wireless)
MobiLink
57
Demo Summary
Device
Enterprise
Consolidated Database (Sybase/Oracle/ Microsoft/IB
M)
.NET Compact Framework
Survey Application (.NET)
TCP/IP HTTP HTTPS HotSync (wired or wireless)
MobiLink
58
Agenda
  • Introduction
  • Considerations
  • Demo Building an Application
  • Best Practices Summary

59
Best Practices
  • 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!

60
(No Transcript)
61
iAnywhere at TechWave2004
  • 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!

62
iAnywhere at TechWave2004
  • 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/

63
Questions?
Alex Reif Product Manager areif_at_ianywhere.com
Write a Comment
User Comments (0)
About PowerShow.com