#127: Hopes for iOS7
00:00:00
◼
►
Hello and welcome to Developing Perspective. Developing Perspective is a
00:00:03
◼
►
podcast discussing news of note in iOS development, Apple, and the like. I'm your
00:00:07
◼
►
host, David Smith. I'm an independent iOS and Mac developer based in Herne, Virginia.
00:00:10
◼
►
This is show number 127 and today is Thursday, May 30th. Developing
00:00:16
◼
►
Perspective is never longer than 15 minutes, so let's get started.
00:00:18
◼
►
Alright, so for today I'm gonna talk about, I guess, iOS 7 generally. I'm gonna
00:00:23
◼
►
kind of throw my hat into the circle of speculation, prediction, prognostication,
00:00:29
◼
►
wish film thinking, whatever you want to call it, that we tend to do right around big new
00:00:33
◼
►
announcements. We definitely know it's coming. It's been announced both in the press releases.
00:00:37
◼
►
Tim Cook at the All Things D conference was talking about it. We definitely know iOS 7
00:00:41
◼
►
is coming. And these are just some of the thoughts that I've been having as I think
00:00:45
◼
►
about it as someone who makes, you know, makes apps, who thinks who makes apps on, you know,
00:00:50
◼
►
as my living and some of the things that I'm worried about some things I'm hopeful about.
00:00:54
◼
►
And we'll see. The first thing I want to say is, I was thinking about this in the more
00:00:58
◼
►
and more I hear about how iOS 7 is going to have a dramatic or will have a significant
00:01:04
◼
►
visual update in the way that it looks, in the way that potentially that it feels, but
00:01:09
◼
►
definitely in the way that it looks. That makes me hope that Apple takes full advantage
00:01:14
◼
►
of that in terms of allowing them to sort of to go big in terms of some of the broader
00:01:20
◼
►
changes that they can make. And the reason for that, I say, is if the fundamental visual
00:01:26
◼
►
appearance of the app of the the OS is changing, that I think
00:01:29
◼
►
will a sort of create an environment where a lot of
00:01:32
◼
►
people need to go iOS seven only fairly quickly in a way that is
00:01:39
◼
►
different than a lot of the other updates, you know, I was
00:01:41
◼
►
six or those types of things. There are changes, you know, I
00:01:43
◼
►
remember when the I with a UI switch went from, you know,
00:01:46
◼
►
being somewhat square to being rounded, like those types of
00:01:49
◼
►
changes are, you know, visual, if they could be significant,
00:01:52
◼
►
potentially, if your layout was very, very specific to it, but
00:01:55
◼
►
But generally speaking, they're not that bad.
00:01:58
◼
►
But if Apple is going to come in here and make
00:02:00
◼
►
these massive changes to the visual appearance
00:02:02
◼
►
of the application, it'll become very difficult
00:02:05
◼
►
to support both the old and the new, potentially.
00:02:08
◼
►
In terms of if your UI is based and laid out and structured,
00:02:12
◼
►
assuming a certain kind of style and flavor,
00:02:15
◼
►
that interspersing different UI elements between the two
00:02:18
◼
►
will be kind of complicated.
00:02:19
◼
►
And so if you have any part of your app
00:02:21
◼
►
that isn't completely native, it could look very out of place,
00:02:25
◼
►
Either if you design for iOS 7 and then it's run on iOS 6,
00:02:29
◼
►
or conversely, if you run an iOS 6 app on iOS 7.
00:02:32
◼
►
So my gut says there's going to be a bit more of a push for--
00:02:36
◼
►
where people feel like they need to go iOS 7 only very quickly.
00:02:41
◼
►
And I think that'll create a great opportunity for Apple,
00:02:44
◼
►
where they can, I think, go a bit bigger with the changes
00:02:47
◼
►
they make and kind of riding on that adoption curve.
00:02:50
◼
►
That there's likely going to be that kind of a push.
00:02:54
◼
►
so they can do a bit more. And I hope they do. I have to take advantage of that. And
00:02:57
◼
►
I hope that works out as, as, as, as we would expect. Definitely, if anyone you know, for
00:03:04
◼
►
a long time, I've collected iOS version stats, you know, for my audiobooks app, which has
00:03:10
◼
►
the widest audience. And so it gets pretty good sense. And I will say it was quite impressive
00:03:14
◼
►
that the adoption rate that iOS has these days, I mean, you can get very solid, you
00:03:19
◼
►
know, greater than 50%, 60% adoption of a new OS, we pushed out over with over the air
00:03:25
◼
►
updates within a couple of weeks. And so I think generally speaking, the prospect of
00:03:31
◼
►
going iOS seven only early is much more likely now than it would be otherwise. And so that's
00:03:36
◼
►
just something that I was thinking about, that those two things may actually play together
00:03:40
◼
►
well, but the big UI overhaul could force larger iOS seven only adoption, and so on.
00:03:46
◼
►
And so that's kind of an interesting thing.
00:03:48
◼
►
The thing I'm most curious about there
00:03:50
◼
►
is to see what devices they support iOS 7 with.
00:03:54
◼
►
And so that's kind of an interesting question.
00:03:56
◼
►
My guess is they'll drop the 3GS and then go iOS, I guess,
00:04:01
◼
►
iPhone 4, 4S, iPhone 5, and probably
00:04:05
◼
►
the fourth and fifth gen iPod touch, something like that.
00:04:09
◼
►
Which is interesting because, of course, on the handset side,
00:04:11
◼
►
that's all Retina devices.
00:04:13
◼
►
And then there's still obviously non-Retina devices
00:04:16
◼
►
the iPad, but it's kind of interesting that it may end up in that world.
00:04:19
◼
►
In terms of the actual visual changes and things that they're doing, I don't really
00:04:23
◼
►
have too strong of an opinion about that.
00:04:24
◼
►
I think people who understand and know this stuff better than I do will make better choices.
00:04:32
◼
►
And the reality is hearing that something is like, say it's more flat, it's more
00:04:36
◼
►
monochrome, whatever that is, is entirely kind of irrelevant until you actually see
00:04:41
◼
►
it. Because describing something visually, you can vaguely have a sense of if it's good
00:04:46
◼
►
or not, but it's entirely up to execution, what it actually looks like what it actually
00:04:49
◼
►
feels like. There are a few things that I I'm hopeful for, I hope that it feels natural
00:04:56
◼
►
that it's not something that's going to confuse, you know, confuse people. It's not, you know,
00:05:00
◼
►
that someone who's who's been using the old system will won't be confused on the new one.
00:05:05
◼
►
But generally speaking, my Apple is pretty good on that kind of stuff. And I doubt it's
00:05:08
◼
►
going to be some radical, everything's upside down. It's a
00:05:11
◼
►
totally new interface. It's a totally new everything. It'll
00:05:13
◼
►
just be the old thing, but just updated and better. Some of the
00:05:18
◼
►
things that I'm hoping for in iOS 7, and just generally, these
00:05:22
◼
►
are kind of the things that we're starting to get into. I
00:05:24
◼
►
think most people go through the there's like the, their
00:05:27
◼
►
wants, their wishes, and the things that they kind of always
00:05:29
◼
►
throw out there, but never really expect to happen. So
00:05:32
◼
►
something that I hope in iOS 6, iOS 7 is a more pervasive use of
00:05:35
◼
►
blocks. I think we've been seeing a strong progression for this over time in iOS since
00:05:43
◼
►
I guess I was four when blocks were first introduced. I think there's a lot of places
00:05:47
◼
►
where it would make a lot of sense, but they're still not in there. The classic ones are things
00:05:51
◼
►
like UI alert views and action sheets and those types of places where there's a lot
00:05:56
◼
►
of, kind of any time you see that there's a lot of activity on the open source side
00:06:00
◼
►
of people building libraries to create that behavior, it's usually a pretty good indication
00:06:04
◼
►
that it's something that I think that they should adopt
00:06:06
◼
►
and they should be sort of moving towards.
00:06:08
◼
►
And I think especially in those cases,
00:06:09
◼
►
it makes the code so much better.
00:06:11
◼
►
That if there's a lot of these places
00:06:12
◼
►
where you're attaching actions and methods to buttons,
00:06:17
◼
►
doing that with a block-based thing makes a lot of sense.
00:06:19
◼
►
So I hope we see a lot more pervasive blocks.
00:06:22
◼
►
I hope that we see, and then related to that,
00:06:23
◼
►
I hope we see a much better networking interface stack.
00:06:27
◼
►
It's something that I always think is kind of funny
00:06:28
◼
►
that it seems like the de facto standard right now
00:06:31
◼
►
is that I'll probably, it seems like
00:06:33
◼
►
vast majority of projects use something like AF networking, if for their network communication,
00:06:39
◼
►
not everybody, but I'd say that it's a significant percentage of code in the store right now
00:06:45
◼
►
is running something like AF networking or an equivalent kind of networking stack on
00:06:49
◼
►
top of it. And that's the same kind of way that makes me think that Apple is missing
00:06:54
◼
►
something there that would be much better if the OS provided a richer, more robust networking
00:07:01
◼
►
stack beyond just kind of what they provide now with NSURL connection.
00:07:05
◼
►
Networking is probably one of the most common actions
00:07:09
◼
►
across all applications. There's very few applications now
00:07:13
◼
►
that do nothing with a network
00:07:17
◼
►
request that I think would
00:07:21
◼
►
that's something that could really benefit from an overhaul. That could be made more robust
00:07:25
◼
►
given a richer API, a much more, instead of giving a lot more
00:07:29
◼
►
It's funny because it's not that I necessarily need to do more because obviously AF networking
00:07:34
◼
►
is built on top of it.
00:07:35
◼
►
But I think a lot of it is to wrap up the common operations, the common problems, the
00:07:39
◼
►
common issues, especially in a mobile environment where networking and connectivity can come
00:07:43
◼
►
and go in something that's a bit more robust and a bit more easy to use in a powerful way.
00:07:48
◼
►
I'd also be interested to see Apple introduce some new UI paradigms at an OS level.
00:07:56
◼
►
And this is something that I've been thinking about a little bit in terms of say like the
00:08:00
◼
►
massive explosion of this sort of the sidebar side drawer navigation approach, where rather
00:08:07
◼
►
having a tab bar, which can only have up to maybe four or five or six items in it, you
00:08:12
◼
►
know, have the hamburger button in the top left that swipes out and you have a drawer
00:08:17
◼
►
there with all kinds of other options and navigations.
00:08:20
◼
►
Something like that I think would be interesting for them to introduce at an OS level, whether
00:08:25
◼
►
that's the exact paradigm or something that accomplishes
00:08:28
◼
►
the same goal.
00:08:29
◼
►
I think it would be good generally,
00:08:31
◼
►
the more kind of standardization that can come out of this
00:08:35
◼
►
would be good in terms of,
00:08:36
◼
►
it's like when the app, I guess when iOS first launched,
00:08:40
◼
►
and I guess iPhone SDK, or the iPhone SDK in two,
00:08:44
◼
►
or even just an iOS or iPhone OS one,
00:08:47
◼
►
we've had the same basic navigation styles,
00:08:51
◼
►
UI navigation controller and UI tab bar controller,
00:08:55
◼
►
that work, but I feel like there's something that could be refreshed and improved there
00:09:00
◼
►
to create something a bit more, just something different.
00:09:04
◼
►
You can give it a freshness, and it'd be great if it was built at the OS level, I think,
00:09:09
◼
►
and to allow some more, just to sort of, I guess, yeah,
00:09:14
◼
►
to be able to take advantage natively and have a common experience
00:09:19
◼
►
across all applications with some new navigation paradigms.
00:09:22
◼
►
and I could see them definitely bringing
00:09:24
◼
►
those types of things into some of their own applications,
00:09:26
◼
►
like mail, if it comes to mind, or messages.
00:09:29
◼
►
Where the navigation controller can feel a little heavy,
00:09:33
◼
►
where you're constantly going back, back, back, back, forward,
00:09:35
◼
►
forward, forward.
00:09:36
◼
►
You could imagine so much better UI paradigms potentially there
00:09:40
◼
►
with stacks and drawers and stuff.
00:09:43
◼
►
So anyway, that's something that I've
00:09:45
◼
►
been thinking about that I think would be great,
00:09:47
◼
►
to see them doing it, to be pushing and driving
00:09:50
◼
►
in that direction, so that rather than now,
00:09:52
◼
►
everyone's going off in their own direction.
00:09:54
◼
►
The applicant can maybe focus that attention back down,
00:09:57
◼
►
and the user experience will likely improve as a result,
00:09:59
◼
►
because then there's a much more common set of experiences
00:10:02
◼
►
that people are used to.
00:10:04
◼
►
And then lastly, I think one thing I'd love--
00:10:06
◼
►
it's like every year, there's going
00:10:08
◼
►
to be new improvements to Xcode.
00:10:10
◼
►
Xcode is kind of where I make my living,
00:10:12
◼
►
and I think a lot of people-- a lot of you make your living.
00:10:14
◼
►
You're spending a lot of time in there.
00:10:15
◼
►
And any improvements and changes that can happen there
00:10:18
◼
►
are certainly always appreciated.
00:10:19
◼
►
that can make me more productive as a developer
00:10:22
◼
►
is always appreciated and great.
00:10:24
◼
►
This is the kind of thing that every time,
00:10:25
◼
►
I always love going to the LLVM talk.
00:10:28
◼
►
Most of it is over my head, but I love just hearing
00:10:32
◼
►
all the stuff that they're doing there
00:10:33
◼
►
to make it faster, to make it better.
00:10:35
◼
►
There's all these things where they can,
00:10:37
◼
►
having good tools can give people productivity for free
00:10:42
◼
►
in some ways, and that's something I always love,
00:10:44
◼
►
as someone who makes my living doing this.
00:10:47
◼
►
If Apple can make some changes to their tool set
00:10:50
◼
►
that just increases my ability to get my job done,
00:10:54
◼
►
that's great.
00:10:55
◼
►
Even the simple stuff, it seems like at FLVM,
00:10:58
◼
►
they're always making it faster and more streamlined
00:11:01
◼
►
and faster and faster and faster.
00:11:02
◼
►
And so if I can install a new version of Xcode
00:11:05
◼
►
and all my compilations take 10% less time, that's great.
00:11:08
◼
►
That is a free benefit for me.
00:11:11
◼
►
So I expect we'll see a lot of those.
00:11:15
◼
►
Generally speaking, in terms of the actual layout and structure, I've gotten used to
00:11:18
◼
►
it and I'm pretty happy with the overall structure of Xcode.
00:11:22
◼
►
There's always the niggling things that aren't quite like I'd like them, but generally it's
00:11:26
◼
►
pretty good in structure.
00:11:27
◼
►
What I'd like to see though is if they can kind of take to the next level and to help
00:11:35
◼
►
Xcode to write, help me to write better code, it would be something that I'd love to see
00:11:40
◼
►
And they've been heading this direction with Analyze, with the static analysis tools, with
00:11:43
◼
►
with some of the things they do in instruments and so on.
00:11:46
◼
►
But I think there's two parts of that
00:11:48
◼
►
that I think I'd love to see.
00:11:49
◼
►
And one of them, I think, would be integrating instruments
00:11:52
◼
►
more tightly with Xcode itself in terms of allowing--
00:11:56
◼
►
right now, there's always this funny thing
00:11:58
◼
►
where if I want to go off and do the analysis side of things,
00:12:03
◼
►
I feel like I'm context switching off
00:12:05
◼
►
into this other thing.
00:12:06
◼
►
And it's a separate activity, and it's a separate place.
00:12:08
◼
►
I feel like it would be great if there
00:12:09
◼
►
was a lot-- if there was a bit more of a tighter integration
00:12:12
◼
►
there, that it's kind of, you know, if I'm running in the simulator, it's just always
00:12:15
◼
►
running the basic analysis tools. Or by default, they're being displayed as part of the application.
00:12:20
◼
►
And there's those types of things that I think you could, or, I mean, even there, when I
00:12:24
◼
►
think about it, there's a lot of things that I think the, oh, it could do during debugging.
00:12:28
◼
►
That could be very helpful. That, you know, if it's running its cycle detector, for example,
00:12:33
◼
►
you know, for memory, for free, you know, for memory cycles and retain cycles, it's
00:12:37
◼
►
It's like it's just running that all the time
00:12:39
◼
►
when you're debugging.
00:12:41
◼
►
Or it's doing it in such a way that it's just running
00:12:43
◼
►
in the background and you can,
00:12:45
◼
►
but anytime it detects a cycle,
00:12:46
◼
►
it logs out to the console and says,
00:12:47
◼
►
"Hey, I found a loop here.
00:12:51
◼
►
"Maybe you should go look at it."
00:12:52
◼
►
Kind of being more proactive about it.
00:12:54
◼
►
And obviously you can turn these things off
00:12:55
◼
►
and blah, blah, blah, in terms of
00:12:56
◼
►
it doesn't have to be on all the time.
00:12:58
◼
►
But I would love if I could just kind of
00:12:59
◼
►
set up my environment so that it's,
00:13:02
◼
►
there's all these things watching what I'm doing
00:13:03
◼
►
to try and catch issues and bugs
00:13:06
◼
►
before I have to actually go track them down
00:13:09
◼
►
and look for them.
00:13:10
◼
►
Because typically, there's a certain class of problems
00:13:14
◼
►
that could just be solved that way.
00:13:15
◼
►
Another one that I think of is-- and I believe
00:13:18
◼
►
there's actually a way to do this in Android development.
00:13:20
◼
►
But it would be great if there was flags when you're debugging
00:13:23
◼
►
that you can set that any time, for example,
00:13:25
◼
►
the main thread blocks, it puts up a big warning
00:13:28
◼
►
in your console and says, oh, you just
00:13:30
◼
►
blocked the main thread on this.
00:13:31
◼
►
Here's the function you called, and this blocked the main thread.
00:13:34
◼
►
Don't do that.
00:13:35
◼
►
or those types of things where you can help me write better
00:13:39
◼
►
code by watching what I'm doing, watching the application run,
00:13:43
◼
►
and be proactive about telling me about problems
00:13:45
◼
►
rather than me having to go and find them.
00:13:47
◼
►
And that's obviously the next level.
00:13:49
◼
►
That's the next level of tool beyond just allowing me
00:13:51
◼
►
to build it in the first place.
00:13:53
◼
►
And then static analysis or those types
00:13:55
◼
►
of tools, which are great in terms of telling me
00:13:57
◼
►
at a high level, here are some things that
00:13:59
◼
►
don't look quite right, to be able to actually--
00:14:01
◼
►
the dynamic analysis, I guess.
00:14:03
◼
►
So rather than just the static looking at my code,
00:14:05
◼
►
actually looking at the application running.
00:14:08
◼
►
And so those are some of the things
00:14:08
◼
►
that I've been thinking about.
00:14:10
◼
►
Those are the kind of things I'm hopeful for.
00:14:12
◼
►
Generally speaking, I'm excited about it.
00:14:13
◼
►
This time of year, I always find that I get kind of sad--
00:14:17
◼
►
I get a little bit worn down, a little bit--
00:14:21
◼
►
it's a little bit rough in terms of keeping
00:14:24
◼
►
motivated, keeping engaged.
00:14:25
◼
►
And so I always like going to W2C, having something new,
00:14:28
◼
►
having something fresh, having something exciting to wrap
00:14:30
◼
►
my head around and dive into.
00:14:32
◼
►
And so I'm excited about WWDC in two weeks.
00:14:35
◼
►
And I look forward to seeing a lot of you there.
00:14:37
◼
►
Anyway, that's it for today's show.
00:14:39
◼
►
As always, if you have questions, comments, concerns,
00:14:41
◼
►
compliments, complaints, I'm on Twitter @_davidsmith.
00:14:44
◼
►
I'm on AppNet @davidsmith.
00:14:45
◼
►
If you want to email me, david@developingperspective.com.
00:14:48
◼
►
Otherwise, if you have a great week, weekend, happy coding.
00:14:51
◼
►
I'll talk to you later.