#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: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: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
◼
►
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: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: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: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: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: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: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.