0:00:00Hello and welcome to Developing Perspective. Developing Perspective is a podcast discussing
0:00:04news of note in iOS development, Apple and the like. I'm your host, David Smith. I'm
0:00:08an independent iOS developer based in Herne, Virginia. This is show number 187. And today
0:00:14is Friday, June 13. Developing Perspective is never longer than 15 minutes. So let's get started.
0:00:20Okay, so now I'm back from WWDC last week. It feels a little bit like forever ago.
0:00:26But I ended up not actually being able to do two episodes last week. The week just got fuller and
0:00:31fuller and it didn't quite happen. But hopefully I can make up for that today. I wanted to thank
0:00:36all of the people who I got to meet out while I was out there, especially those of you who came up
0:00:41and introduced yourself to me and said hi. I always appreciate that. It's always great to hear.
0:00:46And hopefully, you know, you had a good week and we had a good conversation.
0:00:52All right, so I'm going to dive into the topic at hand.
0:00:54And I need to probably unpack it fairly quickly because there's a lot to think about.
0:00:58But a lot of the question I got many times when I was out of WDC, especially in light of the last
0:01:04couple of episodes where I was talking about how I was trying to renew my optimism and focus on
0:01:08opportunities and trying to kind of pick up my kite and see where the wind's going. I got a
0:01:13question, so now that I've seen what's happened, what are you going to do? What are the opportunities?
0:01:18what's the cool interesting thing? And I was trying to think about how I could break this
0:01:24out. And I think I worked it out in terms of I have a cut, like sort of like a three
0:01:26step process that I'm going through myself personally, I figure I can share. And that'll
0:01:31hopefully help people to kind of be thinking about what iOS eight and Yosemite could potentially
0:01:37mean for you and your business for what your projects you want to work on, and so on. Like,
0:01:41this is the process that I do every year when a new iOS beta comes out. And so far, it's
0:01:46worked pretty well because what I'm trying to do is I'm trying to think about what, you
0:01:51know, whenever there are these large sort of more seismic shifts in the developer landscape,
0:01:56like I have to plot a path through it. You know, I have limited resources, I need to
0:02:00decide how I'm going to attack all this new stuff. And so this is kind of the process
0:02:05that I've kind of fallen into. And the first step, and the first step that I think works
0:02:10just overall you have to do in some ways, is to get a solid grasp of what is new.
0:02:15And the best place you really want to start with this is you want to start
0:02:20with Apple's documentation. There's a ton of stuff in there. Like the videos are
0:02:23great. The videos are very long-winded perhaps, maybe in the right way to say it.
0:02:29Like in a great way. Like they have tons of information but it's often way too
0:02:32much to even wrap your head around. And so what I start off with doing is
0:02:36is Apple has a marketing page, like developer.apple.com/ios8.
0:02:41And it's just iOS 8 at a very, very high level.
0:02:44And you need to make sure you understand everything
0:02:46on that page properly.
0:02:47If you're going to really understand
0:02:48where Apple's going, take a look at it.
0:02:50See what things they're promoting.
0:02:51See the order in which they're promoting them
0:02:52or how they're talking about them.
0:02:54Are they technologies for customers,
0:02:55technologies for developers?
0:02:57Because that makes a big difference.
0:02:59And then you want to go and look at the What's New in iOS page
0:03:02on the developer form.
0:03:03And there's links to all this in the show notes.
0:03:05where Apple gets a bit more detailed and a bit more like not just the marketing side
0:03:08of it but also like the lower level, what's actually changing.
0:03:12And then lastly you want to look at the API diffs.
0:03:15And don't get too scared when you open up the API diffs when you see that there's, you
0:03:18know, there's a huge long thing.
0:03:21Most of it is these tiny changes in things like the accelerate framework.
0:03:24And so you can kind of skip along pretty quickly to do that.
0:03:28But as you're looking at all those documents, as you're looking at what Apple has actually
0:03:33added? What is the actually new stuff? The questions that you want to ask yourself isn't
0:03:37just like, Oh, what's new? It's questions like, what does this enable that wasn't currently
0:03:43possible? Like, what is this with this new API, this new technology? What does it allow?
0:03:49How might Apple be promoting this feature in the fall? What is this going to tie into
0:03:54their marketing campaign? Is it some kind of feature that would tie into their marketing
0:03:57campaign. Is this a change that is sort of evolutionary? Is it just here's this the cleaned
0:04:05up version of the old API that we've always used? Or is it kind of revolutionary? Is it
0:04:10a completely new thing? Is it now something that will completely didn't exist now does
0:04:14exist? And lastly, like, is this a dead end? Or is this kind of like a beachhead, right?
0:04:22Sometimes Apple is just releasing a change to clean something up, but it's not really
0:04:26get them it's not really the beginning of a much larger suite of things that they're
0:04:29probably going to do down the road. And these are the questions that I asked myself when
0:04:34I'm looking at new stuff because what I'm trying to understand is where should I work
0:04:39I where should I position myself so that I'm right in the middle of it this fall. So I'm
0:04:44right in the middle of things that Apple might be looking to promote for their marketing
0:04:48campaigns. Looking forward down the road, how can I get in the middle of where Apple
0:04:53seems to be heading. Because the reality is for most small developers, the best thing
0:04:57we can do is kind of ride the coattails of Apple. You know, right? If we're doing something,
0:05:02adopting a technology that Apple is looking for app developers to promote, so they can
0:05:06put it in a video or they can put it in a featured section in an app store or whatever,
0:05:10that's the way place you want to be because then you're at least in the running for that.
0:05:14You know, if you're doing something with this cool kind of this cool but esoteric technology
0:05:18that was added to the platform, that might not actually get anybody's attention, because,
0:05:22you know, it's not, that's not newsworthy. It's not newsworthy for Apple, and it's not newsworthy
0:05:27for anyone else. And so, what I'm always trying to do is find that and our interpretation of that is
0:05:33going to be different. Like, you could I could say like, well, Dave, what do you think? And I have
0:05:37some ideas. And it's not to be like koi, why I'm not really going to get into them too much. But
0:05:41we're all going to see that differently, because we all interpret the state of different in
0:05:46in different ways. And we're going to, our experiences are going to determine a lot,
0:05:49which of those opportunities are worth biting off. And that's not to say I'm not going to
0:05:52talk about things in the coming weeks and months. But for the purposes of this, go through
0:05:56that with a clue, you know, with a fresh mind. Think about what for yourself, where do you
0:06:00think these technologies are heading and what things are going to be growth areas down the
0:06:04road. Next, once you kind of have a good handle on these things, what you want to try and
0:06:10do is think about kind of like a short list of what paths you could take, right? You want
0:06:15start to think about how you're going to spend your summer. I mean, it's a funny way to say
0:06:19this, but you know, the reality is this is our summer. So it's July, it's June 13th now.
0:06:25We essentially have through the end of the summer to probably adopt these new technologies
0:06:30in terms of for that initial rush, for that initial wave. Obviously, this is what we're
0:06:34going to probably be working with all the way through until next June again. But there's
0:06:38a lot of things we want to think about. So what do you want to tackle this summer? What
0:06:42do you want your summer project to be? How much time do you have, you know, realistically
0:06:47thinking about it? Is this your core, your main job? Is this a side thing that's going
0:06:53to determine a lot on what technologies are worth trying to learn and adopt? Are there
0:06:58some minimum required things that you have to do? And I don't mean what you could do.
0:07:05It's what you must do. And obviously, I'm a poser child for this because I have so many
0:07:08different applications. You know, I have a lot of things and some of them have updates
0:07:13that are things that I could do. You know, I look at an application and I'm like, "Huh,
0:07:17could I make a today view widget for that application? Hmm, I suppose I could." You
0:07:22know, for some of them, like, it kind of makes sense. For some of them, it really doesn't.
0:07:26But when I start to see something like, "Huh, I don't know, does that make sense?" I usually
0:07:31will start to table it or at least push to the bottom of the list those types of updates.
0:07:34I want to look for the things that I have to do and then, you know, subtract the amount
0:07:37of time that it's going to take to work on those out of my list of other things. Because
0:07:42if it's something that I really must do in terms of like iOS 8 creates this tremendous
0:07:46opportunity and if I don't do it, I'd be foolish, like I should probably do that. If I'm looking
0:07:50for a way to just use the new hotness and shoehorn it into my app, that's probably not
0:07:56a great summer project. To me, that's a better project for the fall.
0:07:59I want to think about what I'm going to enjoy doing. Like as I was sitting there in the
0:08:05keynotes or the State of the Union, like what when they put up there was I know, is I clapping aloud
0:08:09or sharing out loud? Being like, yeah, that is awesome. I want to do that. Because if there's
0:08:13something like that, that's going to be a lot more fun. And lastly, kind of what specific skills,
0:08:19connections or experience do I have that might give me an advantage, right? So if I'm thinking
0:08:23about how I'm going to adopt these new technologies, is there any particular one of them or area that
0:08:28if I go if you know, if I focus in, I have some of some, some unfair advantage that I can leverage
0:08:34to take advantage of it. Do I know somebody in a particular industry that would help
0:08:38with promotion? Do I have an existing app that dovetails perfectly into it and allows me to
0:08:44leverage my existing user base? Whatever. You want to be thinking about this as you're trying to work
0:08:48out what you want to do. How much time do I have? What do I need to do? What could I do? And what
0:08:54I enjoy doing? And what special skills or things can I take advantage of? And then you're probably
0:09:00going to have a list. I know I have a list. I start my list of possible things that I'm
0:09:05going to do is massive. I mean, I probably have 12 app ideas, something like that, and
0:09:11probably about 25 things that I think I, you know, sort of high level features that I think
0:09:16I want to implement across my various apps additionally. And that's a lot. And so you
0:09:21kind of then have to start paring it down and prioritizing, like, what are the things
0:09:25that I need to do right away? What are the things that if, you know, if I did, if it
0:09:29isn't ready on day one, I feel like I'm going to miss out. I'm going to miss out, versus
0:09:34later on, if I'm just like, "Hey, I added this feature and I'm doing this in November,"
0:09:38it'll still be interesting and useful for people. But taking advantage of that initial
0:09:43wave and trying to catch it isn't going to be quite as relevant.
0:09:46So then I have my list. I'm still working on exactly refining it, but I have a list
0:09:51of things that I'm doing and some projects I'm going to start. I've got some ideas for
0:09:54new apps that I'm going to be building that I have some of which I've already started
0:09:57prototyping, some of which are still kind of on the drawing board. I've got a whole
0:10:01bunch of features that I'll be adding to my existing apps. And then I want to get started.
0:10:07And getting started is also kind of tricky with this. And this is the cautionary tale
0:10:11portion of this episode where you have to keep a few things in mind. And these are just
0:10:16from previous experiences that I've had where I've ultimately kind of bit myself. And the
0:10:21first, and something that I want to emphasize strongly this year especially, is that developer-focused
0:10:26features that are new are often buggy to start with. And if it's a developer-focused feature,
0:10:34your customer isn't going to care. So, what I'm saying that is I've spent in past years
0:10:42lots of times trying to adopt the new technology, trying to do something like in Xcode or Interface
0:10:47Builder or something like that. And it turns out to be really buggy and I'm starting to
0:10:53deal with all these weird bugs and edge cases and I'm not actually building something that
0:10:58the customer is going to notice or see any different.
0:11:01This year, probably the biggest example of this is Swift. And it's something I think
0:11:05I mentioned last time. I'm being very tentative with my exploration and understanding of it.
0:11:10I think Swift is great. I'm glad that it exists, but it is something that I don't expect to
0:11:15look at in depth until the fall, until I'm through the summer, until I have time and
0:11:20bandwidth to, you know, quite reasonably be working on something and have it end up being
0:11:24having this weird bug that I can't fix and the bug end up being in the compiler, right?
0:11:29Like I don't want that to be something that I'm doing for this core work that I need to
0:11:33ship. You know, Swift is a brand new language. It's coming from a small team inside of Apple.
0:11:39I'm going to hold off on that. I'm going to use Objective-C, the thing that I know inside
0:11:43and out like the back of my hands, and I'm going to be putting my new learning into new
0:11:46technologies because new developer-focused things are often buggy and your customers
0:11:52aren't going to care. You might think it's fun to write an app in Swift, and it is kind
0:11:56of fun. And I'm not saying there's anything wrong with doing that, but it's the understanding
0:12:00that your customer isn't ultimately going to notice or care probably what language it
0:12:04was written in. They're just going to care if it's shipped and when it's shipped. So
0:12:07keep that in mind. Other things you have to keep in mind, you probably want to be planning
0:12:12to be ready around September 1st in terms of for all this kind of things. That's a slightly
0:12:17conservative estimate probably. I believe last year, iOS 7 submissions were started
0:12:23to be accepted, I think it was September 10th. So if you were ready on September 1th, you
0:12:27would have had an extra week to play with. But you have to keep in mind that even, you
0:12:31know, if you're like the new iPhone or things tends to launch late September, you obviously
0:12:37are going to have to have submitted earlier than that so you can go through app review
0:12:40and all those types of things. And ideally be ready so that you can submit it, have it
0:12:44potentially be rejected and resubmitted and so on. So I tend to plan as though September
0:12:491st is my deadline that I'm working towards. And that's not a lot of time. I think that's
0:12:54probably something like 11 weeks, something like that from now. I have to do the actual
0:13:00math, but it's about 11. It's not a lot of time between now and the beginning of September.
0:13:06So be careful about how much you take on. You know, you want to finish something ideally
0:13:10because having something that's half finished by then is only sort of productive.
0:13:14And lastly, I would caution you, and this is something that I've run into myself so
0:13:19many times, focus on what is going to be cool and interesting in iOS 8, mostly.
0:13:25Tackling a problem that you could have been solving in iOS 7 and that just has this small
0:13:29part of it that is cooler in iOS 8 is probably not particularly productive insofar as tackling
0:13:35a problem that you couldn't have solved before at all, and now you can, that's probably a
0:13:41much more interesting place to start. To be thinking about it in those terms, like writing
0:13:44another to-do list app, right, over the summer, and taking advantage of CloudKit, like, hmm,
0:13:51that's tricky, right? You're going to, the cool, cool interesting part is actually a
0:13:54very small part of that whole application. The hard, like, big, chunky part is all of
0:14:00the actual interaction and all the other stuff. The fact that you're storing it into CloudKit,
0:14:03while cool, maybe isn't actually the core experience.
0:14:06So you want to be focusing on things
0:14:08where 80% of your application is the new hotness, not just
0:14:12this little cream on top that now you can do.
0:14:16So you just want to be careful about that,
0:14:18because otherwise you might end up building something
0:14:21that you could have built anyway,
0:14:22and you're not really taking advantage of the timing.
0:14:24You might as well wait until the fall,
0:14:26and when everything's stabilized and happy,
0:14:28and not deal with buggy betas and all this kind of stuff
0:14:31that you're going to need to run into over the summer.
0:14:34But otherwise, that's how I approach this.
0:14:36And I think there's a lot of interesting opportunities
0:14:38this year.
0:14:38I think I'm the most excited as I
0:14:40have been in a while about what the summer will look like.
0:14:43So I wish you all the best with your lists.
0:14:46I'm going to finish up mine, and then we're
0:14:48going to get coding.
0:14:50All right, that's it for today's week of the show.
0:14:52As always, if you have questions, comments, concerns,
0:14:54complaints, I'm @DavidSmith on Twitter,
0:14:56developmentperspective.com.
0:14:58Thanks.