Rss

Archives for : publishing

Video Killed the Prose Star

I’m always surprised by the popularity of video lessons. Personally, I prefer the density of books, but there’s clearly an audience out there that wants to see things done step-by-step on screen, while watching and listening to the presenter. Every time I get a royalty statement on the Core Audio book, there’s a little bit of activity from two videos I did for them while working on the book (one a studio-produced “live lesson”, the other a conference presentation from like 2012 or something).

Sort of as an experiment — and also because I needed ready-to-go content for my weekly livestream — I decided to go through the entire iOS 10 SDK Development book that I co-wrote with Janie, in 30 minute chunks at the beginning of each week’s stream, prior to getting into the fun stuff like the iPad let’s plays and the visual novels. The Xcode segment was fairly easy to prep each week, it got me back in touch with the contents of the book and what I do and don’t like about it, and being all in XCode, it was a different way of presenting the material than several paragraphs of thinky-think followed by a code listing.

Final Cut Pro screenshot while editing Xcode segment of invalidstream

Oh, and as a bonus, it allowed me to create a complete intro-to-iOS-development video course.

The Prags have been publishing links to each video as I get them up on Vimeo, on the book’s home page, and last week, I finished the book. So if you’re so inclined, you can start watching all 24 videos, even without a copy of the book. Heck, you can even download the code from the book’s home page.

And yeah, I know, it’s “iOS 10 SDK Development”. Actually, I was pleasantly surprised that nothing broke during our year away from the book. If I had to update it now, I’d want to cover the Safe Area in Auto Layout instead of just talking about margins, and of course I’d get in some iPhone X screenshots, but that’s about it. (There are other topics I’d want to cover, but what’s there now isn’t incorrect or anything.) We’re pretty lucky that we moved the book’s sample code away from Twitter and turned it into a podcast app instead, because all the Social framework stuff that we depended on for the iOS 6 through 9 books is gone in iOS 11. We totally dodged a bullet there.

SLServiceType constants deprecated in iOS 11 and macOS High Sierra

So anyways, help yourself to the videos, either on the Prags page or invalidstream.com. I’m taking a couple weeks’ hiatus from the stream to speed up work on my next (unannounced) book, and to build up the content pipeline for another few Friday nights of Xcode work, non-F2P iPad games, and Muv-Luv Alternative (we’re almost to where it gets good!).

iOS 10 SDK Development now available

OK, third year on this annual book-update plan, here we go: iOS 10 SDK Development now available in beta.

Cover of iOS 10 SDK Development

Continue Reading >>

Now In Glorious Extra COLOR

Parody title card: Now In Glorious Extra COLOR

iOS 9 SDK Development is now shipping, and I got my copies today. After some longer-than-expected delays copy-editing and indexing, the Prags surprised us with a very cool feature:

The book is printed in COLOR. Not just 16 pages of color plates in the middle. Like, the whole damn thing is in color. Every code listing is syntax-highlighted, every sidebar is in Prags Purple, and every simulator screenshot with a photo looks like an actual iPhone or iPad screen.

This got mentioned as a possibility during layout review, and I was surprised by it, but I guess with the lower-volume print-on-demand publishing technology they now use, color is more practical than in the old days of offset printing when you needed to work in batches of 5,000.

Continue Reading >>

Entropy

Confession: I have no idea whether the code examples from Learning Core Audio work on El Capitan and iOS 9. Maybe? Probably most of them? But I’m in a really conflicted state with where that book is.

The book came out in early 2012, which now makes it about four years old. It took about two years off and on to write, 2010 and 2011, with a big push to wrap it up at the end of 2011 because our editor was leaving Pearson to go to Apple. Looking at my mail history, I was approached about replacing Mike Lee on the book in late 2009, so the small amount of material that he and Kevin Avila wrote probably dates back to earlier in that year.

The point of this all being, the book is old now. The stated system requirements are Xcode 4.2, Lion (Mac OS X 10.7), and iOS 5. The examples in the first few chapters that use Foundation instead of Core Foundation actually use manual retain, release and the NSAutoreleasePool because the book largely pre-dates ARC (we did finally ARC-ify those examples in the April 2014 update to the downloadable sample code, at the cost of no longer matching the written material in the book).

So now what?

Continue Reading >>

iOS 9 SDK Development now available

New book alert: iOS 9 SDK Development, now available as a beta ebook from Pragmatic Programmers.

Cover of iOS 9 SDK Development

So what’s new and different? Well, the big one is, it hasn’t been three years since the previous edition. In the history of the basic iOS book from Pragmatic Programmers, between me, Bill, and Janie, it’s previously been the case that we’d more or less completely rewrite the whole thing, then not do anything with the title for two or three years. And at that point, we’d find it was so out of date, we either had to do a ground-up rewrite, or pull it out of print. Not to mention that the sales in years 2 and 3 were pretty much zero; nobody wants an iOS 6 book once iOS 7 comes out.

So, new idea: instead of rewriting 100% of the book every three years, how about we rewrite 33% of the book every year? Could that be a sustainable pace? That’s what we set out to try with this edition.

Continue Reading >>

Paper Ball and Chain

We’re so close to finally having iOS 8 SDK Development out the door! We just got the index back on Friday, and it looks great. I spent some time last night going over it, looking for either missing topics or things that didn’t really need to be in there, and it all looked great. If anything, I came away thinking “did we really write all that?”

Clipping from iOS 8 SDK Development index

And yet I’m kind of wondering: do books even need indexes anymore?

Continue Reading >>

Announcing iOS 8 SDK Development

Not that I’ve been even remotely subtle about it, but with today’s release of iOS 8 and the end of the NDA on its SDK, I can now officially announce iOS 8 SDK Development, now available as a beta book from Pragmatic Programmers:

Here’s the tl;dr:

  • Pretty much completely rewritten from previous edition
  • All code examples use the Swift programming language
  • Works through a single app all the way through the book so readers get experience of evolving a non-trivial app
  • Shows off iOS 8 features, including adaptive sizing strategies for the iPhone 6 and iPhone 6 Plus

Continue Reading >>

Asynchronous Unit Testing in Swift: The Good, Ugly The Bad, And The

Janie Clayton-Hasz and I are working on the unit testing chapter for the still-unannounced book, and we’ve had enough fun that we decided to share a little bit of what we’re up to.

In the previous edition, I wrote a testing chapter based on Bill’s iCloud recipes project, and it was a nightmare for a couple of reasons. First, a completion handler that was supposed to be called from -[UIDocument closeWithCompletionHandler:] wasn’t, at least not in iOS 6. Second, iCloud sucks (c.f., “First”). And finally, the whole idea of testing something that takes an unknown amount of time is an interesting problem, one that OCUnit was not built to handle.

So it was really cool that Janie did the research and came back with promising results about asynchronous unit testing in iOS 8 / Xcode 6. Then we jumped into the chapter and… well, it’s not as pretty as the WWDC video would have you believe. It works, but sometimes you have to play a little dirty to get it there.

Continue Reading >>

Dub Dub Disclosure Conference

Interesting development coming out of WWDC this year. When we all logged into the dev center to get the new iOS 8 / Mac OS X 10.10 / Xcode 6 bits, there was a new developer agreement to acknowledge. One of the few people to actually read it, Ole Begemann, noticed that it has a surprising new provision:

Further, Apple agrees that You will not be bound by the foregoing confidentiality terms with regard to technical information about pre-release Apple Software and services disclosed by Apple at WWDC (Apple’s Worldwide Developers Conference), except that You may not post screen shots, write public reviews or redistribute any pre-release Apple Software or services

In the past, all of us developers have had to tip-toe around the new SDKs, APIs, and tools until they’re officially released, which leads to embarrassing situations like WWDC recap sessions at CocoaHeads where we say “well, if they were going to put an Obj-C wrapper around Core Audio, they might…”. This new change in policy would seem to indicate that we’re no longer compelled to engage in such silly antics.

Fry: Not sure if NDA is still on, or if I just broke it

Continue Reading >>

ARC-ing Learning Core Audio

Pearson has just posted an update to the Learning Core Audio sample code, available from the book’s home page (look under the “Downloads” tab).

Basically, this update is all about making it easier to work with the download zip. Specifically:

  • All projects now use “Latest” (OS X | iOS) as their Base SDK: We had been specifying old SDKs that are no longer included in Xcode 5.1, so some readers got hung up on what they needed to do to resolve the “Missing Base SDK” message.

  • All Foundation projects now use Automatic Reference Counting (ARC): Not as big a deal in our book as you might think, because the middle half the book is all Core Foundation and doesn’t even need ARC, but we had some readers insist the book was broken because they got build errors on [foo release] and didn’t know what to do (either remove the manual memory-management lines or just turn off ARC). This has the unfortunate effect of making the download code no longer match the book text, and adding some nuisance __bridge casts, but ARC is so entrenched at this point, it’s for the best.

  • Each project now has a README.txt file If individual examples have to get updated in the future, we can log those changes here.

  • Re-colored the “piano key” buttons in CH11_MIDIWifiSource Because iOS 7 made them look like poorly-colored labels

There are no errata fixes in this go-round, nor any content changes. It’s just about making the download more useful. Might be the last time we need to update it? We’ll see.