Blog

Html5, hybrid, an or native application: How you can understand the development options of your mobile application

Display screen are going smaller than the old days while applications still hold its large size. That is the current mobile-application trend as the world know for today, and it is likely we will not see a dramatic change at least years from now.


Well, there is nothing weird about the trend especially when mobile applications have not surprisingly become the inseparable part of our life. Almost all people use mobile application for their social activities, businesses, even for playing games and other daily activities. While changing people’s lifestyle, mobile application has successfully changed people’s perspective on how they connect themselves to the network. Desktop-computer browser is no longer the only way we can browse the web. Today, we can bring the system wherever and whenever we go. With the presence of mobile technologies in almost everyone’s life, there is one important conclusion we can make: mobile technologies no longer live as the alternative option. Instead, they stand as imperative solution we need in our life if we seek for a better life than we could have in the previous days.

Well, besides which features you should provide at your enterprise mobile application, there are other various aspects that hold the same importance as other aspects you believe as crucial. I will name some of them: your team members’ development skills, device functionality, mobile security, off-network capability, compatibility across platforms, and other aspects. If I speak with simple words, you must concern not only about what you are going to do with the application, but also how you can provide the features.

There is nothing perfect. This is the universal fact all of us should deal, but it never means that imperfectness cannot teach you precious things. Imperfectness or failure, if I may search the alternative term, is something we need to reach the ‘perfectness’ or success. We need to pass some failures before we can learn what we need to avoid them. Each development scenario you prepare has its advantages and disadvantages in the past, present, or the future. Do not keep yourself away from them. Instead, approach and learn from them. If you do it, not only you will learn how to create ultimate mobile application, but also, you will learn about your customers.

This article may originally aim mobile-application developers as its reader in general term, but it will show you optimum performance if your developers interact with Database.com, Force.com, or SalesForce.com. Currently, their mobile SDK platform supports the following framework:

• Native application
We call a mobile application as the native application if it uses both development languages and tools relevant to its original platform. Two examples include Android with Java and Eclipse as well as iOS with Objective-C and Xcode. If we compare with other two segments, native applications stand as the one with the best performance and appearance.

• HTML5 application
Applications at this segment use standard web technologies, including CSS, JavaScript, and HTML5. Unlike two other segments, standard-web technologies allow developers in creating cross-platform mobile applications that will correctly work across platforms. While application developers can use their ability in making outstanding applications using JavaScript and HTML5 without CSS, there are some vital features they cannot include in the application, including safe off-network storage, session management, and access to various native-device functionalities. They include camera, geolocation, calendar and other functions.

• Hybrid application
Applications under this segment allow developers to use native development language and tools as container media for HTML5 applications. As the result, developers can eliminate any disadvantages and improve the advantages that may come from both native and HTML5 applications.


Native-mobile applications
Under ordinary circumstance, you can expect the best usability from native applications as well as mobile experience and features. Unlike other two segments, there are some features native applications can only give to you:    
• Multi-touch: pinch-spread, double taps, and other compound-UI gestures
• Astonishing API: you can get the fastest graphics from native applications which are necessary if you run many memory-draining applications on your device
• Fluid animation
In accordance with fast-graphic and astonishing API, you can also get fluid animation from native applications. It is an important feature you need if you are a game lover. At the another side, fluid animations will also allow you in getting intense computational algorithm and high-interactive report which is crucial in sounds and photos transformation.
• Built-in components
Compatibility is another great point native applications can guarantee to you. Until today, we never hear about compatibility issue that occurs from native applications, including on camera, geolocation, address book, and other important features niche. 
• Easiness
With more than 80% of market penetration, it is easy to conclude one thing. People will understand native application easier than hybrid and HTML5 application. They are plain, compact, and simple. You need only to tap when you look for something. There is no button, programming language, or anything else that will make the application look complicate


Developers usually create native applications by using Integrated Development Environment or we commonly call as IDE. This environment provides appropriate tools for developers in debugging, building project management, performing version control, and other activities they need to do when they want to build an application. Most developers use IDE to develop mobile applications on iOS and Android platform, but it does not mean we cannot find various uniformities beyond these development environments. It leaves you ‘insufficient’ reason to dig further into the differences. In my simple words, it means you need the tools as the device asks you.
 
There are some reasons online that lead me to this conclusion. These tools become necessary because native applications have higher construction difficulties than other two application segments. As the result, developers need to have a better experience, skills, and knowledge than HTML5 or Hybrid application if they want to build the application on native environment. You cannot just copy the language, such as Objective C, and get your ‘dream’ comes true when the application becomes fully operational. In fact, you need to consider the important aspect of native development tools and language. 
If you have a background as the professional developer, you are free to skip frameworks, API, or even one of them. The same rule also applies with special effects (the one that often becomes developers’ nightmare) and benefits when you have placed all codes you designed at one place. Let us face the fact today: you are a rock-star application developer if you can develop mobile application on Android or iOS platform and at the same time, you can fulfill everyone’s demands.

After all the discussion we have passed on native-application discussion, we still have many important things about native application we must set, especially people’s perspective about application end user. A simple analogy will help us with this matter. When we want a mobile application for our device, we can find it at the application store. At the other time, when we want to launch the application, it will initiate immediately (of course, unless you have drained your RAM). When we start the application, the application should be able to give us outstanding performance. When we want to perform the update over the application, it should be able to tell us which update we need and when we should play it. In general, native applications are the perfect solution if we are looking for an amazing experience along with easiness and simplicity.


HTML5 mobile applications
If you still need years to become an expert in mobile-application development, I must admit you may be too late to come to the ‘real’ party. However, if you choose to develop mobile application on HTML5 platform, the time may not have passed yet. You still get the time. 
Well, of course, since the first time we knew and applied HTML as the language of the internet, everything has become better than before. However, even though we have learned all we can do to make it better than our old days, we still have some crucial-to-answer problems such as Y2K bug we still cannot fix until today.    

Well, sometimes odd things can become good things. If you choose to develop mobile application on HTML5 platform, you develop a website page whether it comes as single or series of pages. The only difference is you get everything on a small device screen. In accordance with this fact, developers turn out HTML5-based mobile application as device-agnostic, and we can only access the application through modern mobile browser. Unlike native and hybrid form, HTML5 helps you in accelerating popularity of your application on the network because your application is once again a website page. Once you launched your application, it has already shared the content with internet, and that means you can search and open it with your mobile browser.

If you get some background experience in website application, HTML5 will clearly show you that your project has slight different with taking duck to water. At the other side, if you are a newbie in website development, you may encounter some technological issues. That is the reason some developers may recommend you to take HTML5 if you get no mobile-development experience. The bad news is: each mobile device we get in the market tends to have its perspective of several points that determine both screen resolution and size. Well, it is a clear proof that you have one more additional burden on your shoulder. Incompatibility often becomes the common issue on mobile browser. So, make sure you have eliminated this ‘threat.'

There is one important part that builds HTML5 technology as write-once-run everywhere method: support and distribution. Unlike native applications, both these aspects become much easier than ever. You can quickly create additional and bug-fix features for your application. 

Until last year, HTML5 has built another trend in developing mobile application. Now, we can have more than one User Interface frameworks we can use to solve multiple complex application problems that most of us choose not to re-invent. Some examples include iScroll which does a great job in emulating momentum style of screen scrolling. At the other side, we have Sencha Touch and Jquery Mobile, which helps us in providing elegant components of mobile applications. Of course, we should not forget about vast number of application plugins we can use to offer outstanding features to users.

So, if fact shows the easiness of HTML5-based applications in its development, support, and varieties of applications, why the market does not show better response than it currently ‘offers’ to this application segment? We have seen significant benefits we can get from native applications. So, I believe we will just restate our stance here: we cannot gain access to native-application features on mobile device. People will not get the same native feel and look. Other implications may include our inability in using compound gestures we used to have previously. However, at the front line we can see the presence of strides and more functionality than we used to have in the past.

Today’s mobile technologies have supported latest series of mobile browsers with hardware acceleration that allows us to get better CSS3 animation properties than we got in the past. It is the same technology we need to get smooth motion as we slide panels on our mobile device, move across different screens, and other functionalities. Well, even though we get the latest mobile technologies on hardware acceleration at least until today, we still do not possess right to capture events on multi-touch input base as well as build track-style elegance with hovering photos, spinout photos, and finally put it on the right place. 
However, you must be aware that both offline storage and security take place as a significant limitation to HTML form. It is true you can still perform the pretense of offline capability. You can do this action by making file caches on mobile device even though some developers do not consider it as a real solution. Although you can still encrypt the underlying database, the segmentation result may not get as the good result as you can do with the native-application keychain encryption. At the other side, you must also consider about when your application launches the service from desktop, people need to provide their credentials which the application may send without their permission. Since governance and security become today’s user’s preference, just make sure each process you perform will get permission from your user.


Hybrid Mobile Application
The simplest way to understand hybrid mobile application is the combination of both HTML5 and native applications. However, I use an alternative approach to define this form. If I describe it, hybrid mobile application is a unique segment which applications use HTML5 and JavaScript as its platform and come within a slightly-thin native application container which allows everyone to gain access over all features native platform offers. One clear example of hybrid mobile application is Phonegap.

When we take the comparison between native and HTML5 applications, it is easy to conclude that hybrid mobile application stands as the application with the best offer from both competitors. No matter how vast your experiences in dealing with mobile-application, you will find hybrid environment as the best development environment you can get. You can easily use CSS to create gorgeous layouts, simple HTML code to create sophisticated applications without sacrificing the native environment capabilities, and many other benefits. Under certain circumstances, you will also be able to create simple, yet useful image processing. Each benefit will simply come right under your nose.

There are some occurrences when we get a mobile device with native applications while at the same time it also contains HTML5 applications the developer stores in a web server. You may wonder whether the hybrid application do the same thing in storing any file in the web server or maybe it chooses another option to do the same thing. As a matter of fact, most hybrid applications store their files in a web server. Regarding this fact, you must also know two alternatives for use in implementing their hybrid technologies:
• Local 
Use mobile application binary as media where you can store both your JavaScript and HTML code. This manner is similar to native application structure when you use REST API to move your data between cloud storage and device you have.
• Server
If, under certain circumstances, you do not believe local storage as the best option you have, you can perform alternative implementation of your full-web application from the web server. You can create a thin shell by using local storage as the container over the UIWebView.