Android OS is the most dynamic platform for mobile development. What should developer remember when programming for Android? Are there any bottlenecks?
We asked our Mobile Department team to answer several questions conserning the programming for Android, its present tips and future.
Hope this will help you to understand this OS better. You are welcome to ask any questions if you need our help.
Is there a concept of architecture in programming for Android and how to choose it?
Google uses the Dalvik virtual machine to run their applications. This imposes certain limitations on the application architecture. Google’s SDK allows you to write well-structured program in terms of architecture and provides a rich set of classes for various architectural models.
Differences between the development of native applications and with special frameworks.
The most common special frameworks and even more correct multi-platform frameworks are used to develop applications for multiple mobile platforms at the same time, for example Android, iPhone, Windows etc. For creation a demo version of a product we can gain in speed of development with a good knowledge of the framework itself. However, if you develop severe multi-service applications, the described above advantage is lost, as you have to take into account and know the specifics of each platform and sometimes the SDK and the language is written in order to add the native functionality to the product. Frameworks are good for a small sized functional applications for various platforms and prototypes for demonstration. The rest of the frameworks for complex applications increase the speed of application development by 90%, but the remaining 10% of the customization are solved so hard, that negate the benefits of cross-platform development. So, use the frameworks only where it is appropriate.
API: the pitfalls of use. What should man look for when the API is given? And is it necessary to write it himself?
For the client side it is common to use the Android SDK. As for the server side, usually there is a URL where POST or GET parameters used; in response we get Json or Xml. The big plus is to know only one language, usually JavaScript.
In the process of working on various projects, API’s server-side has changed seriously enough when writing a client-side. The main problem here is to convince the developers of the server side that exchange of information should go in the format of a request-response to one functionality and to avoid multiple requests for a chapter’s information.
What techniques are used while programming for Android?
We use Test Driven Development and GUI automation testing. This allows to react instantly to server changes and to carry out continuous testing of all functionality in each application release.
Are there any solutions to optimize the development for multiple platforms simultaneously?
Yes, there are such solutions. We develop application architecture that is being implemented on the various programming languages , and only after this we build GUI applications around the core part. This allows to unify the design for multiple platforms simultaneously, although it requires well-coordinated work of all project participants.
Specificity of the development for tablets and mobile devices.
For iPad – a separate specificity, mainly related to the screen resolution. For Android – it is not only the screen resolution, but also the ability to support more recent versions of Android 3.0 and 4.0, taking into account the specifics of building applications.
What will happen with the scope of development for Android in the future?
Android Development Sphere will experience a certain boom in the next 3-5 years, when the number of low-cost tablet PCs will replace netbooks and laptops in the user environment, it will create a totally new market and expand the number of users: working with the Tablet PC is easier than with any laptop or desktop computer. In addition, the Android system will be implemented in the systems of television, household appliances, the automotive industry.