Finally it's here! And it marks my first app in the Apple App Store!
• Instantly browse 29 genres, from Deep House to Hip Hop, Trance to Grime.
• Built on top of SoundCloud – like your favourite mixes for future listening.
• Share your favourite mixes via Twitter and Facebook.
See screenshots below as well as details around the development of the app.
Building the app
The Mixmatic iOS app is written purely in Swift, using a couple of Cocoapods frameworks such as Alamofire for network requests and Google Analytics, for, well.. analytics.
The app went through a few iterations, it was my first iOS app and getting my head around building it and changing my previous style of building web apps took a bit of time. I ended up re-writing the entire app twice.
- The first iteration was my real, first ever attempt at building an iOS app - it was terrible.
- The second iteration was better, I'd started to pick up interface builder and my code was structured in a much cleaner way - but performance was lacking, the app had no caching solution which resulted created a bad experience.
- The final iteration leveraged the caching system that the app needed, which we will also integrated into all following iterations of the Mixmatic app.
Some early on UI iterations are featured below. The main challenge I've found when developing iOS apps is ensuring the layout is okay on the iPhone 4S. The screen size is so much smaller than any of the other devices that the apps are being developed for it makes it hard to ensure that elements are correctly positioned, particularly if the screen is quite busy.
But really, it emphasises the need for iterative development, with end-user testing. Before launching the app, we extensively tested over 20 builds with end users on Testflight. I cannot stress how important this was for delivering a consumer ready product. Testflight enabled us to find bugs that we probably wouldn't of found ourselves. But to also experiment with different UI compositions.
Testflight is key!
My only wish is that we could deploy features and updates in a more agile fashion. I feel that if Apple sped up the review process to a day or so, it would really help developers. On average, for the new app and the 1.0.1 update, each review time has been ~7 days.
You gotta get it right
Kinda different to developing and deploying web apps, the build has got to be perfect, it's a double edged sword that places a sense of responsibility on you - get the build as right as you can the first time, as you will be waiting a while before you can push that bug fix.
Those are just some of my thoughts and experiences - I've very much enjoyed working with Swift 2.0 and the whole iOS ecosystem, I'm looking forward to releasing a new app at the end of this month!
If you have any thoughts, comments or questions, please let me know. For your amusement, see some early screenshots of the UI before release. :D
Old UI Iterations