Thoughts on a complete teardown of the current Cesium queue, and implementation of a new strategy.
Given the existing frameworks, building a properly functional playback queue is probably the biggest challenge in designing a modern music player.
Currently, Cs does all the work. Queue management is handled entirely above the system player. I manually shuffle and repeat the queue. I exploit a little quirk in the MediaPlayer framework to get things to work without gaps in the audio. This is clunky.
I've recently discovered a few new techniques that may allow me to completely redesign the queuing system in Cs to integrate much more closely with the existing Apple queue and queue functions (shuffle, repeat, etc.). My hope is that if it works, the functionality will remain the same, but perform better and be more stable long term. Plus, it should be much more efficient code, making tweaks and improvements a lot easier.
We'll see. Rest assured I won't implement a new system until I'm 100% happy with it and it has been beta tested extensively. If you want to help, hit me up with a valid email address and I'll add you to the testing program.
Longtime Cesium-advocate Richard J. Anderson posted an essay recently outlining the challenges indie developers face making a living from the App Store. It's a great piece that I encourage you to read, and not just because he has some wonderful things to say about Cs. In it, Richard asks what a "successful" app looks like in 2015?
For Cesium, the answer is easy. I didn't develop Cs because I saw an opportunity, or because there was a need. I wrote it because I wasn't happy with the alternatives, and I wanted a player for my own use that I genuinely loved. I put it on the store because I thought that would make it "permanent" and I wouldn't have to pay the yearly developer fee anymore (I was wrong). It's been almost a year and I have been both surprised and thrilled to find that there was a market for Cesium, and that people have responded very well to it. Reading positive reviews and comments makes my day, and I'm lucky to be able to say that more days than not. (By the way, if you haven't written your own positive review to make my day, why not do that now? I'll wait.)
So what is success for Cesium? I have every dollar that hasn't been reinvested in web hosting and advertising saved. It's all sitting in an account. I have 2-year-old twins at home, and that money is going to take them to Disney. Well, it isn't yet, but if in 2 or 3 years Cs' total revenue can cover the cost of the trip that will be total success. It's a lofty goal, but one that over the last 3 or 4 months is starting to become if not plausible at least possible.
But this post isn't about that, it's about a new revenue stream I've introduced: donations. And is it fair for me to double-dip?
Richard is right that it is exceedingly difficult to make any real among of money as an independent developer. I think it's probably even more difficult when your app's main selling point is that you think it better than Apple's own app. I'm not holding my breath for a front-page feature in the App Store. And this is where it gets tough, because the fact is that when I add up all my development time, my design time, time dealing with testers and users and prospective users, searching twitter and reddit for opportunities to shill, responding to emails; well, October is certainly going to be my best month ever. I might make a few bucks an hour. I'm not even sniffing minimum wage. This isn't a guilt trip; I get to set a price I think is fair, and if you got Cesium through the App Store at any price, you are entitled to full use of the best product I can put out.
But donations might allow me to do more. I know there are a lot of users who would love to see Cesium become a universal app for iPad. I'd love to see that too. My hope is that eventually there might be enough donations to help me get that test device, and I actually can start working towards making Cs a universal app. Donations could help seed an advertising budget, and maybe even get Cs to the point that I can remove them entirely. My users have already been generous with me. They've already invested time and money in me, and in Cesium. I'm not crazy about going back to that well. But donations could make things possible that just aren't currently through sales alone.
The point is that if you're reading this you don't owe me anything. I owe you. You help fuel a hobby I enjoy, and a dream for my family. I'm grateful for everything.
I'm very excited to launch the official Cesium web site!
I'll try to use this space to outline new features and changes to the app, plans for the future, and explain how and why significant changes happen (if and when they do).
As always, thanks for the support.