Home - ni3po42/traction.mvc GitHub Wiki

Welcome to the Traction MVC wiki!

June 21, 2014

Several major updates are coming now. Most noticeably is the name change: Traction MVC. This change was to better reflect how the framework is used now. It is less MVVM and much close to MVC or MVP. A new tag will be given to reflect version 0.9.0 when the last updates have been completed. In the mean time, stick to v0.7.0 or v0.8.0.

June 17, 2014

Another hiatus due to other projects. Major updates (0.8.0) to simplify the code and view decorations. No more attribute decoration; all binding is handled as JSON in the 'tag' attribute in views. This allows for more rich information to be given to the binding engine. This was a breaking change, and updated documents are on the way. There will be another Major update in the following weeks that may complete change how the framework works, but it'll be for the best.

December 11, 2013

Spinning up again. Had a long hiatus due to my busy work schedule, but work will begin soon and should move to 1.0.0 by end of this year. Feature freeze is in affect and only tests, bug fixes and documentation will be affected. On another note, it appears the framework is running fine in android 4.4.1.

October 16, 2013

BETA 0.7.0 released. Only a few minor changes were included. Official support for referencing relative contexts in elements (denoted using '.') Toasts with custom layouts can now be binded against. It will bind relative to the active view-model. Finally added coded to clean up elements and resources added to a view for binding when the view is being detached from the window. No new features will be added until after the 1.0.0 release at the end of this month. More testing/bug fixing will be conducted and more documentation will be developed.

September 27, 2013

BETA 0.6.0 released. Lots of little changes, most notable are how property updates are propagated, included ObservableMaps, added more useful Menu options like generic bindings and access to hook into ActionViews and general refactoring to improve performance and prepare for more future ActionBar updates. There will be a 0.7.0 update, and after that no new features until more testing is complete and the project will move out of BETA into 1.0.0 in October.

September 25, 2013

Possible breaking changes on the way! BETA 0.6.0 is underway. This update aims to improve memory usage a little, drop more deprecated features, add ObservableMaps and reduce the amount of boiler-plate code needed to create your own activity or fragment (or anything) into a ViewModel. With the current features being added/updated, I've delayed adding any more to the documentation since this update will change/simplify aspects of the framework dealing with Views and ViewBinding, which means I can go back an add more automated testing that was missed (ObservableCursors is not currently unit tested and might be the most unstable feature in the framework). Eventually all vanilla ViewBindings will be completly testable (a requirement for anyone who wants to contribute in the future).

September 19, 2013

BETA 0.5.2 has been released. This updates how relative contexts work and corrects an issue with contexts set at a 'root' element. This changes the interface for view bindings, but only +/-, no signature changes.

September 14, 2013

BETA 0.5.1 has been released! Check out the comments in the release to see what's been updated/added. I'll be making some slight tweaks to the documentation over the next few days to reflect the newest changes.

September 12, 2013

BETA 0.5.0 is in the works. It originally was to be a minor update to 0.4.2; however when using the framework for a practical application, I encounter issues with cursors and Lists that became too aggravating. So the 0.5.0 update will focus and revamping lists and cursors and how they work with AdapterViews, List/Grid views, spinners and so on. This will include a few new Observable types and change how AdapterViews interact with models, but it'll be the for the better good. Additional documentation is on hold until the 0.5.0 version is out since it might drastically change how objects work with adapterviews.

September 7, 2013

Slowly adding more documentation; should have the core docs complete in another week. I've uploaded the AAR binaries to the current release (BETA 0.4.1) finally (mostly because I have begun a small project that will use it). I plan on releasing the Demo application to the Google Play store soon so you don't need to build the whole project just to see some simple examples of what the framework can handle.

August 28, 2013

More detailed documentation is on the way finally! I'll be adding stuff (hopefully daily) under the Getting Started page. I will also be creating more tests for some of the newer features I threw in last update before releasing the 1.0.0 version in the next couple of weeks.

August 22, 2013

Beta 0.4.1 pushed. It fixes most of the instability issues surrounding ObservableCursors; There may be more to implement, but for now it should 'work'. The Demo app was updated to reflect the new way to implement them; they require you use the LoaderManager.

August 21, 2013

Beta 0.4.0 pushed, however it is not fully stable; my laptop was preparing to die on me and I didn't want to lose my sweet sweet code. ObservableLists revamped, but more importantly AdapterViews support has been updated to handle more weird spinner issues. Also, a major constraint is finally gone, you can now bind non-observable objects: the down side is that updating properties in a non-observable object is well, not observed by the UI or anything else. This was important to add to get rid of some of the annoying spinner problems: from now on, spinners should really only be populated with non-observables. I've updated the Demo application to demonstrate this. Initial support for cursors has been added; It will allow you to bind against anything that implements Cursor. You can also add calculated fields on the cursor if there is additional data that is needed to be sent to a UI. Cursor support is very buggy (there are some life-cycle issues with cursors unexpectedly being closed. I'm on it). Even though it's been unofficially supported, I can introduce Generic bindings now. You can now access any property on a view to set that property's value (this is only a one way bind though). It can also support attaching listeners to views, but that's unofficial right now and is probably buggy. Check out GenericBindings in the Demo.

August 16, 2013

Beta 0.3.1 is out. I meant for this to be 0.4.0, but I didn't update the version number in the AndroidManifest file and I am lazy to go back and redo it. Public final fields that implement IProxyObservableObject (or really any observable object) are registered automatically, so things like this:
public final Command<ResourceArgument> MyCommand = 
                   new Command<ResourceArgument>()
                   .registerAs("MyCommand", this);
no longer needs the 'registerAs' at the end for public final fields, so it's more like this:
public final Command<ResourceArgument> MyCommand = new Command<ResourceArgument>();

Less redundant!

Also, Commands now require arguments that extend CommandArgument. This will allow your code to see where the call is to be directed (getPropertyName() will give you the last property name in the propagationId) and also you can send a cancellation flag back to the originator through the argument.

A design overview was creating explaining some basics of how the framework works (with lots of typos and grammatical errors).

I'll be revamping ObservableLists a little (probably just the implementation, don't expect changes to the interface) before moving on to action view/providers and tab support. I will also be posting my import steps to import the source into Android Studios (it can act silly sometimes). No AAR file yet; but someday. Also, I'll be setting up a proper blog next week that I'll move most this information to.

August 13, 2013

AMVVM has moved to BETA. The version numbers will continue to increment from the alpha versions numbers and eventually reach release 1.0.0. Custom view bindings are a little better and I've been experiencing less and less unexpected issues with the core library. Still no direct AAR file to post (you'll have to still build/include the source yourself). While in BETA, I'll continue to create more tests and I'll be adding a couple of small features, but mostly will be working on documenting from here on.

August 2, 2013

Alpha 0.2.0 is available. I've been able to trim down the source files, excluding all Android Studio project files; the structure is all Gradle now (new projects will need to import them into Android studios; I'll include my steps next update, doing it just right can hose the whole project structure). More tests were added, focusing around the parsing and building of views, more is needed but it's a good start. The Demo app includes an example of creating a custom view that can bind. It's a little wonky, so expect it to improve as I update the core library to better handle awkward coding in the custom view. I will start on Alpha 0.3.0 to include even more test coverage, updates to elements to improve performance and will start to release an AAR file to reference directly in your own projects. The library structure and signatures are seeming to stabilize, so I am expecting to move to Beta in another release or so. In Beta, I'll be mostly working on small performance issues, more default view bindings and creating documentation.

July 26, 2013

The migration to Gradle is complete and the alpha 0.1.2 branch was merged into master. The namespace was updated, but nothing different with how layouts are annotated with amvvm attributes. With gradle, I merged the library project with the test project (because I can). The tests are lacking a bit, so the next update will include better code coverage along with more examples on implementing your own custom view bindings.

July 25, 2013

While it's still in alpha, I am migrating the source over to Gradle on Android Studios. Along with this, I'll be tweaking how views are bound in layouts (nothing too drastic, and it'll help avoid weird errors in Android Studios). The biggest change will be a change in the package name from 'ni3po42.android.amvvm' to just 'amvvm'. This work is being done on the alpha 0.1.2 branch and will be merged in to the master when complete. I will also be holding off on documentation until this transition is complete. Also, I'll be eventually moving update and wiki stuff to my blog site (whenever I rebuild it).
⚠️ **GitHub.com Fallback** ⚠️