A desk, OS X Server, and Xcode

17 Nov

So after 3 years I finally got around to building a desk for my home office and I think it turned out quite good. I’ve got plenty of space to work and its given me a place dedicated to my software development. It’s important to get into the right mindset when you need to get work done at home, otherwise you’ll get distracted by all sorts of things.

However, after just a few short days of working I quickly realized a problem that I’ve ignored for far too long. Version control. Sure, I’ve done the occasional commit in Xcode to the local repo, snapped a snapshot here and there before some scary project change. But I never really bothered to dive deep into it because my laptop was both my daily driver and my development machine.

Things are changing now though. Thanks to my desk I finally have a real work area that I can use my Mac Pro at. Don’t get me wrong, I’ve gotten a lot of development done on my 15″ MacBook Pro and Xcode has grown into a first class citizen on it. But there’s still a world of difference between working on a 15″ screen vs a 24″ screen in Xcode, specially when it comes to storyboards.

So now, while I’m starting to get most of my work done on the MacPro, I would still like the ability to do some work while I travel with my MBP.

Enter OS X Server. Apple recently started giving OS X Server to iOS Developers for free to promote Xcode’s continuous integration (bots). But OS X Server also has another service for Xcode that is equally as good. Server hosted Repositories. So if you’re an indie developer like myself and you have both a desktop and laptop you can host your own Repo on your desktop and access it from both your desktop and laptop. Actually you can host as many Repos as you like, and if you add the “Sever” to your accounts in Xcode’s preferences it will automatically list the available Repos you create on the Sever. This makes for stupidly fast syncing across the local network. For now I have to remember to do a Pull on my MBP before I leave the house if I intended to work while I’m away. It’s a minor nuance and I’m considering getting a static IP for my desktop anyway which would fix that.

I’ve barely scratched the surface of OS X Server’s Xcode integration, much less all the other services it has to offer. I’m looking forward to seeing what else I can do to help automate my workflow.