Improved icons list with new skin

Today I continued with UI skinning and enhancing visual feel from application. After few hours spent by searching a way how assign two different keyboard layouts to one screen (numerical for cash amount and alpha-numerical for comments), I gave it up and wrote to the Airplay forum. I hope that this function will not be a big problem and will be solved.

So result of my today work is full reworked icon list with automatic layout related to screen resolution and with full skin support. Here is result:

I realy like it and on iPhone with finger ability is icons-list much more better 😉

Application logic complete

Today I finished application logic coding and it seems that all works ok 😉 (or at least my unit test says that). Currently application can compute and simplify complicated loans relation and returns a result with minimal payback operations. Because a picture is better than thousand words, there are few examples:

On beginning, a simple example when Alice lends $10 John, and John lends $10 Bob. Instead of complicated payback from one person to another, there is a simply equal solution, where Bob will payback $10 directly to Alice:

Now little bit complicated example:

As you can see, after this optimization you save three steps.

And finally even more complex example:

Alice lends $100 John, John lends $50 Bob, Bob lends $20 Alice and Jane lends $10 Bob. Do you know how to payback money simply without duplicate the transfers? ;-).

And this is all for now. Application can handle also multiple loans to more people. I will try to prepare another examples of what application can do ;-).

Implemenation of simple DDX version

After windows implementation and action manager which makes my life a lot of easier, today I continue in extending of my UI framework builded upon Airplay SDK. I’m currently developing screens which have lot of input widgets and getting/setting data to this widget becomes a nightmare ;-). So, I implement simple DDX functions known from C++ MFC framework. This helps me to have a code much more cleaner and to maintain screens easier. And here are few screenshots from my today work:

Working on date selector under Airplay FW

A next goal during my work on the Party money application was a date selector. Because Airplay doesn’t have a native support for Apple Date widget, the whole element is created by using several CIwUIScrollableView controls. After few hours of trying to figured out how all things work I have finally working date selector ;-). Here is a screenshot from date selector with default (ugly ;-)) skin.

List of icons II.

Because list of icons looks really good for me, I decided to use it everywhere where it is possible ;-). I extend list classes, so buttons can have different sizes and customized captions. Besides icons choosing this widget will be used for displaying a person in a profile and for choosing person in a transactions.

List of Icons implementation

A next screen widget which I need for my Party cash application is scrollable grid of icons. What looks simply became a problem which needs several hours ;-). Again, because Airplay SDK doesn’t have any prepared widget, I have to create a new by using several existing ones. Result looks very promising, but currently without a final skin. So buttons have ugly default gray skin ;-).

Simple window framework for Airplay SDK

Altough I still explore lot of features and possibilities of Airplay framework, definitely I know that framework has only limited support for complex UI applications. Guys from Airplay SDK do a lot of work for 2D and 3D applications, and have a basic support for creating and skinning app windows and widgets. But what I really miss is some layer which helps you with window creating, event handling and so on.

So, I decided to create one on my own which is based on my another project Atomix – a large project for Visual C++. Currently I have implemented a window manager and action manager for Airplay SDK. So now, instead of writing lot of code for creating and handling windows, I have everything encapsulated in few objects and all my screen objects are derived from these base clases.

Still a lot of work has to be done to achieve the final application 😉

Continue reading