This month I will concentrate my free time to develop a SmartPhone application. I will do that together with a friend. We do that because I should prepare to show this application in a talk that I will do in December. But it's not only about SmartPhone and user interface; it's more about architecture, and especially SOA. I hope that I have enough time to write some of my conclusion here, on my blog.
But first, here is a brief introduction to the application.
Chronos is a time management system, written primarily for SmartPhone, but easily converted to other user interfaces. The system is written to be extensible. This is done in mainly in two different ways:
1) We use web services to communicate with the services at the backend. This web services use business objects to transfer information between the user interface and the database. (By business objects we mean own made objects, not a Microsoft Dataset.)
2) We split the user application in two separate layers. One is tied to the user interface and one is agnostic to the user interface. This is often called User Interface Process, UIP.
Other things that we have to consider
Because the SmartPhone is a device that has the possibility to be both on-line and off-line, we need to support both states. In Chronos this means that the user should be able to register both times, new customers and/or projects without to be connected to the web services at the backend. We have to build functions for caching the data and synchronize it, automatic or manually, with the web service.
Description of functions
Chronos gives the possibility to register times, down to a minute. One day could have unlimited times registered. Each registration is assigned to a customer and project. And each registration has also a note field for optional description text.
Each user has his own collections of Customers and Projects. He can add, edit and delete them. They are cached on the client, but is synchronized with the backend
The main screen gives an overview of times that are registered for a week.