Version 0.2 will be releasing by early April, which means a big step forward in Android Binding.
There are numbers of improvements and refactoring done on 0.2 over previous versions, although those tweaks might break those 0.1x versions, but I believe those changes are in good direction in the long run.
The first thing is, I am changing the package name from “com.gueei.android.binding” to a much cleaner one, and the new package name will be
binding gueei.binding! Yes, most program use previous versions need to update the package names, but I am sure it leads to easier development in the long run.
(just found out that Android application package names requires at least two parts, binding cannot fit 🙂
Another big refactoring is on the List of Objects. Previously, binding to list of objects is via ArraySource or CursorSource subclasses, now, ArraySource evolves into ArrayListObservable (this name hints, we might have HashTableObservables etc. later on!) and it acts almost the same as a normal Java generic ArrayList (read http://code.google.com/p/android-binding/wiki/BindingToCollection for detail); at the same time, CursorSource(while CursorSource and ArraySource is deprecated now) is also changed to CursorObservable.
Along with CursorObservable, some enhancements are made on binding to Cursors, for example:
- When creating CursorObservable, you can choose to supply the Factory to CursorRowModel or not. In case a factory is not supplied, the CursorRowModel will be created with default (parameter-less) constructor;
- CursorFields (i.e. all fields that Cursor can fill like String, Float, Id etc) now accepts a String to create. That means, it will look for the column id from supplied cursor by itself.
I also included some new Converters to the package, like the HTML converter acts the same as CONCAT, but also convert the resulting string to Styled-spanned string.
Finally, experimental supports to ExpandableListView is also added in the pack. Expandable List View required a tree typed object graph, and in Android-Binding, you need to supply a nested ArrayListObservable or CursorObservable (or, a mix of them like a ArrayList as parent, and Cursor as children). In the latest version of Markup Demo, there’s examples showing this new capabilities.
As development of Android binding moves on, I believe it is becoming more stable and can cater much wider real-world usage. But users support is very important, and if you have any issue (or any kinds of UI not achievable) in Android-Binding, please do leave a message in the discussion group and I would look at it asap.