Three20 & HypeMachine
Although I was pleasantly surprised by the application I had initially created for listening to music from HypeMachine, it was realistically my first iPhone application and was litered with incorrect memory management and perhaps improper design paradigms. I decided with some new knowledge (specifically the memory management and proper use of autorealase) I decided to give one more stab at it. I had also heard great things about Three20 and decided to incorporate it into the app.
Three20 is a open source Objective-C library used by dozens of well-known brands in the App Store, including Facebook, Posterous, Pulse, Meetup.com, and SCVNGR. Three20 provides powerful view controllers such as the Launcher, the popular Photo Browser, and internet-aware tables.
I could write many lengthy posts about my exposure and experience with using Three20 however I'll try to keep it concise and brief the points I wanted to reiterate. Three20 is a great library however documentation stinks. The only real way to learn functionality of the code is to go through the samples provided which is at least reasonable is undesirable. I am much more of a tutorial learner.
The UI is extends however is beautiful and although easy to implement once understand I found difficult to extend to suit my needs specifically. Regardless the end result I believe is a much nicer looking and cleaner (with respect to the code) iPhone application.
The biggest new addition to using Three20 is the pull-to-refresh UI. Things I'd like to do:
- Create a new MP3 table cell element that includes the slider and play/pause button within it
- Background playing of the music currently lasts only 10 mins. Deeper look into the AudioController should be done to investigate how to make it properly play music in the background
- Hook up the iPod controls when the screen is locked to the application.
- Caching of the stream
- Allow a user to sign in and to heart/unheart songs
- Searching for songs (should be easy to implement using Three20
Checkout the application on Github:https://github.com/fzakaria/iHype and contribute if you'd like to make the iPhone experience better for browsing HypeMachine.