OK, third year on this annual book-update plan, here we go: iOS 10 SDK Development now available in beta.
Archives for : ios
(yeah, I know I said I was taking a pause from conferences, and I shouldn’t be pushing myself during what’s been the worst 12 months of my life, but what can I say, I like doing CocoaConf)
I developed two new talks for CocoaConf DC, and those are the same ones I’ll be doing in San Jose.
Perfect is the enemy of good, but far more importantly, perfect is the enemy of *practice*. Allow yourself to make weird flawed things
— Jaiden Mispy (@m1sp) April 28, 2016
Janie had a blog the other week about her self-destructive tendencies, one of which is to do things that feel productive but aren’t. A lot of her problem is reading a bunch of background information prior to starting a major project, something that has so many unknowns it’s imposing.
I get it because I’ve been in the same situation and done the same thing, and it didn’t work. But an approach far more naive turned out to work better.
You guys, and girls, you won’t believe this.
So at work, I’m doing a feature that requires sharing a pre-formatted message by the user’s choice of mail, iMessage/SMS, Twitter, or Facebook. So we use the typical iOS compose controllers from the MessageUI framework for the first two, and Social framework for the others. Everything’s fine, until my issue gets returned, saying that the Facebook share sheet has no text.
It’s fine for me when I test it, so I search around for “
SLComposeViewController Facebook empty” and discover something.
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?”
And yet I’m kind of wondering: do books even need indexes anymore?
I’m not the first to say this. Chances are you saw Marco Arment tweeting about it earlier in the week:
I hope Apple realizes how deeply their reputation has been damaged, in an alarmingly short time, by their rapid decline in software quality.
— Marco Arment (@marcoarment) December 26, 2014
The latter half of 2014 has been a disaster in terms of quality of Apple software. As I was finishing up the book, I kept an index card of all the bugs I needed to file. I ran out of room.
Some of these have caused real pain, such as the Xcode 6.1 iOS Simulator not supporting internationalization — horrible for us when the third chapter of our iOS 8 SDK Development book walks through an i18n example, and a later chapter shows how to make a third-party keyboard extension, which doesn’t work because the simulator now only supports the US English and emoji keyboards.
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
So the initial thrill of Swift is over, and lots of us are digging in. So far, there haven’t been any screaming denunciations that I’ve heard, but surely they’re coming… if there aren’t, then we’re all too easy to please.
The best thing I can say about Swift is that it’s deeply pragmatic. Rather than set about creating some beautiful, “perfect” language (or identifying one that already exists), Swift’s highest priorities include reconciling C and Objective-C and the entirety of the existing frameworks for iOS and OS X. Having to rework all those frameworks to suit some other language is presumably a non-starter, as Apple’s tried that without success three times now (the Cocoa bridges from Java, Ruby, and Python).
As I rework our iOS intro book for Swift — no, it won’t be formally announced until the publisher is convinced it’s a go, but anyone following me on Twitter knows I’ve been working hard on it for the last week — much of what Swift does for beginners pleases me. To the degree that it unifies the conventions of C and Obj-C under the guise of global functions and methods respectively, it certainly saves me from having to tell beginners “square brace idiom here, but parentheses here, because history.” And Swift’s closure syntax is far more memorable than blocks ever were; I’m already writing them by hand without resorting to the cheat sheet.
But the fact that the frameworks were programmatically adapted for Swift rather than carefully combed over introduces some new pain points.
WWDC is next week, and hope springs eternal that the walls between apps will come down, or at least they’ll be a little more permeable. Typifying this long-running wish is the rumor that iPads will offer a side-by-side mode, ala Windows 8.1, allowing more direct data sharing between two apps running concurrently.
As always, I’m skeptical. And I guess what’s driving that skepticism is the sense that few iOS developers are using the data-sharing APIs we already have.