For the rest, I was lost at least one hour or two before starting the work because of lack of any existing documentation, but using stackoverflow.com and examples from the official TypeScript website, I quickly found all I needed to start with this new language.
Port to PureMVC
As a result of this work I produced three PureMVC TypeScript repositories:
The PureMVC EmployeeAdmin demo can of course also be tested live.
Update: Cliff Hall made the official announce for it on the PureMVC website.
I started this project last year when jQuery Mobile was still in alpha stage. The first version of Employee Admin demo I made with alpha version of jQuery Mobile was interesting but not fully functional. I so have waited near a year to work on it again. Now that jQueryMobile is final and even passed version 1.0.1 few days ago it was worth it to try to finish the project completely. As recalled for my recent Employee Admin demo for jQuery (call it desktop so) that demo does not use a port of the PureMVC framework for jQuery Mobile. It is not necessary. The two are compatible but independent one from the other.
For those who do not yet know much how jQuery Mobile works, it is loaded in addition to the jQuery framework on a mobile HTML page. The library, once loaded render the HTML page (with some minor jQuery Mobile specific additions) to make it identical to any native mobile application. The framework supports a maximum mobile platforms.
All pages of a jQuery Mobile application must be hosted on a single HTML page. This is the so called jQuery Mobile multi-page template. Using address bar anchors, the framework is responsible to navigate between different pages of the application without changing the root HTML page hosting the application. For the demonstration I chose to only have two pages. One to manage the list of users, one to manage the form to enter data related to each user. In this demo, there is no dedicated page to manage user roles, it would have been ridiculous to make navigation so complex only to have a page hosting a panel when it can be made with a simple multiple select box.
More and more people ask me to finish the job I started in 2011 on the PureMVC Employee Admin demo for jQuery. So I recently took the time to finish it completely.
The project uses:
Before continuing note that using PureMVC Standard or PureMVC JS Native Port (Cliff spoke recently on Twitter ) instead of Objs would be really easy. It is only syntactic sugar. The libraries used, the architecture, implementation choices will be kept the same.
Also note that this project does not depend on any specific PureMVC for jQuery framework, here jQuery only provides the UI layer, PureMVC and UI layers always stands to be two distincts entities. I found this port illustrate this perfectly.
But this is not only a personal challenge. Now that we have an agnostic Unit Test Suite and an agnostic PureMVC port, we can easily create applications using jQuery as User Interface (I mean avoiding any UI components compatibility with others libraries). And what I really wanted to create was a PureMVC EmployeeAdmin for jQueryMobile as few applications already exists for and I need to learn how to use it. I'm already working on it and I think to be able to release it for the next week-end.
Next step will be to create a PureMVC EmployeeAdmin Demo with this standard port using jQuery UI (the standard jQuery version, so not the mobile one). My hope is that it will help in creating future Employee Admin port to other frameworks.
I will port PureMVC Employee Admin or BoxSplash demo in a later blog post I assume that this part will be valuable for PureMVC developers only, but for the moment I prefer to describe which Unit Test framework I used and how I implemented it to test PureMVC.
I'm working on an Android Froyo application in the goal of better learn Android development while developing a real Android application. It uses PureMVC for Java. I initially have planned to make it public here only when the application would have been pushed on the Android Market. But when I occasionally talk about this project here on my blog and on the PureMVC forums, some folks were really interested and ask me to give some help on how I achieved my PureMVC app development with Android. So today I decided to publish the application in its alpha stage even if it's still not ready.
The application is a currency converter that uses a webservice hosted on my website for several years that deliver currencies rate for 40 currencies with a daily update. Currencies rate are obtained from the European Central Bank. I recently have worked a on the webservice (PHP 5/ MySQL 5) to deliver currencies name in all existing languages supported by Android. I used a Java project based on the IBM International Components for Unicode project to fill the database with the I18N informations I needed.
The Android application itself uses threads, multiple activities, PreferenceActivity, SQLite local storage, Json and a call to a webservice and has unit tests associated to it. So this is what I think to be a good example to start with Android and PureMVC. I will commit its sources to the PureMVC website when it will be committed to the Android market as well.
As I proposed it recently on the PureMVC forums I took some time today to convert the multicore version of the PureMVC for Java port into a single core version.
I recently had to work with PureMVC Java for an Android application I work for the PureMVC community as an example of what we can do with PureMVC in an Android native Java application. I was surprised that the existing single core version didn't have onRegister/onRemove methods over Mediator and Proxy objects. Those methods were present in the multicore version of the port. The single core version was older and some other minor fixes have to be made, so I proposed Cliff to update the existing single core version with the multicore.
I took the best of both world each time possible in code and structure following the last PureMVC best practices for project editing.
I suppose that Cliff Hall will update the single core Java as soon as possible with this update, but for the moment here are the files :
As I promised on the PureMVC forums, I ported the Flex PureMVC EmployeeAdmin demo to Silverlight using PureMVC Standard for C#.
When I'll get some sufficient code review and Cliff has time to, I'm pretty sure that he'll add it to the PureMVC C# port for Silverlight as a demo.
This was my first real Silverlight application. I learned a lot from this work. I now have a better understanding of Silverlight, its pros and cons. As you may know, I'm specialized in Flex/Flash development, so you'll probably be interested in my opinion regarding Silverlight compared to Flex.
The Loadup library is a PureMVC utility intended to add support for Lazy Loading in PureMVC applications. It can also be used to load assets and report progress during loading.
I recently had to use the assetloader package of the PureMVC Loadup utility in a pure ActionScript project. When I finished to integrate it in my project, I realized that my application took an unwanted 120KB file size. After a little exploration, I found some direct references to
mx.controls.Image in the
AssetOfTypetext classes of the PureMVC Loadup utility.
As you may know,
UIComponent is the base class for all Flex SDK components and is required when you compile a Flex project. As it requires a lot of dependencies and take something like 120KB, when file size is critical, a good choice is not to use the Flex SDK UI components in your project. Another side effect of using it is that it prevents to compile the project from the Flash IDE as Flash IDE currently can't compile most of the Flex SDK dependencies which is quite frustrating as PureMVC is intended to be fully Flash/Flex compatible.
When I reported this problem on the PureMVC forums some users asked for a solution, I promised to blog mine. So here it is.