Announcement from Pragmatic Progammers Today: Xcode Treasures: The master tools for designing, building and distributing good apps are now in beta.
So this is the book I've been cagily releasing on Twitter for several months and that I showed up at CocoaHeads Ann Arbor two weeks back. I've also started making videos for it as part of invalidstream, where you can already check out demos from the Debugging chapter (sections 1, 2 and 3).
Let's hold: WTF is this book anyway? Is there a new version of Prague's introductory iOS 8 | 9 | 10 SDK Development book? No, we decided something radically different this year, something for readers at different stages of their development.
Xcode Treasures is about Xcode itself, not about any of the SDKs. In fact, while the default setting is Swift + iOS, the book contains examples for iOS, macOS, tvOS and watchOS, written in Swift, Objective-C, and even common procedure C. The idea is that I will use Whatever form fits best to the subject at hand. Want to see how Address Sanitizer works? You must type any crash code for it. Interested in Auto Layout? I think you're getting better by creating a Mac with Auto Layout and resizing it: You get real-time feedback about how your limitations are being used.
None of the examples are as hard or as deep as you can & # 39; At least I get the idea of what's happening, even if it's out of your regular boarding house. And if it inspires you to try out one of the other Apple platforms or languages, even better.
Because the case is, the real goal of the book is to get a deeper understanding of Xcode itself. Think about how you usually use it: You start with a template like "Simple Viewer for iOS" or "Metal Game for Mac" or "TVML App" and it's all set to build and run as-even, even without functionality. Then you start adding code and art. And sooner or later you find that you have some kind of unusual or advanced needs and maybe you can not figure it out because the entire time you saved by starting from a template instead of building a project from the first principles you thought you never had to see how Xcode really works.
At this point you might conclude that Xcode is stupid and can not do what you need, when you have only used 10% of what Xcode can do and it's not a clear path to see how the others 90% works.
Doing something other than the usual beginner's book was one of my inspirations to write this book, but there was another: I would like to answer that kind of lazy cynicism that has Occurred about Xcode in some developing circles. So much of social media rewards takedowns and threats so you can always collect social status just by tearing on Xcode. The problem is that newcomers to development on Apple platforms see this and mimic it as a means of raising their own status in society. Of course, it's not specific to Apple developers: If you want instant street cred among anime fans, just tweet " Sword Art Online " and everyone will tell you how good and good you are. The same goes for throwing out the term "late capitalism" as if you're really legitimized to predict the world economy of the future. Dump on things and people will reward you for it. Even as a lifelong pessimist, I've been tired of this racket.
The book's work title was No Regrets Xcode and at one point I suggested to propose Xcode for People Who Hates Xcode as a title. But a full-throated defense of Xcode is an essay or a blog, not a programming book. Instead, I hope to prove by example – many many examples – that Xcode is better than you think it is.
Now I'm not blindly loyal either. I see all the 1-star ratings for Xcode on the Mac App Store. And one of my technical reviewers pointed out that despite my cheerleader y-tone, he has filed hundreds of errors with Xcode and I'm sure they're all valid.
My argument is this: For me, Xcode is actually bothered by the same reliability issues that affect most Apple software at the present time (see Marco Arments Apple has lost functional high ground). It's worse because we as developers rely on Xcode to get our work done. But how do you think people who are addicted to the Pro video apps are feeling right now? High Sierra has been a disaster for them and as a part-time video guy, I'm often hobbled by Lock-ups in Final Cut Pro, or this crazy error in Compressor where output files were many times larger than configured but only on 2013 Mac Pro (I was not happy with this). And let's not even talk about iTunes and its countless issues.
So, yes, Xcode is incorrect. But is it fundamental error? Is there any core concept – the multi-paned single-window user interface, the scriptable build system, the nature of appbunts and code signing – making it impossible for Xcode to ever be good? I do not think anyone makes this argument. The closest thing you get to this is storyboard haters that build their user interface in code. I disagree with that camp, but even if I did not, it alone is not enough to transfer all Xcode to trash status.
So yes I'm playing a contrarian game here. Therefore, the cover of the book is such a great design that everyone fell in love with when we saw it. On the one hand gold + apple. But it is also Golden Apple that the goddess of disagreement Eris used to argue between rival gods and eventually lead to the Trojan war. With all the arguments about Xcode, what better things to put on the cover than the literal icon of battle?
But I'm also reminded of another contrarian game. MacAddict MacAddict Macintosh Mac was launched on Mac in Mac, September 1996, when Mac was downloaded by Windows 95. And look at the front of the first issue: "Why Mac's Future is Light."
And you know what, they were right . Despite the fact that not only the economies were bad, but the Mac itself had a lot of problems: this was the type 11 error that destroys all your work and the software companies went out of stock by announcing that they dropped the Mac. In fact, this first issue also has a cover feature on how great OpenDoc is, although OpenDoc proved to be a software architecture failure that eventually found out.
MacAddict worked because its authors, editors and readers knew that if you missed these issues, the basic vision of Mac as a tool for creation and communication was far more convincing than the Corporate Obedience approach offered by Windows.
So I make the point that it's time to take a fresh look at Xcode. Verify the mistakes, for sure. Hope they get better. But beyond that, look at how nice the code editor is (and how to customize it to suit your own taste). See how the building system is smart to solve addictions, how to configure your own building properties on a configuration basis, or even run arbitrary scripts during the construction, or run it all from the command line and let Jenkins handle your CI. Think about how app sections and resource needs make things better for users by making smarter use of limited storage on your device and how Xcode gives you a user interface to manage these resources visually. See the amazing, clear power of LLDB to provide you with powerful breakpoints, and tools like Instruments, Keyboard Controller, Addressing Equipment, and more.
Build and Run
The payroll launches today has 7 chapters. Three more are fully written and will roll out in the next few weeks. Two others are still written. After incorporating errata repairs and other feedback from readers, this should result in a final book in August or so. With books from Prague, I always suggested to get an eBook or an eBook Plus bundle directly from Prague because you get updates, and it contains all the formats you need: ePub for iBooks, .mobi for Kindle, and PDF.
[Update: Currently, only the ebook is available, because they can’t charge for something that won’t ship within 30 days, and the print edition is further out than that. ebook buyers will get a coupon offering upgrade pricing to the ebook + print bundle when it’s ready. Details on the Prags’ Beta Books FAQ.]
The book's website also contains three copies that you can check out for a taste of what's covered. It was hard to choose, but I went with built-in scenes, code snippets and build phases. All of these contain tricks and techniques you can apply for your own work right away.
I'm also very lucky that editor Tammy Coron is also a long-lasting Xcode user so she can give me detailed feedback and have a fresh set of eyes on where the material does and does not flow well is and does not help. Along with many feedback from technical feedback (something I'm still working on), this makes a better book.
Hopefully you will all enjoy this deep grave in the depths of Xcode!