Expense Report

03 February 2010

Expense Report Roadmap

Following activities are planned for Expense Report in 2010:

In a few weeks, MIDP port of Expense Report version 0.5.4 will be released, which will include several user experience improvements.

Continue reading "Expense Report Roadmap"

| | TrackBack (0)

28 April 2009

Expense Report version 0.5.3

Expense Report version 0.5.3 is now available. This release includes bug-fixes against version 0.5.2 and some improvements. Thanks to my friends, translations of messages have been much improved.

| | TrackBack (0)

27 April 2009

Expense Report with file exporting feature

I have published an experimental release of Expense Report that has file exporting feature. Now you can export your expenses to a file on your memory card so that you can transfer the data to your PC. Why don't you try this release?

Continue reading "Expense Report with file exporting feature"

| | TrackBack (0)

15 February 2009

With more languages comes Expense Report

Expense Report version 0.5.2 is now ready to download. This version newly supports German, Korean, and UK English user interfaces as well as International English, Japanese, Simplified Chinese, and Traditional Chinese.

This version also corrects a defect of handling currency code. Please upgrade your installation.

| | TrackBack (0)

18 December 2008

Profiling main screen - Expense Report (6)

The more I have used the Expense Report application and have added expenses, the longer Sony Ericsson W890i has taken to show the main screen. Although I suppose it, it is slower than expectation.  W890i takes 7 seconds to display 50 expense items while Nokia E51 takes 3 seconds. The user can feel like being kept waiting so long if the duration exceeds 5 seconds. Furthermore, because I have not optimised the implementation, the main screen will be instantiated every time the user goes back to it. It means that the user has to wait very long time for the main screen after any operation.

Which part really took so long time? I have measured profiling data so that I could find out the bottleneck in the main screen.

Continue reading "Profiling main screen - Expense Report (6)"

| | TrackBack (0)

15 December 2008

Soft key labels - Expense Report (5)

As a small change in Expense Report version 0.5.1, I have revised soft key labels so that even small screen handsets can display them without truncation.

In the market, there are still many mobile phones with small screens like 220x176 pixels, 2 inches diagonal. Six Latin letters or two Far-Eastern letters are typically suitable for soft key labels so that such small screen can properly display them. Again, this is just a typical case because Latin letters are usually shown with proportional fonts, which means that the width of letters differ from one to another.


In MIDP-2.x, command labels can have two forms: one is short form for soft key labels on the bottom of the screen, the other is long form for command menu screen. I also have added long labels so that MIDP-2.x devices can display more self-contained labels.


| | TrackBack (0)

12 December 2008

Improvement of multilingual support - Expense Report (4)

Besides reorganisation of the internal state management, I also modified the following during development of Expense Report version 0.5.0:

  • The user can select the language when the application is invoked for the first time.
  • The user can delete two or more expenses at the same time.
  • From the version information screen, the user can launch web browser and connect the application's web site so that the user can learn the latest information of the application. (This works only for MIDP-2.x handsets.)

Until Expense Report version 0.4.2, the application's default language depended on the mobile phone's language setting. While the language for labels on the screen can be changed after the first invocation, the language for preset data such as expense type names cannot be changed. This means that the user needed to set the language of the handset properly before he/she attempted to install Expense Report. Version 0.5.0 onwards ask the user which language is preferable when the application is first time invoked. Preset data will be initialised in accordance with the user’s language selection.

Secondly, I added a new screen so that the user can delete two or more expenses at the same time on. By this feature, the user can delete all expenses with preserving preference settings. By pressing “Mark multiple expenses” command on the main screen, the application goes to the screen that has check boxes attached to each expense. The user can press “Mark all expenses” command and subsequently “Delete selected expenses” command, so that selected expenses will be deleted. Because the type of instantiated List object cannot get altered, MULTIPLE type List is prepared for this purpose in addition to the IMPLICIT type one that is used for the main screen.


Version information screen was prepared separately for MIDP-1.0 and MIDP-2.x. The first one relies on Alert while the other does on Form. The latter has a link to the application's web site and it can launch the web browser by calling MIDlet.platformRequest() method. Usually it connects the English web page, but it connects the Japanese one if the application's language is set to Japanese.


| | TrackBack (0)

11 December 2008

Reorganisation of internal state management - Expense Report (3)

After releasing Expense Report version 0.4.2, I decided to reorganise the internal state management. Because, the following two major functionalities remained to be added, which expected to be so complicated that implementation could get much confused:

  • Synchronisation between mobile phones.
  • Exporting data for PC software.

Both required asynchronous I/O, and did the users many steps to operate. I needed to prepare for mechanism that could afford adding such complicated features.

Previously, pressing command buttons by the user only triggered state transition. Therefore, all state transition occurred inside CommandListener.commandAction() method. Since asynchronous operations were going to be introduced, I decided to reorganise the internal state management. Finally, I got a huge switch-case block, which looked as if it was a window procedure in Windows programming. It must be later split into several pieces, or be replaced with table-driven state machine, or I have to rewrite it by using the State design pattern.

| | TrackBack (0)

29 November 2008

Adding Simplified Chinese locale - Expense Report (2)

Half a year had passed since the first release of Expense Report. I resumed development work from the beginning of summer 2008.

The trigger was Sony Ericsson W890i that I bought then. The one I chose was Hong Kong version so it could display Japanese letters. It unexpectedly supported Simplified Chinese locale as well as Traditional Chinese whereas Hong Kong version of K600i, which I bought in 2005, did only Traditional. I felt that time flew.

Anyway, since the mobile phone supported Simplified Chinese, I wanted to have my application fit it. Thus, I decided to add Simplified Chinese resources to Expense Report. In addition, I imported some portion of Korean resources such as soft key labels from another project that intensively supported Korean language.

I have published Expense Report version 0.4.2 at the beginning of September 2008. It also had a MIDlet icon and expanded record store usage up to 20 kilobytes.

| | TrackBack (0)

27 November 2008

Expense Report application

Expense Report is a Java ME application that tracks daily expenses on your mobile phone. I published this application in October 2007, and I have been updating it.

Couples of years ago, I had many business trips around the world. At that time, I had a Pocket PC as my digital companion, with which I kept track of trip expenses. Nowadays I no longer use PDAs but mobile phones. I need to have an application for mobile phones in order to track expenses instead of Pocket PC.

This demand led me to start development of the Expense Report application in September 2007. But why Java ME? The answer is quite natural. I use several mobile phones whose platforms vary and switch them depending on the activity plan of the day. I have no time to develop an application for several platforms one by one such as Symbian, Windows Mobile, and so on. Especially, there is no choice other than Java ME to deploy user-developed applications on to feature phones.

Because of my motivation, requirements to this application are:

  • Multiple currency support – I travelled across currency regions.
  • Multiple language support – My primary language is Japanese but some mobile phones cannot display Japanese letters.
  • P2P synchronisation among mobile phones – I switch mobile phones day by day. I must be able to transfer data from one to another.
  • Exporting data to PC – Looking back to Pocket PC days, I input expenses with Pocket PC during business trips and imported the data to financial software for PC afterwards.

Because data will be finally transferred to PC, Expense Report application need not have functionality for statistical analysis. I achieved the first two requirements in a month and I made the first release at the beginning of October 2007.


| | TrackBack (0)

その他のカテゴリー

Android | Dialer | Expense Report | JPDialer | M2ch Viewer | Mobile | Programming