Developing Perspective

#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:39   more of.

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:02   I have to--

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   not 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.