Home / Mobile Phones / Apps / Mobile Application Development

Mobile Application Development

Mobile applications are becoming more important in the digital landscape and mobile projects explode. The mobile world is completely different from the web as I propose to share my experience to help you make the right choice when developing an application.

Currently, there are three ways to develop a mobile and / or tablet applications.
Native development
This is obviously the first solution that comes to mind. Native development is to develop with the tools / specific to each operating system languages.
•    Objective C with Xcode IDE for iOS (You will need a Mac for dev and compile the app)
•    Java with Eclipse for Android
•    C # with Visual Studio for Windows Phone
The advantage of this method is that you will be able to benefit from the elements specific to each operating system for faster and cleaner development. We can even create their own components inheriting the properties of native components.

Mobile Application Development
The development is fairly intuitive with dedicated IDE (XCode is one of the most pleasant development tool to use, it can not be said of the Eclipse solution …).
However there still has a downside. Android becoming increasingly used companies want to have an application that runs on Android and iOS AND it quickly becomes very problematic.
•    2 = 2 different platforms completions codes
•    An increased development time
•    Updates to painful days (since it is necessary to postpone the change between platforms)
The price of a native development so skyrockets when you want to have an application that runs on multiple systems. In addition we must add to this price problem, quite a learning time (1-2 months per language) which can be problematic for a freelancer (the time spent in training is not profitable)
Hybrid Development
Some companies have well understood the compatibility problem and propose solutions that allow, with a single code, compile on different platforms. The best known solution is Titanium Platform that allows you to write an application using JavaScript and APIs.
For example if you want to create a table we use the following code
Ti.UI.createTable (…)
And the system will compile it in a tableView on iOS and Android. The advantage is multiple:
•    Is coded with a language that we know: javascript
•    1 Code = multiple platforms
But all is not rosy. We quickly realized that the API elements that are available on both iOS and Android are not numerous. And even the common elements have a completely different behavior from one platform to another. For example, a tabGroup will have its tabs down on an iPhone app and Android app on top (over the rendering is horrible on android).
The other problem is the rather limited customization of native elements. One has only to see the hundreds of people trying to put a forum for understanding the tabs extended to the problem.
I think this solution, while interesting theory turns out to be unusable in the case of an app with a slightly different format than the native format.
HTML development
Finally, the last solution is to develop an application using the standard web languages: HTML, CSS and Javascript. So here I see you coming
“HTML An app that’s not really an application!” – The guy in the background
In fact an app we will be able to compile that will in fact only a WebView (an element that can contain a Web page) where we will place our app created in HTML. To create such an application can write native, hybrid (you may use titanium to create only webview) or key solutions hands like PhoneGap . PhoneGap and Titanium offers some API to interact with the phone directly from JavaScript.
// For example if we want to take a picture with the phone app with PhoneGap // More info on the doc: http://docs.phonegap.com/en/2.9.0/index.html navigator. device.capture.captureImage (…)
However, even if our app is coded in HTML there are some parameters to consider:
•    The phone does not have the same flow as a computer, be careful when loading remote content
•    The power is limited. Be avoided animate entire blocks and overloading the Javascript page and advanced CSS effects.
•    The cross domain AJAX is forbidden, you will be limited to calls JSONP
Then to create your application it happens like a standard web application (with the touch event and more). We can help javascript frameworks like jQuery Mobile and Sencha Touch or to code 100% home. Personally I am not convinced by JS frameworks for Mobile because too heavy and quite difficult to customize.
Which solution to choose?
I tested 3 solutions mentioned in the development of several applications and I came to the following conclusion.
If you want to develop a specific application for an operating system can be incessant to form in the required language and develop using the tools specific to the chosen system. Beware though if like me you were raised with web languages. Mobile development software development is close, you will discover the joys of Compilation and Memory Management
HTML development is in my opinion the most viable choice in general. It allows to develop an application that operates quickly and quite the same way between the different platform. Be careful though to mobiles (super slow flow, an i frame on iOS is not scrollable, we can not cross domain Ajax, fixed position to forget …). Regarding the compilation you can use either Phone Gap or Titanium (Phone Gap even offering a compilation cloud, sending your html => it returns the app you compiled).
Finally, the hybrid development is in my opinion not very interesting as, despite an interesting promise, you get faster with the same disadvantages that a native app: A code, platform and time off putting compilations during the debug phase.

About Tahir Najmi

Comments are closed.

Scroll To Top