#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: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.