A very fitting app for the holiday season was just released on December 19th 2011 to the UK Android Market. Amber Homeless Helper (or AmberHH) was commissioned by The Amber Foundation charity in the UK and written by Brian Long using Oxygene for Java.
The Amber Foundation has three centres that help the homeless and unemployed young people by giving them a temporary home when they need it the most. Their motto is “Transforming young lives.”
The AmberHH App is targeted at people who want to help those in need by locating services that offer assistance in various areas. It provides a criteria-driven database search combined with geographic and map information to find relevant services in the area of need.
Typical usage has a user selecting a service category (i.e. Employment Advice, Meal Service, etc.) from a list and a geographic area to search for those services within. The current location can also be used from the built-in GPS (or network cell location) to find services nearby. The search results are displayed on a map with a ring indicating the desired maximum radius for the services. This makes it easy to find the right services where they are needed. The master database of services is stored on a central server and accessed through a web service. Individual search results are persisted locally. These results are accessible later without the need to re-query the central database.
The user interface is organized with tabs and has a custom theme applied to make it more colorful and match the foundation’s colors. It has menus, a splash screen, confirmation dialogs, an expandable list view and various customizations to improve the user experience.
Behind the scenes the web service is accessed with the standard Android kSoap2 library. The data is stored and retrieved locally in the SQLite database. Google Maps provides the map interface and responsive annotations. The app accesses the current location through the Android LocationManager.
The user settings are stored as a shared preference. This persists them between invocations of the application and allows the settings to be accessed throughout the app. The app supports launching the SMS and email apps as well as launching URLs to the web browser.
“The choice to use Oxygene for Java to develop the app was an easy one,“ reports Brian Long. “As a long time Delphi and Prism developer, I was immediately at home as soon as I started to work on the project. With a native Android project, an Android-specific approach was necessary in order to get the correct design and screen layout as well as custom styles, themes, icons, etc.
Oxygene for Java welcomed the Android specifics and made the development of the non-trivial features a pleasing process. Consuming the Android and Java libraries like Android kSoap2 was perfectly straightforward. Bringing the app to the Android market was remarkably stress-free.
The advantages of Oxygene for Java over cross-platform or other alternative tool solutions is that Oxygene for Java still uses all the native Java APIs,“ continues Long. “This makes referencing the documentation and troubleshooting development issues much easier.
As a 1.0 release Oxygene for Java is comfortingly capable. The regular fixes and updates keep it up to date and functional. It would be my first choice again for Android app development,“ Long concludes.
© The Amber Foundation & Brian Long — reprinted with kind permission.