Mobile Application Development Challenges-1
Mobile Application Development Challenges-1
Development Challenges
Lesson 2
Development of mobile applications provides for many challenges and obstacles
that are not commonly found in the development of applications for desktop
computers
Display/Screen Size
Consider the differentiating screen sizes between smartphones and cell phones
Smartphones offer the user a generally larger and higher resolution display screen,
contrasted to cell phones which generally provide lower resolution and smaller
display size
Memory
Just as screen size differs from device to device, the amount of available memory
and differs from device to device
Memory must also be carefully managed during the execution of any mobile
application as it can potentially render the phone unusable until termination of the
application
Processing Power
The CPUs differ from phone to phone and this must be taken into consideration by
developers
The input devices on mobile devices range from full QWERTY keyboards to three
letter button inputs
This means developers must take into account how much text is required by the
user to input into their application and what kind of difficulties they may
experience based on their device
Challenge: Network
Transmission Errors
Wireless networks are exposed to interference which can alter the message
received by the client or the server then what was originally sent
Messages that are to be sent to clients or servers can be delayed due to a variety
of reasons such as overloaded network nodes or servers, dead or turned off cell
phones, distance to travel
Applications must take this into account so as to avoid sending servers or clients
stale information
Bandwidth Usage
Wireless customers are forced to pay fees to access the wireless network and
internet
While phones with WIFI capabilities allow for some users to have free connectivity
at times it is important to keep messages to a minimum and compact
Applications that cost a lot to use will not be popular with many of the financially
conscious users
Challenge: Security
Mobile applications must secure the sensitive data that is being transmitted over
the air
There are different methods to implement security but it must be relative to the
information we want to secure and the resources that we wish to use for securing
it
Solutions
Display/Screen Size
Compact data representation will help reduce the amount of memory it requires to
load and use your application
Use optimization techniques to reduce the amount of code required to write your
application (see J2ME tech tips)
Compress any graphic images that you use in your application and save graphics
in a format which takes the least space
Processing Power
Allow the server to do the brunt of the calculations and processing work and pass
the information to the mobile device for less CPU intensive calculations
Input Devices
To overcome some of the problems that can occur with the different input devices
make input requirements concise, therefore the user should be able to perform the
most common tasks in an application with the least amount of button presses
Provide users with menus when possible to help reduce the amount of button input
required
Transmission Errors
Transmissions errors may be inevitable when dealing with wireless networks but
there are some wireless network protocols than can correct or at the least detect
these errors
One solution does not exist for every single type of transmission error that may
occur, it is important to plan for these types of errors and be able to deal with
them accordingly
Message Latency
In a client-server architecture the server can store messages that do not arrive at
the mobile device and attempt to resend them at specific intervals
Servers can also store the message and send it when the mobile device
reconnects to the system
Let the user know if they receive a message that can possibly be out of date or no
longer valid, this could be done using timestamps
Security
Important to implement security to a level which is appropriate for the data being
exchanged
There has been research into creating keys for algorithms such as RSA and others
and sending this to the mobile device to use but this is an area that is still
developing