Thursday, June 10, 2010

Before Starting Mobile Application Development...

Beginning with mobile application development, how to start mobile application development, tips and tricks in mobile applications development, installing midlets on the mobile devices, do’s and don’ts while developing midlets, necessary precautions while developing mobile application – if these are the queries in your mind, then you are on the right page.

I am also a new mobile application developer, and I have faced too many problems to make my midlet run on the actual device. So I thought I should share my experience, as I didn’t get this information at one place. Of course I got this information from the various forums. I begin with special thanks to all the techies who have helped me to sort out my problems.

Before you go ahead, it is expected that you know the technical terms and information related to the mobile domain. This includes different types of configurations and their uses, various Profiles and their uses, various technologies in the market and technical advancement in its various versions etc. Before starting your application you should know which technology, configuration and profile you are going to use.

So before you start writing your mobile application, please keep following points in your mind.

1. You are going to develop an application for a mobile device, which is far different from the desktop applications and web applications.
2. There are lots of limitations in terms of resources like persistent storage; run-time memory, display area etc. are few of many.
3. While developing, you have to keep in mind that you are developing an application for an “end user”.
4. User will like your application, only when he will have to press as less as keys.
5. Try to use long animations and splash screen as less as possible. Looking at them many times, he may get irritated.
6. If application is going to connect server, try to make the connections as less as possible. For example: If you are developing application of Question – Answer type, then there is no point in connecting to server for every question to fetch and submit answer. It takes considerable time to connect to the server and get the response from it.
7. Think lot before starting the actual development.
8. Keep all the points in mind always.

I am sure that the points I mentioned above are few of many, but sufficient for starters.

I have not used any vendor specific APIs, I purely used Java ME APIs while developing my mobile application, because I want my application cross-platform i.e. it should work on any mobile supporting Java. Like a newbie, I went on adding the number of forms and number of components on each form. As a result of which my code size became very big, and my code lines are in few thousands. On emulator it worked fantastic, so I thought now I should install it on my device. But at the time of actual installation, it has given me so much pain.

If you don’t want to face such problems, try to practice following points from the very beginning.

1. Try to use as less as possible class level variables or data members. On BlackBerry there is a limit which specifies that total size occupied by all your class level data members should not be more than the upper limit of 512 words. The data item double and long will take 2 words. Please check the exact limit if there any on your device. For that you have to ask your queries into the technical forums related to your mobile vendor like Samsung or Nokia.
2. Try to make many smaller classes instead of only one very big class, so that your class level data members will be distributed among various classes, resulting one class will have less number of class level data members.
3. This limit refers to the number of variables within a single class, not within your application. You can break your code into multiple classes as mentioned above.
4. Try to make many smaller methods instead very big and very long single method, and call the methods within methods to reduce the size of single long method.
5. Try to give the smaller names to your classes, forms and various data members.
6. Try to achieve relevancy while giving names to every variable, like for example: f1Q1, f1Q2, f1Q3 etc. which tells me that Form 1 – Question 1, Form 1 – Question 2, Form 1 – Question 3. I realized the importance of this, when I found myself in trouble. I will specify it later, why it is so important.
7. If you are planning to develop server based database oriented mobile application, i.e. HTTP request-response based application, then try to design the application in such a way that most of the calculation, data manipulation, parsing of strings etc. should go on server side, and no or very limited calculations on application side.

If you are planning to develop a mobile replica of an already popular and well designed desktop application, then it is not necessary that the mobile application will also perform well in the real world. I think good mobile applications are more than just providing all the functionality and qualities that the desktop application provides, it is about balancing the device limitation, user environment and the needs of the user.

Mobile applications should be designed to make life easier and stress-less.

Mobile applications should be developed to save users time and efforts.

Mobile hand-held devices have lots of limitations which are also gets directly imposed on the mobile application, which restricts the freedom of developers.

Applications should try to minimize the dependencies to achieve the feeling of freedom in the users’ mind, which will ultimately make the application popular and workable. Users in the today’s world mostly dependent on the internet, but mobile applications may get failed even if it is greatly designed, due to poor coverage of the network. Application should work even without internet using locally stored data, as many times there may be poor network.

There may be few more points to be there in the above list, but at the moment they are sufficient. I will try to add more points to that list as my experience goes on increasing.

Thanks for visiting this page.


Integrated Solutions said...

Mobile application development is quite an active arena today, much due to the popularity and increasing demand of mobile phones. The mobile application development is really growing as a large scale industry.

Mobile Development India

Gary said...
This comment has been removed by a blog administrator.
Mobile Application Development said...

Now-a-days mobiles have full popularity and mobile application development also have full crease in people. Thanks for sharing nice information.

Heather said...

My cousin recommended this blog and she was totally right keep up the fantastic work!

Mobile Applications Development

Mobile Application Development said...

Nice blog i like it
The applications developed by mobile app development process are downloaded by customers from different mobile software distribution platforms or app stores. They are also found pre-installed in the mobile devices as well.

mobile application development

Paddy said...

Mobile application developments have turned popular and largely acquired as well due to its advanced technological influence and better servicesmobile application development providing services at better well planned approach.

asifmujteba said...

Great post man! Mobile has become such a necesity for everyone and developing mobile applications is definitely the hottest of all professions
Mobile development

Danial123 said...

Mobile websites allow you to bring in new customers who are in the area and reach out to repeat clients while they are on the go. iphone apps
mobile website development

Android developer said...

You are address way to advance your business, peoples can calmly to accepted about your business or restaurant and to your business to be added.

Android developers

SHYAM said...

I also agree with you ..... very useful information for us ...... keep it up thanks for this..........

Mobile Development