Mobile Application Development Using Open Source Software
Mohammad Hafiz Ismail
Outline
• • • • • • • Introduction What is (not) mobile device? Why mobile device? Types of Mobile Application Why Open Source? SDK, Libraries and Utilities Demo
Mobile Devices
Handheld electronic device with limited processing power and connectivity commonly use by end-user consumers
Examples of Mobile Devices
Mobile Phones / Smart Phones PDA (Pocket PC / Palm) Internet Tablet Navigation Device
What is not Mobile Device Laptop Personal Computer Game Console
Why Mobile Device ?
Mobile devices has become increasingly popular during the last 10 years. Estimate mobile subscribers around the world 2.7 billions.
Devices Popularity
(Mobref,2006)
Why Mobile Device
Advancement of cellular technology has allowed Greater data transfer Faster processing power Greater interactivity Wider connectivity Allow greater customization
Types of Mobile Application
Email Applications Video Streaming Games News reader Instant Messenger Application Productivity / Utility Location Base application Home/Security Monitoring Application
CAN BE DEVELOPED USING OPEN SOURCE SOFTWARE
Why Open Source?
• Greater access to the development kit • Lower development cost • No 'black boxes' are possible
Java ME – Java Micro Edition
JavaME –Java Micro Edition
• “The Most Ubiquitous Application Platform for Mobile Devices” • Continues Java concept – “Write once, Runs Anywhere™” • Supported on most mobile devices • Sun has open sourced JavaME platform – phoneME
JavaME – Java Micro Edition
• SDK can be downloaded from – http://java.sun.com/javame • GPL ‘d JavaME implementation – http://phoneme.dev.java.net • Open Source release works under Windows, GNU/Linux, Mac OS and other Unix-like operating system.
JavaME –Java Micro Edition
Specification divided into : • MIDP - Defines GUI API, Interactivity • CLDC – The underlying core class, VM
JavaME – Java Micro Edition
Java ME – Java Micro Edition
Extended features added over time to phone and to the platform JSR 75 File System and PIM JSR82 Bluetooth JSR120 Wireless Messaging API (WMA) JSR135 Mobile Media API (MMAPI) JSR172 Web Services JSR179 Location API JSR256 Sensor API (Acelerometer)
Java ME – Java Micro Edition
• These extensions are added by the vendors and made into JavaME through Java Community Process (JCP) • Each extension specifications are made public so it could be standardized across vendors
Java ME – Java Micro Edition
Java ME – Java Micro Edition
Java ME - Advantages
• Widely supported on variety of mobile devices • Third Party library support
– J2ME Polish – Bouncy Castle Light Crypto
• Relatively easy-to-use • “Highly “portable
Java ME – The Drawbacks?
• Device Fragmentation
–> –> –> –> –> Different Different Different Different Different screen-size capabilities Navigation key layout number of buttons fonts
• Multiple JSRs cover various capabilities • Defeats the purpose of “Write once, Runs Everywhere”
PyS60
• Can be written as a normal python program file .py using standard python interpreter • Does not need separate SDK • Supports native UI and widget • Can be extended using C++ • Package - *.sisx like ordinary Symbian application
PyS60 - Disadvantages
• Supported on Nokia phones only • Still under BETA, many features broken • PyS60 runtime are required to be installed on the phone • Eats up memory • Not many application written with pys60