PodSearch

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.