Title: MES903: Mobile Application Development Best Practices
1MES903 Mobile Application Development Best
Practices
Alex Reif Product Manager areif_at_ianywhere.com Augu
st 16, 2004
2Goals
- 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)
3The Enterprise. Unwired.
4The 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
5Agenda
- Introduction
- Considerations
- Demo Building an Application
- Best Practices Summary
6Demo CustDB
Enterprise
Pocket PC Device
Consolidated Database (ASA)
Local Database (UltraLite)
Sync Server (MobiLink)
CustDB Application
Sybase Central
7The 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
8Golf App - Palm OS Version
9Golf App - Pocket PC Version
10Agenda
- Introduction
- Considerations
- Demo Building an Application
- Best Practices Summary
11Considerations
12Considerations
- Device Selection
- Network Issues
- Application Design and Development
- Data Storage
- Data and Communications Security
- Application Deployment and Management
13Considerations
- Device Selection
- Network Issues
- Application Design and Development
- Data Storage
- Data and Communications Security
- Application Deployment and Management
14Device 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, )
15Hardware Considerations
- Power (batteries)
- Processor speed
- Memory
- Screen
- Ruggedness
16Varied 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 )
17UI 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
18Considerations
- Device Selection
- Network Issues
- Application Design and Development
- Data Storage
- Data and Communications Security
- Application Deployment and Management
19Network Issues
- Need to learn about a new networking technology?
Use it!
20The 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
21Network 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
22Considerations
- Device Selection
- Network Issues
- Application Design and Development
- Data Storage
- Data and Communications Security
- Application Deployment and Management
23Application 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
24Application Development
- Development tools
- Migrating an application from desktop to mobile
- Memory constraints
- Building a user interface for a small screen
25Development 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
26Migrating 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?
27Memory 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!
28User 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
29Considerations
- Device Selection
- Network Issues
- Application Design and Development
- Data Storage
- Data and Communications Security
- Application Deployment and Management
30Data 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?
31Other 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
32Other 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
33UltraLite
- 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
34Considerations
- Device Selection
- Network Issues
- Application Design and Development
- Data Storage
- Data and Communications Security
- Application Deployment and Management
35Data 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
36Considerations
- Device Selection
- Network Issues
- Application Design and Development
- Data Storage
- Data and Communications Security
- Application Deployment and Management
37Application 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
38XcelleNet Frontline Solutions
- XcelleNet Afaria and RemoteWare
- MES913 Managing and Securing Frontline Devices
An XcelleNet Overview - http//www.xcellenet.com
39Agenda
- Introduction
- Considerations
- Demo Building an Application
- Best Practices Summary
40UltraLite 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
41Demo 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
42UltraLite
- 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
43Goals 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
44UltraLite 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
45UltraLite.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
46UltraLite 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)
47Demo Create an UltraLite Schema
48Demo 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
49UltraLite Components - Class Hierarchy
DatabaseManager
ConnectionParms
Connection
DatabaseSchema
PublicationSchema
Table
Column
ColumnSchema
TableSchema
IndexSchema
PreparedStatement
ResultSet
ResultSetSchema
SyncResult
SyncParms
50Demo 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
51What 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
52What is MobiLink?
53MobiLink Design Goals
- Heterogeneous consolidated database
- Scalable and robust (tens of thousands)
- Manageable in large deployments
- Support handheld and wireless devices
- Flexible
54MobiLink 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
55Adding 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()
56Demo 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
57Demo 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
58Agenda
- Introduction
- Considerations
- Demo Building an Application
- Best Practices Summary
59Best 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)
61iAnywhere 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!
62iAnywhere 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/
63Questions?
Alex Reif Product Manager areif_at_ianywhere.com