Archives for : ios

Swift and the Last Mile

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.

Continue Reading >>

New Skepticism About the Old iOS Inter-App Communication Problem

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.

Continue Reading >>

Some Online Polls Aren’t Worth the Paper They’re Printed On

Ugh! One more App Store rant… I know, sorry! I was meaning to write about some of the AV Foundation stuff I’ve been doing and how my concerns about the type-y-ness of AV Foundation (versus all the places QuickTime and Core Audio will take a void *) are partially ameliorated by the very flexible Core Media attachments API.

But I have got to put my foot down about this 95% of developers are updating their apps for iOS 7 poll, because this is what an echo chamber sounds like, and we in the iOS developer community need to police our own BS before someone else — or reality — does it for us.

Continue Reading >>

Unsustainable productivity

Ben Thompson’s Stratechery blog had a recent series of posts on sustainability in App Store development, and the third part of the series focused particularly on productivity apps and how the nature of the App Store ecosystem has caused that category to implode.

I wrote a really long reply to him with some of my thoughts on the matter, something I’ve tweeted and blogged about before — and about part-way through the e-mail I realized it would be a pretty good blog on its own.

So I’m pasting it below in its e-mail form, with a few links and formatting added here and there.

Continue Reading >>

Fleeting Moments of Android Envy

They don’t happen often, but sometimes I do get envious of things over on Android, though I don’t imagine for an instant that there aren’t Android developers thinking the same of iOS (heaven help you if you try to do media on that platform). A few recent examples…

Continue Reading >>

Perfect Example of Unicode Character ‘PILE OF POO’ (U+1F4A9)

The Colony Drop Twitter account just passed along this little gem from Tumblr (transcription below):

It reads:

what is emojis? those emoticons? why are they classist?
Emojis are emoticons that can only be typed by iPhones and read by iPhones and iPod Touches. They cannot be typed or read by computers or non-smart phones. The emoji is inherently classist because it excludes people who do not own expensive Apple products. Most people cannot afford iPhones and iPod Touches… when you type an emoji, you type a symbol that only financially advantaged people can read. That is classism.

Wow. That is a lot of stupid packed into one paragraph. The first sentence alone has at least four factual errors (emoji are not emoticons per se, the plural of emoji is just “emoji”, they can be entered by devices other than iPhones, they can be read by many devices), and it doesn’t get better after that (the poster has clearly never heard of Unicode or the free-with-contract iPhone 3GS).

Obviously, it was beyond the poster’s ability to look up the Emoji entry on Wikipedia.

I’d love to quote Colony Drop’s witty comment from their tweet but, alas, WordPress can’t handle Unicode emoji!

Can’t Buy a Thrill

MacWorld ran a story last week to remind readers that A $5 App Isn’t Expensive, and imploring readers to stop being such cheapskates for the sake of the App Store economy.

Earth to MacWorld: It’s already too late. The market has spoken, and it refuses to pay for apps, even when the toxic side-effects of that are manifest.

MacWorld’s piece comes in part as a response to Michael Jurewitz’s five-part series on app pricing, posted on the eve of his return to Apple (and, presumably, a lot more circumspection about his future blogging). Jury sees the app pricing race to the bottom as a self-inflicted wound and urges developers to charge what their apps are worth.

Great advice… for anyone still around to take it.

Continue Reading >>


Author and speaker Daniel Steinberg always keeps his talks fresh, revising them and making changes every time he gives them. CocoaConf DC 2013 was at least the third time I’d heard his keynote “A Pocketful of Patterns” (whose framing device is based, in part, on my own skepticism about design patterns), but he caught my attention with this little pattern, showing a problem and a good solution:

What do you hate about most Cocoa Podcasts? They tend to be way too long, rambly, unfocused, self-indulgent. Therefore, if I were to produce a podcast it would be focused on the audience.

OSEG, so true. So I tweeted it right then and there:

Tweet from invalidname: "Yay. @dimsumthinking finally told the truth about most developer podcasts: they're too long, unfocused, and unedited. #cocoaconf"

Take a look at the tweet details and you’ll see a long trail of reactions, including those from Cocoa podcasters Saul Mora of NSBrief and Wolf Rentzsch and Andrew Pontious of Edge Cases.

So what’s the beef that Daniel and I have? Actually, it starts back at CocoaConf Chicago, and a flippant question I asked as the moderator of “Reverse Q&A”, where we take a panel of speakers and have them ask questions of the audience instead of the usual way around. Shifting topics with a segue, I asked “what’s the deal with all these developer podcasts anyways? why do we have so many?”

And the answer I got back was: “it’s easier than blogging.”

Continue Reading >>

Conferences: CodeMash, Detroit Mobile City, CocoaConf


CodeMash 2013 just ended; in fact, I’m in the hotel room at the Kalahari, waiting for my family to arrive so we can turn this trip into a weekend of indoor waterpark fun. That’s the upside of CodeMash. The conference itself was pretty much the usual, although this time they finally had enough iOS talks to allow for a single all-iOS track running through the entire conference. It also featured Jeff Kelley of Detroit Labs open-sourcing his AmazeKit library for iOS image trickery as the final reveal of his presentation.

I did a half-day tutorial on iOS productivity APIs, and ended up with about 16 hours of material for a 4-hour session. Not a complete disaster, because the attendees (most of whom were first-timers) got to work through downloading JSON from a REST API and building a UITableView out of it, and that’s honest-to-goodness useful stuff… but I’ll still want to reconsider my scope and ambition before turning this stuff into the all-day iPad Productivity API’s tutorial for CocoaConfs Chicago and DC.

Oh, and can I also say… wrapping up CodeMash with a trivia show from the .NET Rocks! guys? Painful. I walked out when they got to the question “why do you have to program the iPhone with Objective-C”, and the answer was something something Steve Jobs something. Why do you have to use Obj-C? I don’t know… maybe because when Apple bought NeXT, that’s what they had built all their stuff with? And you know what? It’s worked out pretty well for them, hasn’t it? Heck they even tried to offer Java as an alternative and it flopped. Guys, sometimes when you joke about stuff you don’t understand, you just sound stupid, and you waste my time. So… .NET Rocks, as it turns out, kind of sucks.

Continue Reading >>

Book updates: iOS 6 and Friends edition

A couple of important updates on my last two books:

iOS SDK Development

We just pushed an update to iOS SDK Development that updates the book to iOS 6. The biggest change, of course, was the iPhone 5, which required us to rebuild every damn project in the book with Auto Layout so it works well at both screen sizes, 3.5″ and 4″.

While iOS 6 doesn’t have the kinds of massive changes that led us to rewrite the whole book in the first place — blocks, Xcode 4, ARC — we’ve made sure we have adopted new stuff wherever possible, like the new Obj-C literals for strings and dictionaries, and the Social framework that supplants the Twitter framework and adds support for Facebook and potentially other social networks in the future.

Alas, iOS 6 seems to have a grievous -[UIDocument closeWithCompletionHandler:] bug that makes my unit testing example totally suck: instead of being able to perform the test once the completion handler signals that the document has been saved, we have to just wait 30 seconds to be sure UIDocument has done its thing. This is a regression from iOS 5. Link above goes to the Open Radar copy of the bug I filed with Apple.

Continue Reading >>