It’s been over a month since I left Tugboat Yards. Since I left I have been spending time catching up on stuff I needed to do and have been wanting to do. One of those things was to sit down with Xcode and take a real stab at learning iOS.
Here are things I learned. They very well might be wrong, but I am so excited about finally making iOS apps that I felt like sharing what I’ve figured out.
You don’t have to use Interface Builder! I think I knew this was possible, but I assumed it was the old way of doing things and all new apps were using IB and Storyboards. I like learning what’s under the hood and so I was pleased to find out building an iOS app by declaring your own view controllers and UI elements in code was a perfectly sane thing to do.
ARC is a godsend. I started programming in C and later C++ so I understand how pointers work, but I also spent the last 15 years writing PHP and Python so I haven’t had to worry as much about memory allocation. While ARC doesn’t mean I can completely forget about it, it was much easier to get started. (Related: What kind of leaks does automatic reference counting in Objective-C not prevent or minimize?)
Default iOS 7 UI is actually pretty terrible. When the first iOS 7 apps started appearing on my phone I liked them. A lot of people were complaining about the new look of iOS 7 but I didn’t understand the hate. All the apps I used looked good and (outside of the new keyboard) I liked it. Now that I am using the default widgets I am understanding why people dislike it so much. It turned out I liked them because the developers of the apps I used had spent a lot of time making sure they looked good.
I’ve built apps for OS X and Windows and as a non-designer the most comforting thing about making stuff for those operating systems is that the default elements can stand on their own without extra styling. A default button in iOS 7 is simply a non-bordered rectangle with a label. The first app I made I felt compelled to point out the button was a button because I hadn’t yet learned how to override that style to make it more obvious. Ugh.
The documentation is amazing. Once you get your head around how to layout an MVC app and the basics of Objective-C the documentation becomes your best friend. I am so used to searching the web for documentation on libraries and services that having it built into my editor and being so easy to use is a whole new world to me. IDEs: Who knew?
If you’re a web developer who has wanted to get into iOS I think now is a good time. I am only a week in so I could be wrong about everything I wrote above, but it was how I was finally able to feel like I could start making things in iOS.
And if you want you can start the way I did by creating an Empty Application, instantiating a UIViewController, and setting it as your window’s root view controller. No Interface Builder required! I wish more beginning iOS tutorials started this way.