Mobile development basics
Development of mobile applications has long ceased to be a new trend. It is so popular that often mobile applications are developed much earlier than the company websites. And as the mobile communications become increasingly affordable, many new ways to develop applications for use in absolutely any circumstances appear. Any enterprise benefits when developers build mobile apps for them.
To successfully start at the mobile applications market, it is necessary to make some important decisions first. One of them is choosing the right application implementation technology.
What we strive to explain in this article?
What are the main stages of application development planning?
Application development consists of several large stages. First, the basic idea emerges and the list of goals for the application is created. Such goals can be purely marketing, engineering or a combination of both. For example: to attract new and increase loyalty among existing users, to simplify the process of leading the customer from the first acquaintance to purchase, to optimize the online store’s interface for mobile devices, to identify the main target audience, to increase the coverage of the target audience. The business goals should dictate the choice of technology, not the other way around.
So, what is next?
When the tasks become more or less clear, the development team can start discussing the possible technical solutions, their pros and cons. For example, if alteration speed and audience coverage are most important, some other aspects (like a processing speed) can be sacrificed while choosing the technology that satisfies the task solving.
What choices of technologies exist at the market today?
Native mobile application development is done for appropriate mobile platforms, work quickly, holistically and utilize the platforms’ full functionality, including Bluetooth, NFC, and any other features that are present, such as temperature, pressure and humidity sensors. However, since both iOS (iPhone, iPad, iPod) and Android occupy a very top share of the mobile native applications market, it is often imperative to be develop the app version for both platforms which doubles the time and price of development. Moreover, for those developers who want to take into account all types of devices on the market (Windows Phone, BlackBerry), the amount of the costs is even more. However, native applications are characterized by high functionality, reliability and performance, and continue to be very much in demand for certain purposes.
Pros of native applications
• Access to the full range and flexibility of native SDKs.
• Native application’s logic is natural for the platform it is designated for.
• Easiest and most seamless integration of the advanced features appearing upon the platform’s growth.
Cons of native applications
• Relatively high development cost, especially in case of several platforms’ coverage.
• Specific and, sometimes, contradictory design and user experience guidelines for every platform.
• The need for frequent update releases (in case of the new OS version, new device line or hardware feature release).
• It is hard for a single developer or a small development team to maintain the application versions for different platforms/programming languages.
See also: Cost of developing an app
Android versus iOS applications – what are the comparative advantages of each native platform?
Android development is more liberal in terms of the requirements: integrated development environments exist for all major operating systems – Windows, UNIX/Linux, Mac OS; development is carried out with the use of the refined and well documented Java language; access to the Google Play Market is granted through a one-time payment of $25. By contrast, the development for iOS is possible under Mac OS only, which requires either the purchase of costly proprietary workstation/laptop or the usage of the one of options that significantly reduce performance and are predisposed to faults – a virtual machine installation or so-called “hackintosh” (installing the Mac OS over the hardware that was not intended for it originally); in addition, development is conducted with the use of Objective-C and Swift languages, specific to Apple’s platforms; and finally, developer account licensing under Mac OS/iOS costs about $100 per person yearly. On the other hand, the ecosystem, built by Apple, has a more affluent audience, is more stable, has a consistent backward compatibility and a higher average application ROI compared to the Android ecosystem. Furthermore, the distinctive features of the Java language implementation are the cause of the notably lower performance and rougher operation of the applications written with its use.
If the application does not require the deep interaction with the device features or the offline mode, you can consider implementing it as a web service. The user needs only to know the URL to access the application through a web browser.
This option is well suited for the applications that require the constant presence of an Internet connection and do not impose special requirements to graphics and the device’s hardware and is called the HTML5 mobile app development.
Pros of web applications
• Web applications run on devices of every form-factor and can easily be ported to any device (no additional tools/licenses needed).
• Little or no differences in terms of security and smartphone functions access between different devices and browsers.
• Unified development platform – HTML5.
Cons of web applications
• Scant access to advanced device features: access to cameras, geolocation, gyroscope and other gadgets is not possible.
• Web applications can manifest the logic that is uncharacteristic for the specific platform.
• Lesser performance than that of native application due to the browsers’ Java Virtual Machine high resource consumption.
The web-based technology usage idea is really attractive. Having developed the application once, one can potentially distribute it to multiple platforms at once, since web browsers are embedded by default into all of the modern mobile operating systems. As the HTML5 framework and tools are constantly being improved, many programmers are familiar with web technologies and may begin developing a mobile app right here and now.
However, for many applications the execution of the advanced features, such as reading files from and writing to the SD-card, taking pictures via cameras, receiving the system events messages, etc., is extremely important. The usual web applications, being run in the browser, give no such opportunities.
A special case of hybrid applications are tools for multi platform mobile development such as PhoneGap. The result of their work is the web application with the native language wrappers.
Pros of hybrid applications
• Allows using the platform-specific features in the already existing web application.
• Relatively quick and inexpensive ideas implementation given the fact that most of the hybrid frameworks are open source.
Cons of hybrid applications
• Roughly the same as the web application’s, as part of the app is an actual web application – performance issues and non-native user experience.
We discussed pros and cons of different mobile development platforms. As you can see, each mobile application development method has its advantages and disadvantages. As we explained at the start of the article, the main choosing factors always should be the specific business tasks, which the application is intended to solve. When the main choice is made – the type of the resulting application (native/web/hybrid), the explicit implementation methods, such as the integrated development environment, SDKs and third-party libraries, can be chosen depending on secondary factors – target audience, project budget, client’s corporate color codes, etc.
To review the discussed material, let us sum things up in the following table:
Anyhow, in Erminesoft, before proposing any particular method, we carefully take into account the needs and objectives of our clients. We gladly will discuss in detail your tasks, their scale, possible solutions and bottlenecks. We have an extensive experience creating mobile applications for startup companies and individual entrepreneurs. Contact us today and allow us do our best solving your challenges.