Developing Perspective

#195: Pincer Maneuvers and Stubbed Toes.


00:00:00   Hello and welcome to Developing Perspective.

00:00:02   Developing Perspective is a podcast discussing news of note in iOS development, Apple and

00:00:06   the like.

00:00:07   I'm your host, David Smith.

00:00:08   I'm an independent iOS developer based in Virginia.

00:00:11   This is show number 195 and today is Wednesday, September 17th.

00:00:16   Developing Perspective was never longer than 15 minutes, so let's get started.

00:00:20   Okay, so I am recording this the morning that iOS 8 is expected to be released.

00:00:27   And its rollout and the process that it's required for us to get to here has given me

00:00:32   some time to think about where we are more generally as a community, as a platform, and

00:00:40   where we're heading.

00:00:41   It was also last week, got to see the iOS 6 unveiling as well as the Apple Watch unveiling

00:00:47   and Apple Pay and all the things that Apple has on the go.

00:00:50   And I haven't even gotten to the point, probably next month, where we'll have another big unveiling

00:00:54   where they seem to in the fall, they just sort of throw all the

00:00:58   presents out into the crowd. Like, it's great. It's made me

00:01:00   take a step back though, and try to think about where are we? And

00:01:04   what are the things that are our strengths? And what are the

00:01:06   things that are our challenges or weaknesses, or the things

00:01:09   that are going to come back to bite us down the road? And as I

00:01:14   think about that, I see two aspects of it that I think are

00:01:19   interesting because they seem to lie so much in tension against

00:01:23   each other. And the first one I'm going to talk about is what I'm going to refer to as

00:01:26   pincer movements. And the other one is what I call stubbed toes. So pincer movements.

00:01:31   So one thing that I've noticed recently, and I've known this for a while, but it's increasingly

00:01:36   clear, I think, potentially even as a result of some of the executive shufflings at Apple

00:01:41   and things, but there seems to be a really strong effort at Apple to lay groundwork ahead

00:01:49   of themselves. So rather than just building something and as soon as it's ready or as

00:01:55   soon as something is possible, putting it together and throwing it over the wall. Apple

00:01:59   does a great job of having a lot of forethought go into their approach for what the technologies

00:02:05   and the platforms and the API's and whatever it is that's going into their products. They

00:02:09   seem to be very thoughtful that as everything that they add to their platform most often

00:02:18   has two purposes. There's the direction obvious purpose that

00:02:22   they take something and they build it and they put it into

00:02:24   the platform because it's vaguely useful in and of itself.

00:02:27   And then they add to that. There's almost always some other

00:02:32   down the road benefit that this will have. That is sometimes

00:02:36   tricky to see looking forward, but is often so clear when you

00:02:40   start to look back. And then there's a lot of areas that I

00:02:43   could make this example with the one I'm going to focus on, I

00:02:46   I think for this morning, is just

00:02:47   to say the way in which we can think about how Apple prepared

00:02:51   developers for the new screens in the iPhone 6 and 6 Plus.

00:02:56   We think about a couple of years ago,

00:02:57   they added auto layout to make more dynamic interfaces

00:03:01   possible.

00:03:02   And they made that a priority, not just

00:03:04   in terms of adding it to the platform,

00:03:06   but in terms of if you went to any number of WWDC videos

00:03:09   for the last two or three years, this

00:03:10   is something that they have been focused heavily on.

00:03:14   that this is something they keep all dropping as strong hints

00:03:16   as they possibly could without just having a big sign that

00:03:19   says, we're going to make big phones,

00:03:21   that this is coming down the road.

00:03:23   And then on top of Auto Layout, you

00:03:26   see things like they did last summer, where

00:03:28   they introduced iOS 7.

00:03:30   And with it, they strongly discouraged

00:03:33   any amount of visual design that focused on pixel perfect

00:03:36   layouts.

00:03:36   Instead, it's all about having these very smooth and uncluttered

00:03:42   interfaces and all of the fancy words that Johnny Ive uses to talk about it, but ostensibly

00:03:46   what they're doing is they're saying remove the ornamentation from your applications,

00:03:50   the things that are going to be awkward if you try and expand it and stretch it and adjust

00:03:54   it. Instead, focus just on the content and make your content fill the screen in a useful

00:04:01   way. And that works out really well for now that we're making bigger screens. You do things

00:04:06   like dynamic text, which they added last year in iOS 7, which

00:04:10   is this kind of thing that forces

00:04:12   a bit of variability and customization

00:04:14   into the user experience.

00:04:16   And if you had to start to think about that,

00:04:20   then suddenly all these other things

00:04:22   start to make even more sense.

00:04:23   That OK, well, dynamic text makes

00:04:25   a lot of sense on a device that could have a really big screen.

00:04:29   Or you have things like now they've added in iOS 8,

00:04:31   things like adaptive layouts and launch screen nibs or acid

00:04:33   collections.

00:04:35   obviously those they have probably the iPhone 6 directly in mind for. But it's still, there's

00:04:40   this broad, this wide range of technologies and APIs that are coming together to converge

00:04:47   upon a point that they wanted to be able to have developers support big phones. And each

00:04:54   one of those little puzzle pieces just fits in so neatly. It's a really cool thing when

00:04:58   you start to take a step back and think about how well Apple executes on this. And big screens

00:05:03   is just one small and relatively small aspect of this.

00:05:06   You could think about things like what

00:05:07   they're doing with Touch ID and how that integrates

00:05:09   with Apple Pay and integrates with passwords and security

00:05:14   and these types of things, or the way AirPlay is gradually

00:05:17   morphing into other things like continuity

00:05:19   and how continuity will ultimately come into play,

00:05:21   probably both just from phone to phone or phone to Mac

00:05:24   or phone to Apple Watch, or the way that Apple Watch is built

00:05:29   almost certainly-- we don't know the details--

00:05:31   but almost certainly is built in some ways

00:05:33   on the same technologies and the things that they've laid now for extensions.

00:05:39   In some ways you can imagine an Apple Watch just being kind of like a Today View widget

00:05:42   or something like that.

00:05:45   There's this very clear picture that you can kind of see that Apple is building towards.

00:05:49   You can almost imagine that there's some room deep in the heart of one infinite loop.

00:05:54   It has this big massive oak table on it.

00:05:57   top, you have their broad, you know, sort of plans and their roadmaps laid out on it. And then standing around it, you can kind of see, like generals in combat preparing for war, you have Craig and Johnny, just sitting there pushing all these little pieces around, and they're lining everything up. So that as soon at the right time, everything comes together into these clear kind of like pincer, pincer movements around the desired objectives. It's like, okay, we want to have a bigger screen in two years, what parts do we need to move into place over the next couple

00:06:27   of years to gradually hit it so that when the time comes, we'll be well-prepared for

00:06:32   it.

00:06:33   And that's a bit dramatic, but I think that seems like how it works, that there really

00:06:36   is a tremendous amount of forethought going into this.

00:06:39   And I think it allows Apple to do things that would otherwise be very, very hard.

00:06:45   I don't know a huge amount of the way this works on Android.

00:06:48   I have some experience there.

00:06:50   But whenever I get the impression at watching a Google I/O keynotes and things, that there's

00:06:55   There's a lot more of, here's a bunch of cool technologies we came up with.

00:07:00   Here's a couple of solutions.

00:07:02   Now try and find the problem that they solve.

00:07:05   There's a lot less of this cohesiveness around it that I think is really, really powerful.

00:07:12   As a developer, something that I really appreciate.

00:07:13   I don't feel like Apple usually wastes my time.

00:07:16   There are some technologies that end up being dead ends or things, but by and large, it

00:07:22   all kind of works together in a really, really fluid way.

00:07:25   really nice to be part of.

00:07:27   And it's something that, as a developer,

00:07:30   I start to think about more and more when they introduce

00:07:33   something new, that I don't need to focus so much

00:07:36   on the direct implications.

00:07:37   Though sometimes that's what I have to do in the near term.

00:07:40   But to try and make sure that I'm also keeping in my mind

00:07:43   what future implications this could have down the road.

00:07:48   What could this new technology, this new API, whatever it is,

00:07:51   be laying the groundwork for?

00:07:52   And if I start to think in those terms,

00:07:54   It'll often be helpful to help me understand where I should be heading with my apps and

00:07:59   with my business.

00:08:00   And that's the good part.

00:08:03   Not so good part.

00:08:05   Nobody likes stubbing their toes, right?

00:08:07   It's painful, it's expletive-laden, and it can leave a mark on your foot.

00:08:10   You don't want to do that.

00:08:11   It's really, really bad to stub your toe.

00:08:14   But we know it's worse than stubbing your toe.

00:08:16   It's stubbing your toe while you're running.

00:08:19   Because then you don't just hurt your toe, but you hit your entire body on the pavement.

00:08:25   And that's really, really painful.

00:08:28   The breakneck pace that Apple has been moving at in the last few years has broken more than

00:08:32   a few toes along the way in terms of the things that are necessary and important to keep up

00:08:40   that pace.

00:08:41   The tools and the infrastructure that developers rely on to make that happen are often, I wouldn't

00:08:47   I wouldn't say that they're afterthoughts,

00:08:49   but they think they are struggling and straining

00:08:52   to their limit to keep up with the complexity

00:08:55   and the pace of the changes that are

00:08:57   happening on these platforms.

00:08:58   Apple has these really awesome plans.

00:09:00   And when you look at them as a whole,

00:09:03   it's really encouraging and awesome.

00:09:05   But where the rubber meets the road,

00:09:09   in the tools that we have to use to build those things,

00:09:12   I see so many little cracks and so many little issues

00:09:16   thorns that are getting in developers' way, that I worry about what that's going to mean

00:09:21   for them down the road. Xcode is a great tool. I spend most of my working life in it. I know

00:09:27   how to make it work, but it seems like every single year there's all kinds of new problems

00:09:31   and challenges and workarounds and things that I have to do and times I have to go to

00:09:34   the developer forum and things that don't work quite right or things that only work

00:09:39   right if you do things in a certain way or you have to rebuild your project or all these

00:09:42   weird things that just get in the way of the actual work

00:09:46   of making awesome products.

00:09:48   And it's frustrating, but it's also worrying.

00:09:51   Because if your tool isn't sharp,

00:09:54   your sculptures can't be smooth.

00:09:56   You have to have sharp tools in order to really effectively

00:10:00   deliver the experiences and the quality

00:10:03   that I think most developers are aiming for.

00:10:05   And so it worries me when I see the challenges

00:10:07   that things like Xcode face.

00:10:10   And similarly, I think about things like the infrastructure

00:10:13   that supports so much of what we do-- provisioning, iTunes

00:10:15   Connect.

00:10:16   The last couple of weeks have been really rough with this.

00:10:19   There's all kinds of issues and problems and things

00:10:21   that we have to find workarounds and things

00:10:24   that you kind of have to do just right in order to make it work.

00:10:28   And that's really frustrating.

00:10:30   And it's really problematic that, like yesterday, there

00:10:33   was a weird thing where the App Store wasn't correctly

00:10:36   signing extensions.

00:10:37   And extensions were just completely broken.

00:10:39   And fair enough, yesterday was the last day

00:10:42   that iOS 8 was in beta.

00:10:43   So if there was a time to have an issue and fix it

00:10:47   is right before tomorrow or today,

00:10:50   when millions and millions of people will start using them.

00:10:53   But it's a little bit worrying that it took all the way

00:10:56   until the day before launch for Apple

00:10:58   to be able to identify this problem and fix it.

00:11:01   They fixed it, and that's awesome.

00:11:02   And the people who burned the midnight oil last night

00:11:05   to make that happen, you rock.

00:11:08   But the fact that you had to do that is worrying.

00:11:11   And it's the thing that, as a developer, I

00:11:13   get most concerned about is, I think technologically

00:11:17   and structurally, Apple is doing great.

00:11:20   But there is the-- on the tooling

00:11:21   and the infrastructure side, there

00:11:23   are so many of these little things

00:11:25   that I just get worried about.

00:11:28   At some point, it's going to turn from stubbed toes

00:11:30   to stubbed toes while running, and the whole thing

00:11:33   is going to come crashing down.

00:11:34   You know, the tasks that these developers on the tooling

00:11:38   and infrastructure side at Apple have, it's kind of impossible.

00:11:41   You know, it's like Sisyphus pushing his rock up the hill.

00:11:44   Because as soon as they get to the top,

00:11:46   there's a whole new hill that they have to push their rock up.

00:11:49   And I know these people.

00:11:50   I know many of them personally.

00:11:51   And they do great jobs, and they're working really hard.

00:11:54   But there's a structural mismatch there.

00:11:58   That though these two aspects of modern iOS life,

00:12:01   they're intertwined in the sense that you can't build and advance

00:12:04   the platform technologically if you don't have the tools that enable and do that. But

00:12:10   if the pace at which you do that is too fast for the tools to keep up for, then you'll

00:12:15   never get there. You're unable to take advantage of these cool things. And I work around them,

00:12:20   and this is part of just being a developer and the life that I'm used to, that I've gone

00:12:23   through this enough times to know how you do it and the process you do. Okay, so this

00:12:27   isn't working. Okay, so let me go and search for it on Twitter. Let me go to the developer

00:12:32   Let me see if I can find it.

00:12:33   OK, let's file a radar.

00:12:34   Let's do all the things that we do.

00:12:37   But this is the risk that I see for our platform going forward

00:12:41   in the next year or two, that their reach will

00:12:44   be beyond their grasp and will end up

00:12:48   just sort of having some kind of catastrophic failure.

00:12:52   I hope not.

00:12:53   I hope that I'm wrong and I'm bringing this up

00:12:56   in an unnecessary way.

00:12:57   And there are tremendous things going on inside of Apple

00:13:01   that we were just unaware of. But this is what I see. I see this tremendous opportunity

00:13:06   on one side and this great roadmap and this tremendous amount of thought work, thought

00:13:11   going into the plans that they have ahead. But then on the underside of that, I see the

00:13:17   tools getting duller and having cracks and having problems in a way that is concerning

00:13:23   for whether I'll be able to deliver products at the level that I would like to. And we'll

00:13:27   I hope I'm wrong.

00:13:28   I hope the tools will continue to get better and better, and we've just had a few bumps

00:13:35   along the way, and that's part of rolling out a new OS.

00:13:38   I hope that's the case.

00:13:39   But I hear people who've been doing this longer than I have, so some of the old Mac developers,

00:13:45   people who've been doing this forever, who are starting to have that same type of refrain,

00:13:49   that they're worried about the tools.

00:13:51   And because they've been doing this for even longer than I have, that starts to get me

00:13:55   concerned.

00:13:56   Here at Apple, and you're listening to this,

00:13:58   this is just something to keep in mind.

00:14:00   I'm sure it's not a surprise.

00:14:01   It's not a thing that you're new to.

00:14:03   But this is the thing, as a developer, that I worry about.

00:14:05   And so I just want to encourage you to keep up the good work,

00:14:08   redouble those efforts, and maybe ease off

00:14:10   on the gas a little bit to make sure

00:14:12   that your tools and your infrastructure can keep up.

00:14:15   All right.

00:14:16   That's it for this week.

00:14:17   As always, if you have questions, comments, concerns,

00:14:19   or complaints, I'm @_davidsmith on Twitter.

00:14:21   You can email me, david@developingrespective.com.

00:14:23   I hope you have a great week.

00:14:24   I hope your iOS 8 launches go well.

00:14:26   I hope you get the phone that you wanted on Friday.

00:14:29   It's kind of an exciting time to be a developer

00:14:31   and to be able to take part of these fun things that

00:14:34   are expanding in our platform.

00:14:35   But have a great week.

00:14:36   Happy coding.

00:14:37   And I'll talk to you later.