HTML5 Support in Android and IOS?




  1. Introduction
  2. Why Do We Care?
  3. Android KitKat (4.4) - Latest version of android
  4. Fennec (Firefox for android)
  5. Android NDK
  6. Conclusion




 Introduction


Android is an open source mobile platform and has more then half of the market share for smart phones. Developing on android requires knowledge of Java but it is not a steep learning curve. Web developers may be interested in its new support for WebView based off of source code used in Chrome. There is a slight difference between android webviews and chrome browser and I will explain these details in the following blog post.

Android KitKat (4.4) - Latest version of android

 

Android KitKat is the latest version of the Android platform as of this writing (Dec. 5, 2013).  The main feature that will interest developers is the new chrome like WebView. Android Applications use webviews based on Chromium Code which includes common Javascript V8 and Blink rendering found in version 30 of Google Chrome on Android version 4.4.

Pro's vs. Con's

Cons:
Not the same as chrome because it doesn't support:
        1) WebRTC
        2) WebGL 3D Canvas
        3) WebAudio
        4) Fullscreen API
        5) Form Validation
        6) Chrome Apps Platform

 
   
Pro:
Supports HTML5 better JavaScript run time, lets you do remote debugging using chrome developer tools.

Why do we care?

Support for HTML5 helps make using the web richer and will make developing apps easier. If WebRTC is fully supported then perhaps you could video chat with someone using our browser or android phone instead of downloading and installing third party files.

Fennec (Firefox on Android)

screenshot from https://play.google.com/store/apps/details?id=org.mozilla.firefox


I'm investigating if it is possible to ship a browser in an android application. In my search I came across Fennec which is the Firefox implementation of Android. Firefox is written in C++ and Fennec uses the same source code but also adds another layer of native Android code. Fennec is designed for smart phones, touch screen devices and UI utilizes a different XUL then what is found in Firefox for PC. Since it's used on smart phones then they are limited in CPU, memory, etc. Fennec uses parallel processing to run on android.


Like most technology Fennec has dependencies and the dependencies are:

  1. Must download NDK for Android     
  2. Set the mozconfig environment variables for Fennec.
  3. Must download mozilla-central git repository (https://github.com/mozilla/mozilla-central)
   
How does NDK for android work?

Prerequisite: 
Must understand JNI to work with the NDK source code.

In a nutshell, NDK lets you create shared libraries that basically lets you embed a C/C++ application in your Android App. Works on Android 1.5 Platform or later however I think Fennec can only run on 1.6 and greater. Although its better practice to develop applications in native code, you can write an application in C++ and have a wrapper.


Can Firefox Run on IOS?

On Mozilla's website it says that Fennec doesn't run on IOS but after speaking with a developer at Mozilla I found out that someone has created a way to build Firefox on IOS.

Source code is located here:
http://hg.mozilla.org/users/tanya.meshkova_gmail.com/ios-patches/

Here is a screen shot of how it looks:
link to original page: https://imgur.com/r8Qti



Conclusion:


Perhaps by using Android NDK which is used by Firefox to embed C/C++ source files in your Android application, we could perhaps embed Firefox in an applications. Or even
better perhaps we could totally replace the need of using WebViews and use a XUL window to display the page you would like to view.





Comments

Popular Posts