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!

Android/Gecko

From Kiwix
< Android
Revision as of 21:57, 2 February 2012 by Ijon (talk | contribs) (minor language fixes)
Jump to: navigation, search
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