Developing Perspective

#136: The iOS 7 Conundrum.


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

00:01:24   It's so cool.

00:01:25   It's so exciting.

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

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

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

00:01:34   Some of it is.

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

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

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

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

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

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

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

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

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

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

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

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

00:02:11   descriptions of things.

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

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

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

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

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

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

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

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

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

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

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

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

00:02:41   kind of methodically go along.

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

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

00:02:46   need to do this with.

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

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

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

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

00:02:57   which just make it work.

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

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

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

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

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

00:03:11   taking care of your app.

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

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

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

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

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

00:03:28   in terms of compatibility.

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

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

00:03:36   that you can support.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

00:04:11   solved all the problems before.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

00:05:52   the technological reasons.

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

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

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

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

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

00:06:21   And it works pretty well.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

00:07:57   the same thing.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

00:09:01   of them.

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

00:09:04   I was thinking about that.

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

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

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

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

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

00:09:16   changes between the two apps.

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

00:09:21   blocks into the syntax.

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

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

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

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

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

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

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

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

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

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

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

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

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

00:09:57   about when I launch.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

00:11:10   it would be initially.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

00:12:33   probably in about three weeks.

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

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

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

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

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

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

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

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

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

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

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

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

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