4 ms·
I got my first mac laptop a few months ago and I dabbled a little bit in OS X development with swift. Outside of raywenderlich.com I had a lot of trouble findin
by ben_jones 10y ago
I got my first mac laptop a few months ago and I dabbled a little bit in OS X development with swift. Outside of raywenderlich.com I had a lot of trouble finding up-to-date resources/tutorials. I realize part of this is because Swift is moving so quickly, but it seems to be that Desktop-based application development is eons behind web and mobile application development in terms of educational material, and that it is probably holding the ecosystem back IMO.
Is it the case that developers prefer to write API documentation over tutorial/implementation based documentation that is common with other platforms (mainly web)? I feel like this approach can be debated on its merits, because it definitely raises the entry level for newcomers.
- trymas 10y ago> ..it seems to be that Desktop-based application development is eons behind web and mobile application development in terms of educational material, and that it is probably holding the ecosystem back IMO. Yes! I have the same experience. I am not OS X developer, though a few times I wanted to make a simple app and on OS X it was not so easy task as to grab something like python (+qt, tk, wx, etc.) or electron.js . Personally I think that OS X development needs a lot of introduction just to begin with and some APIs are tricky and "enterprisy" (though I believe it's easier to maintain in the long run). With iOS it seems to be much easier and way more resources.
- kitsunesoba 10y agoYeah, at least in the time I've been doing Cocoa development it's kinda always been that way. OS X Cocoa tutorials have never been much of a thing, meaning that if one wants to learn it they're going to have to dive into the documentation and scrape bits and pieces from random blogs. It's just something one gets used to… The insurgence of Cocoa Touch tutorials in the past few years felt almost strange from my perspective. On the bright side, much of what one learns in iOS tutorials transfers to OS X, even if it doesn't seem that way. The biggest difference IMO is the swapped priorities of windows and view controllers. On OS X, view controllers haven't done much until very recently and NSWindow is something of a cornerstone, since most applications use more than a single window. On iOS, it's all about view controllers and most apps use only a single UIWindow. This makes me curious of what kind of demand there is for high quality desktop Cocoa tutorials and instructional material…
- pavedwalden 10y agoAs a beginning iOS developer, I found the Big Nerd Ranch iOS book very helpful. It leaned more towards a tutorial style. I see that they also have a book called "Cocoa Programming for OS X". If I were getting into programming for OS X, that's the first resource I would check out.
- themartorana 10y agoTL;DR - the web is just easier because it's so highly abstracted, and thus attracts a larger audience of new developers - and materials aimed at them. Educational material for desktop developers is plentiful but often at an advanced level only, because... I think part of it is that the barrier to entry on the web is much lower. I've developed in objective-c forever, along with any number of other languages and platforms, and there more power available to you, the more you need to understand the underlying architecture. The web is about as abstracted from the machine as it gets. Add to that that web rendering engines and HTML, CSS, and even JavaScript are very, very forgiving, so it's just easier for someone new to get started. I was actually excited about the first couple iPhones in terms of resource scarcity to programmers. Tons of people jumped into iOS programming and for the first time in a while (or for many, the first time ever) were forced to consider what a lack of RAM and an underpowered CPU meant, and I helped coach many people through the finer points of memory management, allocations, (even with ARC) and Big O algorithm considerations. Finally, native desktop software is just more powerful, and their is so much more you can do with it (and so, much larger standard libraries, SDKs, etc.) File IO isn't something you consider much in JavaScript on the web. Neither are parallelism, race conditions, IPC, networking, OS resource allocation, long running processes, native drawing and rendering, and so on. Desktop programmers need to consider all of this a lot, and so generally tend to have some experience before getting into it (or work with a mentor/co-worker with a high degree of knowledge at first, as happened with me even post-CS degree). So materials written for desktop development tend to assume a certain pre-existing level of software development experience, and aren't aimed at new developers. Edit: as someone else said, Big Nerd Ranch stuff is pretty good.