I have recently been engaged in a fun experiment for a touchscreen using Actionscript and the Twitter API. It has been a fantastic learning experience in many ways, including AS3, object oriented programming, and above all, usability.
There are some things worth mentioning:
1. Making a virtual keyboard for a touchscreen is much more tedious than I ever dreamed. I have gained the utmost respect for whoever designed/developed the iPhone’s keyboard. Much has been said about its functionality and its surprisingly usable interface. I have tried to re-create a similar experience using it as my main point of reference and continue to be amazed at how well designed and though out this aspect of the iPhone is. It has been the seemingly little details that have made me stumble the most (i.e. showing the user where the carat is as a visual cue of where the next letter will land, or even something as simple as a shift key).
2. Twitter’s API is a blast to play with – particularly for those interested in data visualization. But none of what I have done so far would’ve been possible without Sandro Ducceschi’s (@_sandro) excellent Tweetr library for AS3. Even though it is still in heavy development, I have been able to implement any API call I can think of, including the new lists feature. Major kudos to Sandro for his dedication to this library and for keeping it open source!
Yes, there is also the Twitterscript library, but I have found Sandro’s work to be infinitely more usable.
3. Touchscreen technology introduces a whole new set of rules to be mindful of. With the lack of hover states for interactive elements, the feedback loop becomes a trickier thing to implement and consider. The lack of the mouse as in input method is both liberating and frustrating at the same time – as something as simple as scrolling becomes a challenge to design and code for.
4. The power of object oriented programming is becoming more and more clear to me as this experiment progresses. Encapsulation and inheritance are both concept I’m still trying to wrap my head around, but I see the clear benefits they bring to any coding project. One of my earlier complaints about oop and AS3 was that I felt that writing a simple action for a button took me twice as long as it did in AS2. Such a small detail compared to how much power oop can bring to your code.
5. And finally, I am now more confident than ever that understanding how to build and program an interactive experience opens up a whole new realm of design possibilities. So much, in fact, that I have been unable to settle on a final interface design for my experiment because I keep realizing I can push it further. Thank goodness for deadlines!