Thoughts on mobile app development.
I’m fortunate enough to live in a part of the world where summer is on it’s way, and if you believe what my mother says, that means it’s time for spring cleaning. If you’re anything like me, there’s probably some things in your working life which are mildly annoying – certainly not enough to stop your from doing your day to day job, but everytime they pop up, you think “I really should fix that sometime”. Well, whether it’s spring or not – now is the time. Here’s a few of the things you might want to take a look at.
Clean Up Your Source Control
I’ve had my own source control repository for around 6 years, which initially started off as just a personal store, and eventually grew into the main repository for all my independent company development projects. You probably know as well as I do that after several years of use, repositories get messy. Every time I created a new project, I found myself not really knowing the best place to put it. I’m using Subversion, but most types of source control can handle moving around folders just fine, so there’s really no good reason not to do it. I’ve restructured mine so that the top-level folders are the platform type (eg. iOS, Android, Mac, etc). Inside the platform folders is a folder for each relevant client I do work for, including one for Personal projects, and one for in-house projects. This is probably not the way you want it, so spend 10 minutes thinking about how you’d really like your repository structured before you go ahead – as they say, “plan twice, move once”. Or something like that.
Clean Up Your Local Storage
Got a whole bunch of projects named “test2″ and “deleteMe”? Still got some old Xcode betas installed? Everyone has junk lying around on their local system, and spring cleaning is a great time to remove it. For bonus points, restructure your local project storage so it’s in the same structure as your source control.
Start Using Xcode 4
It seems every week I read another blog post, or see another tweet, about someone who has tried Xcode 4 for a few hours, didn’t like it, and proclaimed “Xcode 3 or GTFO”. Well, good luck with that. Xcode 4 is the future, and you better get used to it. Personally, it probably took me nearly a week to really get back to being productive. Keyboard shortcuts have changed, your workflow is different, and let’s face it, early builds were buggy. Now that I’ve bothered to learn the environment though, I really feel that Xcode 4 is a huge leap forward. If you haven’t already, I strongly recommend you upgrade while you still have the choice, instead of being forced into it when Xcode 3 is discontinued and you’re in the middle of a big project.
Get Your Backups In Place (and test them)
How would you feel if you woke up one morning and your computer wouldn’t turn on? Heck, how would you feel if your computer caught on fire? Well, probably pretty bad, but hopefully that’s only because you don’t have a fire extinguisher, and not because you don’t have adequate backups in place. I basically have a 3-layer backup system:
- A nightly clone of my entire drive using SuperDuper!, which I boot up from once per month to ensure it’s working (I have an event in iCal to remind me to test this).
- All code stored in an off-site source control repository. When you finish coding for the day (or stop for lunch), check in your code.
- Real-time backups of selected folders using CrashPlan, both local and off-site. CrashPlan is insanely good, and very cheap – $50 a year for unlimited, real-time, off-site backup. It’s free if you don’t want real-time backup and have your own storage space, too.
Overkill? Probably. But for a couple hundred dollars of initial outlay, and only $50 in annual costs, why not?
Try That Software You’ve Been Dreaming Of
For a long time I’ve been using Versions as my Subversion client, and there’s always been a few things that bug me about it. Still, they were just little annoyances, and I was able to get my work done – that’s all that really mattered, right? I finally got around to trying Cornerstone recently, and my only disappointment is that I didn’t switch a long time ago. If you suspect the tools you’re using aren’t the best they could be, it’s well worth giving some others a shot – your tools should step out of your way and let you do your job, not bug you every time you use them.
Tidy Up Your Desk
Yep, this one matters too. Put away all those files you have to push aside every morning, get rid of those dirty plates from last week, and go on, do a bit of dusting as well.
Hop To It!
Nobody likes cleaning, but the hardest part is getting started. Make a promise to yourself to spend one day this week not coding, but cleaning your digital life. Once you’re done, you’ll feel more productive, and more importantly, you’ll be more productive.
Earlier today, Apple finally revealed their latest hardware, the iPhone 4S. Like most of you, I’d been waiting a long time for this day to come, and I was truly excited to see what Apple has been hard at work on. If you’d asked me a month ago, I would have almost bet the house on the iPhone 5 being revealed today. There’s some nice symmetry to releasing iOS 5 and an iPhone 5 at the same time, and we all know Apple loves symmetry.
Over the last few weeks though, I’d been increasingly getting the feeling that this release was going to be evolution, not revolution. The penny dropped for me upon reading a post over at Daring Fireball, titled Teardrop Skepticism – the basic gist being that the rumoured teardrop design made no sense, as it would feel wrong in landscape mode. I’m amazed that no one else had pointed this out earlier, and from that point forward I was positive that today would see the announcement of only the iPhone 4S.
As I watched the announcement, I couldn’t help but feel a growing disappointment. A better camera, better internal performance – even the worst analyst could have figured those things out, which have been rumoured for months. Despite my gut feeling, I was still hoping for the unlikely. Even Siri was pretty much all but confirmed before today, and whilst it looks really cool, I don’t know how much I’ll use it after the first hour of experimentation.
Now that everything has settled and the world has gone back to work, I’ve been thinking about the flow of the announcement, and the message that Apple is really trying to send here. Yes, the iPhone 4S was the finale, and the piece that everyone was waiting for, but a substantial amount of the presentation was given over to other aspects of the eco-system – notably iOS 5, and iCloud. Most of the details we already knew from WWDC, but the difference here is that these are no longer a work in progress – iOS 5 and iCloud will be with us in just over a week. If there really was an iPhone 5 announced today, it would take the gloss off iOS and iCloud. Make no mistake about it, these two components are going to drastically change the way things work in our ecosystem, and Apple has done an amazing job bringing them together. You get the feeling the company has been incredibly hard at work since WWDC.
So while the iPhone 4S might not be the new hardware that we were all hoping for, I think that’s ok. I’m still super excited for October 14, because damn – the iOS 5 and iCloud combination is going to be truly awesome.
I decided late last year that I was going to attend WWDC for the first time in 2011. I regularly set aside money, planned where I was going to stay, and read all the first-timer blog posts I could find. When I woke up one morning to discover that WWDC had both been announced and sold out while I was sleeping, you can understand I was somewhat disappointed. The folly of living in the Southern Hemisphere, I guess.
I’d previously heard a few things about 360iDev, which this year was being held in Denver, Colorado. To be honest, I’d never really given it much thought. If I was going to fly halfway round the world for a conference, I always figured it would be WWDC. All of a sudden that option was gone, and 360iDev became a lot more attractive.
After about 5 minutes of reading all the positive comments on Google and 30 seconds of thought, the decision was made. Flights were booked, my ticket was purchased, and my hotel room was reserved. Fast forward to the middle of September, and I’ve just attended the best conference I’ve ever been to. If you’re an iOS developer, you should seriously give some thought to attending. If I can sit in a plane for 18 hours, spend the week being jet lagged, and still get so much out of it – anyone else can too. But enough of the feel-good positivity – why should you go?
Ever since the WWDC videos were released, I’ve been making my way through them. So far, I’ve managed to watch about half of the ones I’m interested in – in fact, probably about the same number of talks that I saw at 360iDev. Reading a book or watching videos is great, but if you’re anything like me, it’s pretty hard to set aside an entire day (or two) to do this. A conference is a fantastic opportunity to concentrate on improving your craft for a few days.
One of the reasons often mentioned for attending a conference is networking, and for good reason. I’m not much of a social person, and I work independently from home, so it’s no surprise that I don’t regularly come in contact with other iOS developers. It was a joy to tell people about what I do, listen to what they’re working on, and just have a chat about iOS life in general. There’s a number of people I met that I plan to keep in touch with, whether it’s for a joint project, or just to say hello.
This one comes in two parts. Many well known members of our community attend conferences just like 360iDev. Chart-topping game developers, ex Apple employees, book authors – they’re all there. Hearing these people talk is a huge inspiration in itself. The more important part though comes in realising that these people are just like you and me. I lost count of the number of times I sat next to someone only to find out they developed some very well-known app, or authored a book I’d read, or wrote a fantastic blog I follow. And here they were sitting right next to me. This does wonders for motivation and self-belief.
This might not appeal to some of you out there, but hear me out. Developers are generally introverts, and don’t do well in social situations. So if you’re in a room full of developers, it’s pretty easy to find someone to talk to who’s feeling just like you. Say hello, and all of a sudden you’re playing arcade games and drinking beer at The 1 Up Bar with your new friend. Or enjoying an all-you-can-eat meat fest. 360iDev had seriously awesome parties, but not the type you might be used to – these were parties for developers.
This one is a bit of a hidden benefit for me. I read a lot of developer books, watch a lot of videos, and write a lot of code. I feel like I’m a pretty good iOS developer, with experience across a large chunk of the SDK. Even to the point where I’ve read a couple of iOS books recently, and learned almost nothing new. This was not the case at 360iDev. The large range of sessions meant that I picked up something useful from almost every talk. Awesome keyboard shortcuts, handy tools, or a great open source framework – the sorts of things that make your job easier, faster, and better.
If you haven’t guessed the punch line yet, here it is – 360iDev has made me a better developer, gave me the chance to meet some amazing people, and quite simply was a tonne of fun. I feel incredibly inspired, and you can be sure that I’ll be there again next year. And so should you.
One of the first iPhone apps I ever created as an independent developer was PhotoCaddy, a quick reference guide for photographers. Essentially it contains a big list of photography subjects, with each item containing a few tips and bits of advice on how to take good photos of that subject. Users can also read and share tips with other photographers around the world.
Sales of PhotoCaddy have always been decent, and I’ve been very fortunate that an app I created for fun whilst learning about both photography and iOS development, has helped to give me the freedom to pursue an independent lifestyle. The natural thing to do with any product that sells well is to try and make it available to more people (does Angry Birds have Commodore 64 support yet?). So, over time I’ve ported the iPhone version of PhotoCaddy to iPad, OS X, Android, and Windows Phone 7. Today, I’d like to share some numbers with you, in the hope that this might help you decide what other platforms interest you.
So, here’s the sales for the month of August (with all dollar values in US dollars):
|Windows Phone 7||$3.99||-||12||$0|
I’m not going to go into a deep analysis of those numbers, but I do have some random tidbits which I think will be of interest:
So, in summary, would I port an iPhone app to another platform again? Actually, I’m in the middle of porting another app (Photo Academy) right now. As a more general answer though, it really depends. If the original app sells well, then I see no reason why you shouldn’t port to iPad or Android, or even OS X if it suits your app. There are plenty of freelancers who can do the work for you if you’re that way inclined, at a cost that will allow your app to become profitable fairly quickly. Unfortunately, Windows Phone 7 is off my list for now. It was a good experiment which I’m glad I ran, but I won’t be going there again anytime soon.
Just a little announcement that Apple has been kind enough to feature Photo Academy on the front page of the App Store, in the New & Noteworthy section. This is a real honour to be noticed by the curators of the App Store, and to be displayed alongside such great apps – thank you Apple!
- August 2014
- April 2014
- August 2013
- July 2013
- May 2013
- March 2013
- January 2013
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- June 2011
- May 2011
- April 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010