Well it’s been a couple years in development and has taken multiple revisions to get where it is today, but I have finally finished and submitted the children’s book I’ve been working on, Little Missy Messy, to both the Apple App Store and Google Play. It should be live in the latter within the next couple of hours as they do not have a review process like Apple does, but I expect that Apple will be done with their reviews in the next couple of days. In celebration, I will shortly be publishing some of the code I used in developing this project for other developers to use on GitHub. The project was created using FlashDevelop, so everything is written in ActionScript 3. There are plenty of gotchas that I had to learn about with development that I worked out over time, and to facilitate things I ended up creating a general mobile application framework for AS3. The framework handles the initialization, pausing, resuming, closing, graphic and sound loading, and includes a number of utility functions to assist in faster development. It has a few dependencies, of course, such as the powerful Starling graphics framework and a personal fork of the ASaudio project. Once everything is live I’ll update this post with the relevant links. In the mean time, here’s a chunk of code I wrote for Google Apps Script that checks the play store URL to see if the application has been published: http://pastebin.com/CmUfSKeE
Like I said before, this site isn’t about pitching myself to anyone. It’s about me owning my screen name, but every so often I like to remind myself of that by posting a blog post. That makes sense, right?
Anyway, it’s a good time to say the book app I’ve been working on and off on for a year and then some now is near completion. After a major push at the beginning of this year we finally nailed down many of the errors in text and audio, and since then I’ve been refining it for the real deal. The first tests on the iPad were abysmal. At first it seemed fine, I had the first 6 pages configured for testing, it loaded up and it ran well enough. Then I enabled the other pages and everything got crash happy. Turns out, Flash on iOS has pretty limited memory, about 14MB (at least, on the iPad 1) for you to use, and that fills up fast. “Back to square one on the framework” I though, but it turns out I didn’t need to go that far. After some dirty experimental code, I managed to get a working version of the book that didn’t crash, but still had memory leaks and didn’t run smoothly. It was a good start that I refined into the code I have today, which still doesn’t really work for other reasons now. Kids are impatient, so I’m trying to get the book to load all the pages at once. Now this is totally possible with my current code, problem is it runs at a low framerate. The solution? Flatten the pages for the GPU to cache. At first, this works great, until all the pages are loaded and flattened. The assets aren’t clearing out of the memory as I am expecting them too and once again I overload the memory. It’s something I’m working on and will hopefully hammer out soon.
I feel like I just let my blog sit here, most of the time. I really have nothing interesting to write about, and sometimes that makes me sad. Really I use this site because I like owning my screen name, and for some online storage for things I find amusing, but mostly the screen name thing. Maybe I should talk about web development, but I’m no expert and haven’t had any really “original” ideas myself. I’ve merged plenty of things together in my time, written a few custom jQuery plug-ins, created personal style sheet libraries and resets, but nothing that is mind blowing or unique. I’m your average web developer.
One thing I am doing right now is working with my wife’s uncle to develop and publish a children’s book on tablet devices. Mostly we are targeting iPads, but I haven’t left Android out in the cold. Even though the art is targeted towards the iPad resolutions & ratio, since I’m developing it in Adobe Flash/AIR I’ve been working to ensure I can export out an Android version at the same time and publish to the widest market possible. The book, by the way, is called Little Missy Messy, and you can see a preview here: http://littlemissymessy.com/preview.html. It’s only a video version of some of the pages, the real one will be all shiny and animated with page turns and buttons. Why buttons, you ask? Trust me, you asked. It’s for children and the one thing they really love to do is leave their hands and fingers on the screen. By making them use buttons to turn the screen, they won’t accidentally swipe to the next page. So yeah, there’s that.
I’m also working (for 2 years now) on something called SnapChat (you can check out the big blue under development page at SnapChat.org). What is it, you ask again? The goal is to create a fast, easy, and optionally-anonymous chat system that runs right in the browser, open to anyone who has the link. Sounds like something that’s been done before, and it has, but not in such a simple manner. The goal here is to make it fast to start up a chat and share it to whoever you like. It all started back days ago when I was working tech support. I was trying to troubleshoot a system with a customer, but our only method of communication was email. I didn’t have a phone, and I didn’t want to give him my personal IM address, even assuming he used the same services. I wished for an easy chat system that didn’t require any input other than my name, and I could have sent him the URL. Once the troubleshooting was done (after what felt like an eternity), I poked around, came up with the name SnapChat, and registered it. That was 2, maybe nearly 3 years ago now, and the site still hasn’t launched. I’m a perfectionist when it comes to my own projects, and while I’ve made leaps since day 1, I’m always tearing it down and starting it over. I think the only thing I’ve developed on it that hasn’t changed severely is the PHP-based socket server class I wrote. It runs the daemon the spins off new rooms on demand, which are in turn powered by the very same class. It works well, and the API is pretty solid. What is holding me up is the client itself. I want to have a client that looks nice and runs well, and I’m pretty close. Right now it runs over an HTTP API, not exactly optimal, but I am putting together a flash-based socket connector to load onto the page when possible to make the connection more instant, the whole point of using sockets in the first place. I looked into using Socket.IO at one point as they’ve built almost everything already, but this is also a learning experience for me. Since it’s a personal project there isn’t any pressure to get it launched ASAP, so why use someone else’s work when I can understand the concepts for my own? If I had a nice solid week or two I could probably finish it up into a nice beta stage and launch it, so here’s hoping I win the lottery or something.
Anyway, I’ve been rambling for a while now, time to hit the spell check and then publish this wonderful piece of work.