I'm currently writing an app for OSX. I started it over a year ago, but when XCode ate my project, I gave up. Before the XCode Apocalypse happened, I had a working prototype built.
In early April, while at DroidCon Montreal, someone asked me what my 'startup idea' was. I told them about my XCode project that got eaten. They said it was a good idea, so when I got home I tried to open XCode again. No luck.
In early October, I was inspired by a tweet about octobuild.com to finish a project in October. Or at least work on one. So I opened XCode again. It worked this time. (Huzzah).
I've been working on it, off and on, since then, just a little over a month. The prototype no longer works, but instead I'm currently focusing my efforts on making the GUI look and work how I want it to.
I don't know Objective-C. I've never done any OSX app programming before. I have done .NET and a fair amount of Android programming, however. Both of which are GUI-esque systems. I've been having a hard time grokking how the new system (Interface builder, wtf?) works, so here's a short documentation of things I've learned so far that have been helpful for getting a footing on writing my first OSX app.
- Reading the Apple documentation. Fairly helpful, but not the right granularity for the most part. Either too much of a 10,000 foot view or way too granular 1ft view.
- Googling shit / searching for help on Stack Overflow. Hard to do at the beginning because I don't know what I'm supposed to be Googling for. What's the proper name for the text input field things?
- Doing an Apple tutorial. I found a really basic, pictoral tutorial in the Apple docs. This was really helpful for learning the layout of XCode. But I had mostly forgotten it a few weeks later when I went to do my own GUI. I can't find the link to it now, either. However, I did find this repository of sample code.
- Reading articles that are too hard for me. This is actual a pretty decent strategy for getting a grounding in what the lay of the land is, provided you can hold the fuzzy/frustrated feeling at bay and work on building a relational map of unknown words. Example: this article.
- Finding the right words. I finally figured out that Cocoa is the name of the GUI system for Mac OSX applications. I don't recall exactly what the name for the UI system is for iOS apps. But it's not Cocoa.
- Asking friends for help. I found this to be slightly helpful, but mostly frustrating. I asked for help via chat, and I really needed someone in person to show me what buttons to click on the Interface Builder. Both people I asked were helpful, but neither of them were able to point me to the silver bullet for understanding Mac App programming that I was hoping for. (One probably doesn't exist).
- Reading the Table of Contents of books. I find this really helpful for giving the lay of the land - what topics are there to explore? How are things called? Sadly, I didn't think to do this until today. Table of Contents are often available free of charge for any book listed on Amazon (or otherwise).
Something I'm considering trying:
- Buying/borrowing a book. Books are so good at starting at step A and explaining the lay of the land (which is usually what I need the most when working in a totally new paradigm/system.)
I still feel like I'm struggling because the thing that I wanted to have done is not done yet. The reality is that I may not be moving very fast, but things are making more sense. That's progress! I'll take it :)
karthik and i went to the SF MOMA today to check out the last few bits of the soundtracks exhibit. we saw this great video work that i can&...
Continuing from last year, here's the stats and short synopses of books that I read (or didn't read) this year. According the Good...
Edgar Degas was obsessed with the female form. This much was obvious just from the few works that they had from him at MASP. I would go fu...
this has been copied without permission from the appendix of the 2011 edition of The Question of Separatism. It was conducted with Jane in ...