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.