Download - Mobile Software Developement
Mobile Software Development
Technology Overview
By
Dr. Maged Nofal
On July 20th 2008, our name has
changed from
to
Contents
Smartphone definition.
Smartphone Architecture.
Mobile Software Development Challenges.
Smartphone Operating Systems.
Mobile Programming Models.
Mobile Programming Languages.
Mobile Input.
Hardware Limitations.
Solution to Challenges.
Future Trends.
Smartphone vs Mobile Phone
Software Architecture for Smartphones
Embedded Operating System
Software Framework
GUI SDKs/APIs
Native Applications
Interpreters/Virtual Machines
3rd Party Applications3rd Party Applications
Mobile Software Development Challenges
Different Operating Systems.
Different Screen Size.
Different Input methods.
Different Hardware Architectures.
Limited computing capabilities.
Mobile Software Development Challenges
Code Signing.
Lack of good language support.
Installed applications.
Cracking.
Reverse Engineering
Smartphone Operating Systems
Symbian (S60/UIQ/MOAP/Other)
Windows Mobile
Embedded Linux (MontaVisa/Android/Other)
BlackBerry OS
BREW
iPhone
ACCESS (Palm OS)
Mobile Programming Models
Web BasedServer Based.
Client/Server (Distributed Application).
Standalone (client based)Native
Interpreted
Programming Languages
C/C++
.NET
Java ME
FlashLite
SilverLight Mobile
JavaFX
HTML/WML/JAVASCRIPT/AJAX
JAVA Micro Edition (JAVA ME)
Source: www.HowTo.org
Mobile Input
Keyboard(Keypad – Keyboard – Soft Keyboard)
TrackBall/Joystick.
Pen (Handwriting).
Touch
Microphone (Voice Command).
Camera (Image Recognition)
GPS
Hardware Limitations
Battery Power
CPU Speed
RAM
ROM
Floating Point Support
Graphics Support
Microphone Support
Camera Resolution
Solutions to Challenges
Multi Modal Interface.
Simplified Algorithms (Speed vs Accuracy).
Mathematical Transformation.
Fixed Point Processing. (Speed vs Accuracy).
Data Compression (Size vs Speed).
Pre-Computing (Speed vs Size).
Adaptive Systems.
Solutions to Challenges
Distributed Computing.
Programming Language Selection.
Screen independent graphical coordinates or layout managers.
Unicode Support
Using Anti Cracking Techniques.
Use Obfuscation for managed code.
Future Trends
More powerful real-time Applications.
GPS aware applications.
More distributed Applications.
More AJAX web applications for mobile phones.
More multi-threading.
Dr. Maged NofalE-mail: [email protected]