I’ve walked down this road before creating my own PHP framework, which is at best a little misguided. Mostly I will argue that copying the ActiveRecord pattern was my undoing, as whenever I have to use my framework (my wife’s site for Dance Company Ammara still uses it) it is the database access that truly makes me shudder, but in my defence the golden age of PHP frameworks had yet to begin when I wrote it (Symfony2, Laravel, Phalcon where not out yet) and the choices for a frameworks all seemed lacking. Though I liked Symfony at the time, I felt that it was over-engineered for a PHP framework (it tried to be far too much like Java frameworks like Struts) and running it on a shared hosting site without APC it was really slow. So obviously I could write a better framework – ah the hubris of youth.
So when I looked at the state of Mobile frameworks I really tried to not write a new framework. For my work we needed to quickly create a mobile application, and I spent a bunch of time researching the state of Mobile frameworks. I made some apps 3 years ago with jQtouch or jQT as they are now calling it, and started working with it but quickly found it lacking. So I did a kind of mobile rundown of the big frameworks:
Over the past year I have been working on my own mobile hobby App Recipe Folder, a kind of Pocket/Instapaper/Readability for Recipes (using a Chrome Extension or Bookmarklet you can save any Recipes you find on the web and then access them later on your Mobile device). It was written using jQuery Mobile, and that is a mistake I would never make again. To quote one of the creators of PhoneGap:
My decision after watching a couple of excellent (and highly recommended) Phonegap presentations by Christopher Coenraets and Tommy Williams was to go without a framework at all. However, after examining the source code for Christopher’s Backbone/RequireJS example and starting to write code without a framework I realized that there was a bunch of repetative programming chores that I could encapsulate into a framework. There were also a few things that I really liked about the old jQTouch and that I could probably very quickly write a micro-framework that could acheive almost all of them. I could throw in iScroll (I needed scrolling) and Fastclick as optional micro-libraries and Bob’s your uncle I would have exactly what I wanted. A tiny framework that could be easily extended, easily altered and was very fast to learn. And Voila! we now have Topcoat Touch.