My Dream Slapper
There’s been a lot of talk about how complex your app ideas should be. And, of course, there’s always lots of interest in the “behind the scenes” action in situations like this one. And, of course, the more I write, the more you’ll have to work with while you butter me up. :)
So, The problem: The thought of refreshing through a web form 2000+ times to go through the initial submissions and pick the best 24 of them was, let’s just say, off-putting. Even with some nice Ajaxy mojo, that’d be 2000+ roundtrips to the server and 2000+ trips through some javascript DOM crap. Yucky. Ickytacular.
This is one of those situations where it’s better to grab all the info at once, deal with it, and then shoot it back in one go.
And thus was born My Dream Slapper, an app written solely for the internal use of the My Dream App team, and intended to be used only for the next 7 days, while we review your submissions. But as I said in the lede, we thought you guys’d be interested in how it got developed and what it entails.
The basic gist is that it sucks all the info out of the MyDreamApp MySQL server and sticks it into a local Core Data store. It presents the info to us in a hideously ugly interface, and lets us collaboratively decide which entries are the best. Keywords: internet, collaboration, Core Data, smart folders, ugly.
Features
- Lets us quickly rate submissions on a simple scale.
- Lets us add comments to submissions, and view the comments the other judges have made.
- Lets us categorize submissions into our own folders, or into Shared Folders. Once a submission is dropped into a Shared Folder, all of us see it there. We use this to pick out submissions we really like.
- Periodically syncs with the database, grabbing new/changed submissons and uploading our comments, rankings, and categorizations.
- Smart folders show which submissions we’ve already rated, which submissions nobody has yet rated, which submissions have comments associated with them, stuff like that.
- Persists changes that need to be uploaded to the server between app relaunches, so we can safely use My Dream Slapper offline.
- User interface reminiscent of a dog’s ass.
Okay, on to the fun statistics. Last monday, this app was but a gleam in my eye and a twinkle in my teeth. As of Sunday morning, this app was deployed in fully functional form to the My Dream App team. I estimate I put in something like 50-60 hours of coding time on it (which, incidentally, grossly exceeded my original 4 hour time estimate, but then, the features got a lot more intense than what I’d originally planned, too).
The excellent sloccount program tells me that the final dealio consists of 2668 lines of Objective-C code, putting me at a none-too-shabby 500ish lines per day. Interestingly, it also tells me that it estimates that writing the crazy thing took just under 7 months of developer effort from a single developer. And, I wrote it in five days, daaamnnn I’m good!!! Also, amusingly, it says it’s worth $75,707. I accept checks.
Now, I should mention that My Dream Slapper is really raw. If this were something that was actually going out to the public, it’d probably get at least several months of polishing first. As an anecdotal aside, the original functionality of ShapeShifter was done in 13 days of coding, but it took about 5 months before I actually released it. So the “five days” thing isn’t really all that meaningful.
Anyway, that’s it for My Dream Slapper! Hopefully, it gives you some scale on how much developer effort is expended for a particular type of app! And, hopefully, it also gives you some idea of how we’re working on your ideas behind the scenes.
Oh, and if you see a good long-term use for My Dream Slapper, or a good reason for me to open-source it, tell me. In detail.
Keep those ideas coming, they’re frickin’ awesome so far!





























Jason Harris
ShapeShifter/Chicken of the VNCJason Harris has been coding up spiffiness and silliness for about ten years, working on such diverse projects as a solid-state quantum computing simulator for electron waves in GaAs semiconductors and a Monte Carlo simulator for electron transport in nanostructure devices. He also wrote insane, down-to-the-metal microcontroller assembly language code for Octofungi, a robotic sculpture. In the Mac world, he's the primary author of ShapeShifter, Mighty Mouse, ThemePark, and heads the open-source Chicken of the VNC and Paranoid Android projects. He digs mountain biking, skateboarding, art, martinis, loud music, and creating oddly euphonious phrases. He never wears shoes if he can help it and can dance like a mofo!
View Jason Harris's Comments →