In 2012, I helped my team create first mobile application using the Sencha Touch framework and PhoneGap Build. And, since then mobile apps have become an important part of my life. I have also experimented with several different frameworks such as Famo.us, Phaser and Ionic.
From the past three years, I have been building HTML5 mobile applications that look and perform just like native applications. Earlier in 2012, HTML5 mobile frameworks were quite dynamic and robust, but they are just getting better and better.
I faced a lot of hurdles and obstructions while developing the HTML5 mobile application. It could be due to the fact that HTML5 was my first effort in mobile application development, but mostly because there is a lot of complications for HTML5 mobile developer than for native developers.
If you belong to a web development background, then it may be easy for you to learn a HTML5 mobile framework than getting a native language like Objective C. Still, you have to learn how to master the complications while using HTML5, such as:
- Regulating the DOM (a bloated DOM can generate poor performance)
- Accessing Native APIs (You can use PhoneGap or PhoneGap Build)
- Signing Applications (You can also use OpenSSL in the place of Mac)
- Developing app store ready builds (Use PhoneGap or PhoneGap Build)
- Providing the User Experience a native feel (mainly handled by framework)
All these points are child’s play to overcome if you have a good practice and know how to do it. However, discovering how to do everything is quite a difficult task than doing it in the native way.
With all my experience, I have learned and observed over the time that I have been creating hybrid mobile applications. The following are the essential 7 Points that you should keep in mind before getting started with HTML5 mobile development.
1. HTML5 is NOT Prominent than Native, but It Hardly Matters
As I said, HTML 5 mobile applications look and work just like native mobile applications, but many sophisticated native applications still have the capability to be better. The Pareto principle or the “80/20” rules execute really well here. With the support of HTML5, you can easily develop an app, giving you about 80% of the performance if the same app was developed over native platform. But this 80% achievement will attract cost and time that would be 20% of the whole app developed on other platform.
HTML5 works fluently across all platforms that terribly minimize the cost by only having to create a single version of the application. But, to get a perfect app, you may require an investment in developing native applications for each and every platform.
You know that HTML5 offers some exciting features, and Fastbook by Sencha is an excellent example of this, but for most of the HTML5 developers it may require professional assistance to replicate the same level of quality.
However, some people presume that native is better than HTML5, in terms of its performance and features. Plus, if they want to create a ‘real app’, they just go for native.
But the fact is that, well created HTML5 mobile applications can beat an average native application. There is hardly any difference between these two apps. That means you can create a well-designed mobile application with the HTML5. If you are new to HTML5, please follow here to understand basics of HTML5.
In fact, many clients don’t even know the difference between the HTML5 and Native. Just deliver what they want and they will be satisfied with your work.
2. HTML5 Can Do Anything that Native Application Can Do
Technically speaking, HTML5 apps are only limited to the capabilities of the browser your device may have. However when we compare the gap of this limitation and capability of a native app, you may find this difference is very small and isn’t a lot.
The browser can connect with PhoneGap and PhoneGap can communicate with the device, so the browser has all avenues to everything that a native application can do using the support of phonegap itself and inbuilt functions.
However, this process may be quite complicated, but with the help of PhoneGap plugin you can easily implement the native functionality.
- able to setup Google Maps APIs
- able to create Google Maps for devices
- able to create Google Maps in a website
- able to control the Maps UI events
For detailed course outline, follow here.
3. You Can Also Create iOS Applications without a Mac
It is the most accepted fallacy that you need a Mac to develop iOS applications, even if you are making the use of HTML5. But, it is not true.
Perhaps, it’s not your fault as many tools will instruct you that you need the Mac if you want to build an iOS application. You can see the following message that appears when you try to add iOS as a platform from windows computer:
After viewing this message, you might think that you require a Mac, in order to develop iOS applications.
You can use the PhoneGap Build cloud service to build the application (this refrains the need of having the SDK as the application is developed on their end), and utilizing OpenSSL to create a personal information file that is important for signing your application (otherwise you would need a Mac to create) you can also build iOS application on your Windows system.
4. The DOM is One of the Determining Factors for Performance
However, the framework that you will use, has some resourceful ways of decreasing impact of influencing the DOM, but still you should pay more attention.
While creating HTML5 mobile applications, don’t forget to look up strategies for keeping the DOM as simple as is possible.
5. It is Imperative to Use a Good HTML5 Mobile Framework
If you are not using a great HTML mobile framework, then your application won’t look and perform as well as the native application. Thus, always build a mobile application using a UI framework like Ionic and Sencha Touch.
In general, HTML5 mobile frameworks have been directed to manage all the new and unique challenges of building native-like behavior with JS. It includes elements such as scrolling lists with acceleration and deceleration, screen transitions, viewport bouncing and more. The framework is also used to boost performance by doing things, such as re-using DOM elements. However, it may need a great effort to make its performance near to the native application, without using any of the frameworks.
Well, there are some frameworks that are not as good as others. Thus, choosing reliable frameworks can be one of the strenuous tasks for you as there are tons of mobile frameworks available on the market.
From my experience, I would recommend you the Sencha and Ionic frameworks. These two are the well-performing frameworks and will help you in creating a robust mobile application.
6. Sometimes Debugging is Great, Sometimes It Is Difficult
You can test your mobile application right in your browser that means no devices or emulators are required. In fact, you can debug in an environment that you are already familiar with, like Chrome Dev Tools.
If you are using something like PhoneGap, then it cannot be tested via browser since it approaches the native API’s of the device.
In order to cross-check any PhoneGap functionality, you can check it on your device, but then thinks become a little more challenging. However, you can use GapDebug to provide you with debugging tools similar to a browser when your application is activated on a device. It is an easy way to test functionality, but the irritating part is that you need to create a new build with PhoneGap and then install it on your device to cross check any changes.
Note: When checking with GapDebug, if your application is not working and there are no issues, then you can try this:
- At first, open up the debugger for your application.
- Wait until it loads.
- Go to the ‘Resources’ section and click on the refresh icon.
This will confirm you that the debugger is active while your application is starting up, so you won’t lose any issues that occur at the start.
7. Elitist Native Developers and Protective HTML5 Developers
Many native mobile application developers perceive an attitude that they are the real developers because they code native mobile apps. While, some HTML5 application developers get defensive of their selected tech. This can build an extremely noxious environment.
I really think that both the developers are scared of this argument because the time they have spent on their tech may become redundant. Of course, there is a benefit of using both the applications in different situations.
As a developer, we always want to learn something new and challenging. It is great to associate yourself with the impeccable skills you possess. So, the criticism of your selecting tech can feel like a personal attack.
If you are moving into the world of mobile application development, then always try to learn new things and grasp everything with humility.
In this Web Development Tutorial, we learned the 7 lessons that can help you while creating HTML5 mobile application. There is a lot more technical stuff than conceptual one in this post as I shared my experience with the HTML5 mobile applications and tried to give you the relevant points that will help you while you are creating the mobile app with HTM5.
Lucy Barret is a Web Developer at WPGeeks Ltd. She also assist her clients in hiring WordPress theme developer for their urgent projects. You can follow her company on various social media networks like Facebook and Google+.
- Free HTML5 Online Test
- Top 10 HTML5 Interview Questions and Answers
- Getting Started with HTML5 Mobile App Development
- Top 20 Resources You Need To Master HTML5 Canvas
- Free Practical Guide to ASP.NET Web API
- Step by Step Using Bootstrap 3 with ASP.NET MVC 5
- How HTML5 and CSS3 is helpful in responsive design?
HTML5 Web/Mobile Developer Jobs [Updated Daily]
|Newark, NJ 07102||14-June-2017|
|New York, NY||20-June-2017|
|Menlo Park, CA||21-June-2017|
Entry Level Web Developer
|Centerville, UT 84014||22-June-2017|
UX Front End Engineer
|Seattle, WA 98104||21-June-2017|
Sr. Tableau Developer/ Sr. Data Analyst/Architect
|San Diego, CA 92109||09-June-2017|
|Hollywood, FL 33024||14-June-2017|
Red Team Penetration Tester (Entry Level)
|Orlando, FL 32825||22-June-2017|
Web Developer (W2)
|San Francisco, CA||01-June-2017|
Junior Graphic Designer/Web Developer
Web UI/UX Developer
|Austin, TX 78701||22-June-2017|
UI Developer/FrontEnd Developer
|New York, NY 10281||16-June-2017|
Front End Engineer
|Stanford, CA 94305||22-June-2017|
|San Francisco, CA||18-May-2017|
Software Engineer -Front End
|Newport Beach, CA||25-May-2017|
|Fort Myers Beach, FL||24-May-2017|
Senior Front End PHP/HTML/JS Developer (PayFac Platform)
|Hollywood, FL 33024||31-May-2017|
Web Application Developer
|Lafayette, CO 80026||21-June-2017|
Front End Web Developer
Paid Internship Web Developer
|Cumberland, RI 02864||21-June-2017|
Front End Engineer - Chicago
|Chicago, IL 60606||25-May-2017|