Things I’d love to see in Xcode

There aren’t too many iOS developers who haven’t dabbled in other languages – at least for work or otherwise. And the things that we try to tackle in iOS are never too far from traditional development we’d see out in the C++, Java, or C# world.

That said, there are some things that I would love to see baked into Xcode. There’s already many of them out there, and some of them already exist as open source projects. But in all, I wish the Xcode team at Apple would take all these in and really flesh out the IDE:

Migrations

I would love to see a straightforward migration tool. That’s all. Rails, Django, and even C# MVC have some pretty elegant and standard ways to handle migrations in CoreData – I wish that we had the same faculties in Xcode. Something elegant where we’d be able to consistently reproduce our schemas over and over again. Something that saves me the burden of writing boilerplate code just to handle changes in my data structure.

SQLite3/CoreData Database Viewer

Man, coming from SQLServer and Oracle SQL Developer, you really see how valuable it is to see what’s going on at the individual table level. I think even MySQL has this feature. Truth be told, in iOS, I can’t count how many times I’ve been faced with the question -> Did ‘X’ really save to CoreData in the way I think it did? What’s already in CoreData? What items have persisted in the tables. It’s a small benefit – and being able to see the drawn schema is helpful – but even in MSSQL2012 you can see the actual table and see when and how rows get added. Always useful

Less opaque handling of project configurations

I think every C based project has this problem. So much so that it’s possibly not even a problem – and just accepted as the tax you have to pay in order to do development. But I digress. Xcode especially, thinly veils all the project configuration code – but the truth is that there’s both a lot of power and a lot of danger when you go mucking around in Plists. Especially if you’re trying to handle integrations with Pods or Carts (depending on the community’s flavor du jour).

Official Dependency Manager

CocoaPods? Cathage? I don’t know, but pick one and make it standard to Apple please. While I do love the community’s ability to put together and push out these libraries – it’s very clear that some of these need to get adopted by the ecosystem in order for everyone to move forward.