Tell us your story
Tell us your story
How has offline Wikipedia affected you? The Wikimedia Foundation (the non-profit that supports Wikipedia) is looking for personal, diverse and inspiring stories about how offline Wikipedia affects the world. If you have a personal story that you would like to share, please contact: stories@kiwix.org. Thank you!

Difference between revisions of "Android/Gecko"

From Kiwix
Jump to: navigation, search
(Roadmap)
m (minor language fixes)
Line 1: Line 1:
 
[[image:android.jpg|right|150px|Android logo]]
 
[[image:android.jpg|right|150px|Android logo]]
  
Always more people use [https://secure.wikimedia.org/wikipedia/en/wiki/Smartphone smartphones] as medium for their digital life. This is especially the case in emerging countries which are targeted by Kiwix. We think [https://secure.wikimedia.org/wikipedia/en/wiki/Android_%28operating_system%29 Android] will be the most important mobile platform in the next years, especially for the cheapest devices. Android is in addition, [http://www.fsf.org/news/2010-05-app-store-compliance to the opposite of the Apple app. store], open to free softwares. Consequently our next big step, is to port Kiwix to Android.
+
Ever more people use [https://secure.wikimedia.org/wikipedia/en/wiki/Smartphone smartphones] as a medium for their digital life. This is especially the case in emerging countries, which are targeted by Kiwix. We think [https://secure.wikimedia.org/wikipedia/en/wiki/Android_%28operating_system%29 Android] will be the most important mobile platform in the next years, especially for the cheapest devices. Android is in addition, [http://www.fsf.org/news/2010-05-app-store-compliance unlike the Apple AppStore], open to free software. Consequently, our next big step is to port Kiwix to Android.
  
The [http://www.wikimedia.org Wikimedia Fundation] is really interested in the Android Version and grants the development of this port.
+
The [http://www.wikimedia.org Wikimedia Fundation] is really interested in the Android version and financially supports the development of this port.
  
We focus on tablets because this seems to be there where Kiwix can help a lot, especially in India, but the software should also run on smartphones an we will do our best in that way.
+
We focus on tablets because this seems to be there where Kiwix can help a lot, especially in India, but the software should also run on smartphones and we will do our best in that way.
  
 
== Technology ==
 
== Technology ==
  
We do not want to start an other software which would generate a lot of additional code to develop and maintain. So, current Kiwix code base has to be reused and ported. Kiwix runs currently with the help of [https://developer.mozilla.org/fr/xulrunner Xulrunner], but it can also runs perfectly using Firefox. [https://developer.mozilla.org/en/getting_started_with_xulrunner#Alternative.3a_Use_Firefox3_-app_to_run_XUL_apps Firefox can since version 3 is able to launch third party software], like Kiwix. [https://wiki.mozilla.org/Fennec Fennec], Firefox for mobiles, was launched a few month ago for Android, so we hope that Kiwix could be ported to Android using Fennec or something similar (see [http://joliclic.free.fr/blog/index.php?category/mozilla this example]).
+
We do not want to start a separate project, which would generate a lot of additional code to develop and maintain. So, the current Kiwix code base has to be reused and ported. Kiwix runs currently with the help of [https://developer.mozilla.org/fr/xulrunner Xulrunner], but it also runs perfectly using Firefox. [https://developer.mozilla.org/en/getting_started_with_xulrunner#Alternative.3a_Use_Firefox3_-app_to_run_XUL_apps Firefox can since version 3 launch third party software], like Kiwix. [https://wiki.mozilla.org/Fennec Fennec], Firefox for mobiles, was launched a few month ago for Android, so we hope that Kiwix could be ported to Android using Fennec or something similar (see [http://joliclic.free.fr/blog/index.php?category/mozilla this example]).
  
 
== Challenges ==
 
== Challenges ==
One difficulty is that Android devices have [https://en.wikipedia.org/wiki/ARM ARM] CPUs. So we need to cross-compile Kiwix for ARM on GNU/Linux. We use that it's possible to cross-compile Firefox Mobile ; we also know that part of our code can compiles for ARM because we have ported kiwix-serve... but we never did it for the whole software.
+
One difficulty is that Android devices have [https://en.wikipedia.org/wiki/ARM ARM] CPUs. So we need to cross-compile Kiwix for ARM on GNU/Linux. We know that it's possible to cross-compile Firefox Mobile; we also know that part of our code compiles for ARM because we have ported kiwix-serve... but we never did it for the whole software.
  
 
Porting a Xulrunner application to Android is not documented and it seems we are one of the first projects trying to do that. Here are three different approaches:
 
Porting a Xulrunner application to Android is not documented and it seems we are one of the first projects trying to do that. Here are three different approaches:

Revision as of 21:57, 2 February 2012

Android logo

Ever more people use smartphones as a medium for their digital life. This is especially the case in emerging countries, which are targeted by Kiwix. We think Android will be the most important mobile platform in the next years, especially for the cheapest devices. Android is in addition, unlike the Apple AppStore, open to free software. Consequently, our next big step is to port Kiwix to Android.

The Wikimedia Fundation is really interested in the Android version and financially supports the development of this port.

We focus on tablets because this seems to be there where Kiwix can help a lot, especially in India, but the software should also run on smartphones and we will do our best in that way.

Technology

We do not want to start a separate project, which would generate a lot of additional code to develop and maintain. So, the current Kiwix code base has to be reused and ported. Kiwix runs currently with the help of Xulrunner, but it also runs perfectly using Firefox. Firefox can since version 3 launch third party software, like Kiwix. Fennec, Firefox for mobiles, was launched a few month ago for Android, so we hope that Kiwix could be ported to Android using Fennec or something similar (see this example).

Challenges

One difficulty is that Android devices have ARM CPUs. So we need to cross-compile Kiwix for ARM on GNU/Linux. We know that it's possible to cross-compile Firefox Mobile; we also know that part of our code compiles for ARM because we have ported kiwix-serve... but we never did it for the whole software.

Porting a Xulrunner application to Android is not documented and it seems we are one of the first projects trying to do that. Here are three different approaches:

  • Compile Firefox mobile and hack the code (easier way)
  • Compile Firefox mobile and run the code with -app code (middle way)
  • Compile Xulrunner for Android (most complicated)

Roadmap

Kiwix Desktop UI prototyping port (in Android Emulator)
  1. Setup Firefox compilation environment and Android emulator (20 hours) done
  2. Compile & run Firefox for mobile (20 hours) done
  3. Port of Desktop UI - XUL/CSS/JS files (20 hours) done
  4. Port components to JS-ctypes (~40 hours)
  5. Prepare the first prototype (~20 hours)
  6. Redesign the UI (~20 hours)
  7. Prepare a first public version (~60 hours)

It's not clear exactly how at the end it will work, but we will firstly try to hack the fennec code adn afteward try to see how to do that more cleanly.

See also