Podcast Search

Developing Perspective

#136: The iOS 7 Conundrum.

Select a time to play from there. The line being spoken is highlighted as the audio plays.

0:00:00Hello, and welcome to Developing Perspective. Developing Perspective is a podcast discussing

0:00:04news of note for iOS development, Apple and the like. I'm your host, David Smith. I'm

0:00:08an independent iOS and Mac developer based in Herne, Virginia. This is show number 136.

0:00:13Today is Friday, August 2nd, 2013. Developing Perspective is never longer than 15 minutes,

0:00:18so let's get going.

0:00:19All right, so I want to talk about today is a conundrum that I'm facing that I thought

0:00:25would be an interesting thing to just kind of ramble on a bit about. So, you know, coming

0:00:29this fall, iOS seven is going to be launching, no surprise. But as a result, you know, I'm

0:00:35in the process now I'm sort of fully committed on to iOS seven, you know, upgraded upgraded

0:00:39my main carry iPhone to iOS seven, you know, I'm burning my ships and, you know, heading

0:00:44off into, you know, the great unknown, and focusing in pretty much exclusively these

0:00:50days on iOS 7 updates and compatibility and all those types of things. And so I'm kind

0:00:57of in this funny place. And it's kind of this been an interesting kind of conundrum that

0:01:00I've been working through, where coming fresh out of WWDC, probably was that about a month

0:01:05ago, or two months ago, wow. The, you know, you kind of come, you come out of WWDC, all

0:01:13excited about the new stuff, all crazy, everything's exciting and new. And you sit down. You're

0:01:20You're like, yeah, you know, I'm going

0:01:21to throw away all my old stuff.

0:01:22I'm going to rebuild all the new stuff.

0:01:24It's so cool.

0:01:25It's so exciting.

0:01:26And you quickly realize or sort of come to find,

0:01:30then maybe some of the new stuff isn't quite as shiny

0:01:33as you thought it would be.

0:01:34Some of it is.

0:01:34Some of it's not.

0:01:36You realize that some of the things will do--

0:01:39they'll do some half of what you thought they would do.

0:01:42Sometimes they'll do more.

0:01:43They'll do different things.

0:01:44The actual just reality of sitting down with real APIs

0:01:47and playing with them and using them

0:01:48is different than sitting and watching someone talking about it on a stage.

0:01:53And so you kind of sit down, you kind of start really understanding what's changed.

0:01:57And typically this is for the best.

0:01:59I found that the more I get to understand something, the more you can really get the

0:02:04purpose behind it and what the intention and goals were, rather than just the high-level

0:02:11descriptions of things.

0:02:12And it's exciting, and you kind of get going.

0:02:15And then you kind of hit the point where you're like, "Well, okay.

0:02:17I kind of know what I'm doing.

0:02:19And I think I mentioned this in two or three episodes ago,

0:02:21where I sat down and I took one of my old apps, Simplegram,

0:02:24and I re-implemented it with all iOS 7 stuff

0:02:27to try and make sure I really understood the technologies,

0:02:30understood how the new networking stuff works,

0:02:32how all that UI stuff goes, and really got a good grasp on it.

0:02:36And I did that, so I got pretty good sense.

0:02:38And you sit down, and you're like, OK, well,

0:02:40I'm going to work through my apps,

0:02:41kind of methodically go along.

0:02:42And I'm in a bit of a slightly unique situation

0:02:44that I actually have multiple apps that I

0:02:46need to do this with.

0:02:47But typically, the process would be the same.

0:02:49It's like, what do you do to your current app?

0:02:53You can do basic compatibility, sort

0:02:55of like the first level of working on something,

0:02:57which just make it work.

0:02:58So make it so that it doesn't crash.

0:03:00Make sure that it looks reasonable,

0:03:02that there aren't any strange UI glitches, those kinds of issues.

0:03:05And that's just sort of like a bare minimum.

0:03:09If you're not doing that, you're not really

0:03:11taking care of your app.

0:03:12Then you get starting to get into more complicated things

0:03:14and exactly what you're going to do.

0:03:15You're going to go whole hog and go iOS 7 only and just

0:03:21take advantage of all the new UI and the new technologies.

0:03:24You're going to try and straddle multiple releases

0:03:28in terms of compatibility.

0:03:29You're going to go-- I think right now, the oldest you can

0:03:31go is 4.3, I think, is the earliest iOS version

0:03:36that you can support.

0:03:37You're going to go 4.3 through 7.0.

0:03:41Are you going to go 6 to 7, 5 to 7?

0:03:44there's a lot of choices.

0:03:47And it puts you in kind of a strange place,

0:03:49and especially even if you're making a new app.

0:03:51So I'm working right now on an app-- PodWrangler

0:03:55is the working title anyway-- which

0:03:57is the podcast client for FeedWrangler,

0:03:59which I've mentioned before that I'm working on.

0:04:01And it's kind of a weird thing because it's a new app,

0:04:03but it's also an old app.

0:04:05Because I've built a pod catcher before,

0:04:07so I kind of have a very rich parts bin

0:04:09that I'm drawing on to make sure I've

0:04:11solved all the problems before.

0:04:13So I'm just taking it in and bringing it

0:04:14for in a more modern way.

0:04:16But it's still going to be a new app onto the store.

0:04:19And so what do I do in terms of showing people this app,

0:04:25showing people what to expect when I do that?

0:04:30Will they expect it to be an iOS 6 app?

0:04:32Will they expect it to be an iOS 7 app?

0:04:34If it's an iOS 7 app-- and this is the crux of the conundrum

0:04:37that I kind of want to elaborate on.

0:04:39If it's an iOS 7 app only, then I

0:04:41can't release it until probably the end of September. Somewhere around there. No, no

0:04:48one really knows for sure, depending on which rumor site you trust. I you know, the gold

0:04:52master for iOS seven will come out either in early September or mid September. I think

0:04:57mid my gut says mid September is the likely one, but we'll see. I think right now I'm

0:05:02you know, like I'm basing a lot of my planning on probably the second the second Monday in

0:05:08September as kind of my goal for making sure all my stuff is

0:05:10ready for Goldmaster, which is about five weeks from now.

0:05:15And the interesting thing is five weeks

0:05:16is not a long, long time.

0:05:18And it could be longer than that.

0:05:20But if your app is potentially going to be ready before then,

0:05:25is it wiser to release it early and make it iOS 6 and iOS 7

0:05:30compatible, or wait until the GM?

0:05:33And the interesting thing about this,

0:05:35as I've kind of struggled and wrestled

0:05:37with this over the last couple of days is I think that the reality is the difference

0:05:42there has more to do with the marketing constraints and market timing issues rather than necessarily

0:05:52the technological reasons.

0:05:56I've actually found that having iOS 6 and iOS 7 live happily together isn't too bad.

0:06:02You know, there's a few changes you have to do in how you structure your application,

0:06:06of which are good anyway, in terms of you just need to componentize enough of the parts

0:06:14that are slightly different on both platforms so that you just have a few if statements

0:06:18and they're in one place and you have one file.

0:06:21And it works pretty well.

0:06:22And so far I've been pretty happy with that.

0:06:23And what I found is, so in my case, I'm a slightly unique situation, again, where I

0:06:29I know that there's going to be a lot of activity on the day

0:06:33that the GM ships for iOS 7.

0:06:36And the question is, would I get lost in that

0:06:40if I launched on day one?

0:06:43I'm pretty confident that I could be ready on day one.

0:06:45If not, I think I'll probably have

0:06:46a good beta version of my podcast client

0:06:49within about a week or so.

0:06:51And so I could probably launch middle of August,

0:06:55which is interesting in that--

0:06:59And there's not a lot of apps that typically launch in the middle of August.

0:07:02I think most people are working on iOS 7.

0:07:04And so you kind of have an opportunity to stand out, to be interesting,

0:07:07to be unique, to be distinctive.

0:07:10Whereas if you launch on when iOS 7 first comes out, you're one of thousands,

0:07:16or one of hundreds, or one of dozens of apps that are going to be updated

0:07:19and have big updates, big releases, are all

0:07:21going to be vying for media attention at the same time.

0:07:24In some ways, it's almost like I think I should be better off waiting

0:07:27and launching in, say, October, if I'm-- it's like launch

0:07:32in August or launch in October, because launching in September

0:07:35is kind of going to be kind of tricky.

0:07:37I know, for example, in my specific industry,

0:07:40I know that Instacast and PocketCast,

0:07:43which are two of the biggest sort of players in this thing,

0:07:45are working on big iOS 7 updates.

0:07:47And they're expecting to launch iOS 7

0:07:50when the iOS 7 update comes out.

0:07:51And so if I do that, I'm going to be at least one of three apps

0:07:55that would be launching on that day that could do exactly

0:07:57the same thing.

0:07:58And that's kind of awkward.

0:07:59And so I'm trying to avoid that and go back and forth.

0:08:03And I think the upside of this kind of marketing pressure

0:08:07is that I think what I'm going to end up doing

0:08:09is supporting iOS 6 and probably trying to launch early, which

0:08:13I think in general is also good for users in that even though

0:08:18iOS 7 adoption will likely be fairly quick,

0:08:21and by industry standards, like I've said often before,

0:08:25I usually see about 50% in a couple of weeks, which is great.

0:08:29But that still means that after two weeks, 50% of people

0:08:32won't be able to use your app if you don't really support iOS 7.

0:08:36And that problem gets diminished over time and so on.

0:08:39But it's an interesting situation for customers

0:08:43if you're intentionally reducing the size and the market

0:08:46that your app can potentially address.

0:08:48And so I think it's probably going

0:08:49to be a good thing for me to address iOS 6 and iOS 7.

0:08:53And generally, I think that's where I'm going to head.

0:08:55I think I'm probably going to be staying

0:08:57that way for all of my apps.

0:08:59For a while, I was thinking, oh, I'll go iOS 7 only for a lot

0:09:01of them.

0:09:02And I think I was just kind of being lazy when

0:09:04I was thinking about that.

0:09:05The differences are important and significant,

0:09:07and I'm kind of wrapping my hands pretty solidly

0:09:10around what the changes are that I need to do.

0:09:12But generally, they coexist pretty well.

0:09:14There's a lot of things that aren't structural that are

0:09:16changes between the two apps.

0:09:17I remember when I think it was iOS 4 launched that brought

0:09:21blocks into the syntax.

0:09:23And I remember that being one of these things

0:09:25that I really wanted to get off of iOS 3 and 3.2

0:09:28as quickly as possible, because it changed how I wrote my code,

0:09:32not just introduced some new APIs.

0:09:34It meant that I'd do this and do networking in a different way.

0:09:37It meant that I'd do some of my UI stuff in a different way.

0:09:39It's kind of the thing that you just get used to.

0:09:42And understanding that, at least in my experience so far,

0:09:46they coexist well enough that I think ultimately

0:09:49it'll be better for me from a marketing perspective

0:09:51and from a customer perspective to be

0:09:53able to support iOS 6 and 7.

0:09:55And it also means that I have a lot of choices

0:09:57about when I launch.

0:09:58It's definitely a weird feeling to be

0:10:00able to have something ready and not

0:10:01be able to submit it for an unknown amount of time.

0:10:05It could be that Apple releases the GM

0:10:07and lets you submit apps starting September 1.

0:10:13It could also just as easily be October 1.

0:10:15And that's a very big difference in terms of time to market,

0:10:18in terms of the time and energy that you have for something,

0:10:21how long it's going to be sitting on a shelf.

0:10:23And so I'd rather, I think, just focus on something

0:10:26that I know I can do and get it done.

0:10:29So anyway, that's a bit rambling, and hopefully--

0:10:31but hopefully it kind of gets at this tension

0:10:35that I've been struggling through.

0:10:36And this is one of those topics that if you have thoughts on,

0:10:39I'd really appreciate your feedback on.

0:10:42It seems like this is probably the way to do it.

0:10:44I mean, I think even though if you're building a new app,

0:10:47going iOS 7 only can be nice.

0:10:49Unless that app, I think, is doing something

0:10:52that is really only possible on iOS 7.

0:10:55You're taking advantage of a totally new framework

0:10:59or architecture or something like that.

0:11:01It really probably makes sense to pull back and to stick

0:11:05and to be 6.1 and 7 compatible.

0:11:08And so far, like I said, that's not

0:11:09been as bad as I would have thought

0:11:10it would be initially.

0:11:11I played around with a lot of the stuff,

0:11:13and it's very easy to compartmentalize

0:11:14because a lot of the way that it works is just different.

0:11:17And this certainly also helps if you have a very native app,

0:11:19something with a native look and feel that

0:11:21tends to just migrate fairly well between things.

0:11:26Because if you have a totally custom UI,

0:11:29obviously it's more complicated, because then you

0:11:31need to be supporting these two things in two places,

0:11:34or make your iOS 6 look like iOS 7, which isn't actually

0:11:37too hard, because iOS 7 is so minimal.

0:11:40So a lot of it's just turning off stuff.

0:11:42But that's kind of what I'm doing.

0:11:44And it's just going pretty well.

0:11:46And this is another thing I think I'll follow up on.

0:11:48Just something I think I said last time,

0:11:50that just the experience of building something

0:11:54that you've done before is quite powerful.

0:11:57And I love-- this is a part that I think I was also

0:11:59talking about in the last couple episodes,

0:12:01about kind of being a little down, a little hard

0:12:02to get motivated right in the middle of this kind

0:12:04of this doldrums where you're off the WWDC high,

0:12:07but just not quite crunch time.

0:12:09The thing that's kind of been able to really excite me

0:12:11and get me motivated again is to be

0:12:13able to be solving interesting problems.

0:12:14And this is the best part of having solved a lot of problems

0:12:17and by having a lot of toy apps and having

0:12:19a lot of solutions that you like and trust for a lot of problems

0:12:22so you can solve the really interesting ones

0:12:24and be iterating on the cool stuff

0:12:26rather than on the grunt work underneath, which has been fun.

0:12:29So pod wrangler's going well.

0:12:30I think it should come out, like I said, hopefully

0:12:33probably in about three weeks.

0:12:34That's kind of my goal is kind of late August

0:12:37to be launching, which will be kind of fun.

0:12:38And I'll have some interesting things

0:12:40that I'm going to be doing in terms of the-- I guess

0:12:44that are monetizing it that I think

0:12:45will be interesting to talk about on the show,

0:12:47but I'll touch on those as I get closer.

0:12:49Otherwise, I think that's it for today's show.

0:12:51As always, if you have questions, comments, concerns,

0:12:53I'm on Twitter @_davidsmith.

0:12:55You can email me, david@developingperspective.com.

0:12:57Otherwise, we have a great weekend.

0:12:59Happy coding, and I will talk to you next week.