One of my favorite things about being a programmer is that there’s always something interesting to learn and something new to play with.
Though I’ve been pretty bogged down in day-to-day tasks of building Catchafire.org from scratch, I have managed to eek out a few hours here and there the past few weeks to play with some (new to me) technologies.
So far I’m not doing anything amazing with any of them, but I have dabbled enough to feel comfortable in each and so I figured I would just give you a quick rundown of what I’ve been playing with:
Objective-C and the iPhone
I recently built my first iPhone app (for a paying client non-the-less) and am just about to submit it to the Apple app. store (once it’s out there, I’ll share the name and other details).
The project overall went pretty smooth, and I’m happy with the first version (even more important the client is happy so far with the first version!). Since it was my first time really digging into Objective-C, I didn’t really know what to expect but I have to say I thought it would be a lot harder than it really was.
I found some of the tradditionally more complex things, like calling web services and parsing XML to be very simple. However some of the traditionally more simple things like changing views took me a little longer to really grep (there doesn’t seem to be a lot of straight forward tutorials out there on some of the more common and basic things I would think you need to do in almost every iPhone app – I was surprised by this fact).
Based on my quick experience, and the market demand for it….I’m now kind of hot on building iPhone stuff and will def. be doing something more with it in the very near future (though I’m still bouncing around just what specifically I’ll do).
After building the iPhone app, and acquiring a new iPad (that I’ll be using to test the iPad version of the app on as well)…I realized that the Apple App store still presents a pretty big problem for most people…that is, there’s just too many apps to figure out what you should install (and so most people default to what’s on the leader board or what a friend verbally recommends to them at some point). With that in mind, and the Techcrunch Disrupt hackathon just days away, I decided I had the perfect, ambitious, project to work on.
Only problem was that, after a little bit of research, I realized that Apple really doesn’t make figuring out what applications you have installed very easy (and in fact, behind the veil of security, they actually go out of their way to make it near impossible).
Ultimately though, the data has to be stored somewhere in iTunes so that when a user sync’s their phone the computer knows what should and shouldn’t be there…so the big challenge became hacking iTunes.
iTunes itself does have an official plugin API, however it’s primarily directred towards visulization (ie. make some cool screen savers or graphics that react to the music you are playing) and doesn’t really expose any of the meta data related to your iTunes library or applications (from what I could determine in my quick research). However, in doing a simple drill down exploration of the iTunes directory you can see that it’s fairly organized and simple to find the ‘Mobile Applications’ directory. Inside that, just happens to be a file related to each application you have installed…so the trick was now just figuring out how to get at that data, and then send it up to a web service.
Enter Adobe AIR. Since it’s an application the client installs on thier local machine, it pretty much has full premissions to the local file system (just what I needed) and since it’s built on top of internet technologies, it also is fairly simple to make web service calls (again just what I needed).
Because it was super simple for me based on my web background, I choose to stick with the HTML/Ajax AIR option…and overall I found it to be a snap (there’s really nothing new to learn except for a few custom features depending on what you want to do outside of the normal web stuff…in my case, I just had to learn a few lines of code to do the file system stuff properly and dynamically).
Overall, I really liked working with Adobe AIR but I’m not sure there’s a real need for it in most of the stuff I want to right now (I’m not that hot on building things specific to the desktop these days)…but I love that, should I need to do something to cater to a desktop, I now know it’s super easy with Adobe AIR.
Since Adobe AIR had made the biggest challenge of my APPSiGOT hack pretty simple, I decided to add in an additional layer and try to learn FluidDB as well (I had known about FluidDB for awhile now and was intruiged but had yet to have a real reason/chance to try it out).
As you know from yesterday’s post, it also turned out to be pretty darn simple…and I can say that I’m def. going to be doing more with FluidDB soon (I already have plans to update the likefeature.com codebase so that it’s data is stored in FluidDB as it just seems like a very natural fit for that system…and I might also move more wow.ly stuff there soon too).
Google Chrome Extensions
For awhile now, I’ve been telling everyone and anyone that would listen how awesome and usefual I think my friendstat.us hack is…but as you all probably know, it’s really hard to get people to believe you, let alone give something new a try (and we won’t even go into how hard it is to get someone to become a regular user of something new).
So friendstat.us has more or less been sitting idle on the user adotion curve for a few months now (also a side affect of shelving active development on it as I focused on the initial Catchafire build)…but I’ve still got a lot of passion for changing the way people are currently looking at real time content…and I really believe that a people-based view is better.
Plus, when I was out at Chirp I had a chance to briefly talk with CEO of Twitter, ev…and he mentioned that he his favorite thing about conversationlist was the fact that it was one of the only apps to integrate directly back into the twitter experience. He also mentioned that he would like to see more of that sort of thing happen, and when I asked him how he thought that might be, he said “maybe plugins or extensions”…and so I’ve been harping on that conversation in the back of my head ever since…
The thrid motivation at work here is the simple fact that, even with great apps like tweetdeck and twitter for iPhone, twitter.com itself gets some insane amount of reader traffic.
So putting all those things together, I decided it was time for me to sit down and give this 'extension’ thing a quick try…and so I built a pretty lame version one Chrome extension for friendstat.us.
It doesn’t do a lot, but it’s a good start to changing the twitter.com view into a people-based view (though I’ve already found a few glitches I need to fix up!).
Though I sort of view extensions as only slightly above desktop clients…I do think there’s a pretty big market for them right now (and I think they are easier to get adoption with than a brand new web service/feature)…and so I will def. continue to dabble with them more in the near future.
That’s it for now
Next up on my “dig into” list is Adroid and Blackberry platforms (I’ve actually started this already as I’ve got to do versions of the iPhone app for these platforms too) and at some point I also want to dig into MongoDB (which seems to be all the rage in my NY Tech. circles these days).
This post has received 47 loves.
Kevin has a day job as CTO of Veritonic and is spending nights & weekends hacking on Share Game Tape. You can also check out some of his open source code on GitHub or connect with him on Twitter @falicon or via email at kevin at falicon.com.
If you have comments, thoughts, or want to respond to something you see here I would encourage you to respond via a post on your own blog (and then let me know about the link via one of the routes mentioned above).