Wikipedia S40 J2ME app

Overview
A J2ME app for reading Wikipedia addresses large populations in the Global South, which is a strategic priority for the Wikimedia Foundation.

Despite the fact that J2ME is a dying platform for mobile apps, it is still prevalent in many parts of the world on a wide variety of feature phones. Recent feedback from mobile operators in India, Southeast Asia, the Middle East, Africa and South America indicate a high preference for a J2ME app over Android apps and browser-based experiences.

Here is a list of basic requirements for a J2ME app:


 * Fast download of articles
 * Easy navigation of articles
 * Option to turn off images (could leverage Zero infrastructure)
 * History
 * Bookmarks
 * Internationalization
 * Inter-wiki language links (nice to have)

It is possible that this app will participate in zero-rated programs with various mobile operators. Part of the preference expressed by operators stems from their ability to market a J2ME app, which can be featured prominently in online portals and optimizes the user experience on basic phones. Since some feature phones are capable of net access but may not have data plans enabled due to cost, a zero-rated version of this app could help expand the audience of Wikipedia beyond those feature phone users already with data plans. See more about Wikipedia Zero and operator programs here.

Design issues
J2ME is notorious for exposing device-specific incompatibilities. The usual problems relate to screen size, available memory and app download size. Therefore, a core design consideration is a general approach to matching the characteristics of a particular device. This may be accomplished by employing a framework that detects the device characteristics and then allows enough flexibility so the app can adjust. It is possible that different versions of the app may be needed for different classes of device. Limitations on app download size may be related to mobile carrier restrictions.

In the first iteration, this app will target relatively recent Nokia Series 40 devices, which tend to be relatively capable devices in the overall universe of feature phones.

Source
You can find the source code at https://github.com/NitinRobosoft/S40-J2ME