I love WordPress. A big fan. But then I once-upon-a-time used to be a huge fan of PHP, and then I’ve grown up. I know people will kill me for that statement. 😉
But the fact of the matter is PHP still has serious issues. And most recently, I can’t use it to run WordPress at Google App Engine, something that’s amazingly great for the starters who want to setup quick-and-not-so-dirty app.
I thought… would it be good to have WordPress for GAE? I came across Vosao – Open Source CMS for GAE/J. And I loved it immediately. Has a long way to go, and I do not see any active development on the same… surprised, what happened to the team.
StackOverflow has a question – What CMS runs on Google App Engine, but I personally didn’t like any of them.
And then I thought again… how about writing my own CMS with persistence in a Non-Relational Store with plug-in model so that I can run it on any store, be it GAE’s Data Store, MongoDB or Amazon DynamoDB or whatever.
Let me see if I can hold on my thoughts and really get on with it… At the moment, no promises!
This weekend’s changes to the Android MVC project include the following:
- Reorganization of the Command classes. AbstractBaseCommand has been created for simple get/set. All methods except “
execute” have been implemented. This class now forms the base for
IdentityCommand as well as
Controller now has full support for forward as well as backward navigation.
Controller can now record the activity navigation. Uses
Controller now support forward navigation with few more options:
- Can optionally mark the command to not be recorded
- Can optionally reset the activity stack
Controller now has
back method for backward navigation.
Controller, during forward navigation, manipulates the activity stack appropriately.
- Missing part is handling failure scenario when receiving a response. When processing the response, if it is in “error” state, IMHO, the response must be handled by the same activity rather than launching a new one.
- More so, the command must be removed from the top of the stack if there was an error.
- The support for
IInitializable has been removed. Not required.
- The initialize method, henceforth, has been removed from
BaseActivity now has two methods
processData called before
onBeforeCreate and before
BaseActivity now handles the back button (using the v2.0 function
onBackPressed) by calling the back method for navigation.
- Developers using v1.6 can override the method
onKeyPressed and look for the
KeyEvent.KEYCODE_BACK and call the method
Sample case study (showcase) now comprises of the following:
- SplashActivity that happens to be the main launcher activity.
- Erstwhile MainActivity has been renamed to LoginActivity to reflect its purpose.
- HomeActivitiy continues to be the same.
- SplashActivity launches LoginActivity using IdentityCommand and sharing some data (using Tag)
- LoginActivity launches HomeActivity upon successful login (sharing some data using Tag and passing some piece of data to LoginCommand using Data).
The code is, as usual, available on Sourceforge at http://android-mvc.git.sourceforge.net/git/gitweb.cgi?p=android-mvc/android-mvc;a=tree. Additionally, I’ve also pushed the codebase on Github at http://github.com/gvaish/Android-MVC.