Most Startups Will “Build” Their Solutions By Sticking Together Pre-Existing Components
Yesterday, I started noodling some code for my little “personalized trends on Twitter” idea [See here, and here for previous posts on this topic]. I’m not in love with this idea yet, but I like that i) It can be simple at the start; and ii) It has the potential to grow, for instance by embracing and simplifying other forms of communication, including email.
I thought I’d start by doing it as a prototype iPhone or iPad app.
Not having started a clean-slate new project for a while, there’s a lot I don’t know here. I have just a week or two of iPhone programming knowledge. And I have never used the Twitter API.
Plus of course the details of the Twitter API is completely unfamiliar.
How to proceed? Turns out, it’s about sticking stuff together.
There is a free objectiveC library, MGTwitter, for iPad/iOS/MAC, that hides most of the complexity of the Twitter API.
OK, but MGTwitter example code doesn’t really use oauth, it uses xauth, which is less satisfactory for various reasons.
Ah – but another free objectiveC library, oauthconsumer, will handle most of the hard stuff – like assembling SHA1 signatures – for oauth.
Another library handles the JSON processing.
Some careful Googling shows up the Apple documentation for popping open a web-page, and the Twitter documentation explains how to open the correct page for app authorization as part of the oauth flow.
Amazingly quickly, considering the potential complexity and opportunities for getting stuck, the app can authenticate and start pulling interesting data from Twitter.
What’s the lesson? The set of available third-party technologies that are freely available has become remarkably rich and broad. There is a whole set of software startup ideas which can be implemented by sticking existing technologies and APIs together in creative ways. The “skill” may not be the ability to go deep on a narrowly defined problem, so much as to elegantly conjoin existing components to create something worthwhile.
Back to the code now…