Sep 27, 2013

CurrencyMe: The Power of Nokia Asha Platform

Hi, all

Today I would like to announce my new app CurrencyMe: the perfect tool to follow over 30 currencies rates in real-time.

Based on your local currency, the app displays the conversion rate to other currencies. Pretty useful tool for investors or travellers.

CurrencyMe was developed in order to show off the power of new Nokia Asha Platform, currently represented by the device Nokia Asha 501.

Asha Platform is built on top of CLDC 1.1 and MIDP 2.1.

Regarding user interface, there is a tailored version of LWUIT, which brings interesting new components. LCDUI can also be used.

CurrencyMe is a very simple app, however, it was possible to implement a good set of features, in order to use as many new components as possible brought by Asha platform.

See below the list of all components X features:

PopupChoiceGroup: A new LWUIT component that allows to pick a value from a popup list. It is used for the user to pick the default currency.

FormItem: A new LWUIT component that consists of one or two rows, can optionally receive a main icon displayed on the left and a smaller action icon displayed on the right, and it can be used to trigger up to two actions. It is used in the About screen to display the details of the app, i.e., name, version and vendor.

HeaderBar: A new LWUIT component that allows the user to create a custom HeaderBar which can be added on Form, to create informative and interactive header bars, and has action buttons. It is used to display the screens' title. This component provides a spinner, which makes easy to show that some background operation is in progress, e.g., loading data from the Internet.

GroupHeader: A new LWUIT component that allows to create a header which can be added on Form, and is used to separate a group of items. It is used to group the settings in the Settings screen.

Switch: A new LWUIT component used to quickly switch between two opposite values. It is used to switch on/off automatic data refresh during start-up.

LocaleManager: A class from Internationalization API (JSR-238) that allows apps to retrieve locale information stored on the device  It is used identify device's locale to figure out the local currency.

Formatter: A class from Internationalization API (JSR-238) that allows apps to make use of internationalization services provided by the API. It is used to format the date/time and value of the rates, according to device's regional settings.

Network State Changes: A set of classes that allows to identify the network state, e.g. if there is a SIM card inserted or wi-fi is connect. It used to prevent the user to refresh data in case there is no Internet connectivity.

Besides all these new components, other libraries were used as well:

CurrencyMe is integrated to Nokia Ad Exchange, a private mobile advertising exchange offering access to the top ad networks in the world. It was very is get the app integrated.

Networking ME, a networking library for Java ME platform, was used to implement the access to currency rates service.

To collect data about app's usage and send data to Google Analytics, Google Analytics ME was used for this task.

Besides showing the tools that were used to build this app, it is also important to show the code for it. For that, I decided to provide the app's source code so you guys can take a look. This code is under GPL. There are some good reusable components to work with Record Store, NAX, GA, etc. For these ones, MIT license is applied.

To download the source code, click here!

Hopefully you guys enjoy the app and the source code.

See you in the next post...