Developing Perspective

#187: Explorers


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

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

00:00:08   an independent iOS developer based in Herne, Virginia. This is show number 187. And today

00:00:14   is Friday, June 13. Developing Perspective is never longer than 15 minutes. So let's get started.

00:00:20   Okay, so now I'm back from WWDC last week. It feels a little bit like forever ago.

00:00:26   But I ended up not actually being able to do two episodes last week. The week just got fuller and

00:00:31   fuller and it didn't quite happen. But hopefully I can make up for that today. I wanted to thank

00:00:36   all of the people who I got to meet out while I was out there, especially those of you who came up

00:00:41   and introduced yourself to me and said hi. I always appreciate that. It's always great to hear.

00:00:46   And hopefully, you know, you had a good week and we had a good conversation.

00:00:52   All right, so I'm going to dive into the topic at hand.

00:00:54   And I need to probably unpack it fairly quickly because there's a lot to think about.

00:00:58   But a lot of the question I got many times when I was out of WDC, especially in light of the last

00:01:04   couple of episodes where I was talking about how I was trying to renew my optimism and focus on

00:01:08   opportunities and trying to kind of pick up my kite and see where the wind's going. I got a

00:01:13   question, so now that I've seen what's happened, what are you going to do? What are the opportunities?

00:01:18   what's the cool interesting thing? And I was trying to think about how I could break this

00:01:24   out. And I think I worked it out in terms of I have a cut, like sort of like a three

00:01:26   step process that I'm going through myself personally, I figure I can share. And that'll

00:01:31   hopefully help people to kind of be thinking about what iOS eight and Yosemite could potentially

00:01:37   mean for you and your business for what your projects you want to work on, and so on. Like,

00:01:41   this is the process that I do every year when a new iOS beta comes out. And so far, it's

00:01:46   worked pretty well because what I'm trying to do is I'm trying to think about what, you

00:01:51   know, whenever there are these large sort of more seismic shifts in the developer landscape,

00:01:56   like I have to plot a path through it. You know, I have limited resources, I need to

00:02:00   decide how I'm going to attack all this new stuff. And so this is kind of the process

00:02:05   that I've kind of fallen into. And the first step, and the first step that I think works

00:02:10   just overall you have to do in some ways, is to get a solid grasp of what is new.

00:02:15   And the best place you really want to start with this is you want to start

00:02:20   with Apple's documentation. There's a ton of stuff in there. Like the videos are

00:02:23   great. The videos are very long-winded perhaps, maybe in the right way to say it.

00:02:29   Like in a great way. Like they have tons of information but it's often way too

00:02:32   much to even wrap your head around. And so what I start off with doing is

00:02:36   is Apple has a marketing page, like developer.apple.com/ios8.

00:02:41   And it's just iOS 8 at a very, very high level.

00:02:44   And you need to make sure you understand everything

00:02:46   on that page properly.

00:02:47   If you're going to really understand

00:02:48   where Apple's going, take a look at it.

00:02:50   See what things they're promoting.

00:02:51   See the order in which they're promoting them

00:02:52   or how they're talking about them.

00:02:54   Are they technologies for customers,

00:02:55   technologies for developers?

00:02:57   Because that makes a big difference.

00:02:59   And then you want to go and look at the What's New in iOS page

00:03:02   on the developer form.

00:03:03   And there's links to all this in the show notes.

00:03:05   where Apple gets a bit more detailed and a bit more like not just the marketing side

00:03:08   of it but also like the lower level, what's actually changing.

00:03:12   And then lastly you want to look at the API diffs.

00:03:15   And don't get too scared when you open up the API diffs when you see that there's, you

00:03:18   know, there's a huge long thing.

00:03:21   Most of it is these tiny changes in things like the accelerate framework.

00:03:24   And so you can kind of skip along pretty quickly to do that.

00:03:28   But as you're looking at all those documents, as you're looking at what Apple has actually

00:03:33   added? What is the actually new stuff? The questions that you want to ask yourself isn't

00:03:37   just like, Oh, what's new? It's questions like, what does this enable that wasn't currently

00:03:43   possible? Like, what is this with this new API, this new technology? What does it allow?

00:03:49   How might Apple be promoting this feature in the fall? What is this going to tie into

00:03:54   their marketing campaign? Is it some kind of feature that would tie into their marketing

00:03:57   campaign. Is this a change that is sort of evolutionary? Is it just here's this the cleaned

00:04:05   up version of the old API that we've always used? Or is it kind of revolutionary? Is it

00:04:10   a completely new thing? Is it now something that will completely didn't exist now does

00:04:14   exist? And lastly, like, is this a dead end? Or is this kind of like a beachhead, right?

00:04:22   Sometimes Apple is just releasing a change to clean something up, but it's not really

00:04:26   get them it's not really the beginning of a much larger suite of things that they're

00:04:29   probably going to do down the road. And these are the questions that I asked myself when

00:04:34   I'm looking at new stuff because what I'm trying to understand is where should I work

00:04:39   I where should I position myself so that I'm right in the middle of it this fall. So I'm

00:04:44   right in the middle of things that Apple might be looking to promote for their marketing

00:04:48   campaigns. Looking forward down the road, how can I get in the middle of where Apple

00:04:53   seems to be heading. Because the reality is for most small developers, the best thing

00:04:57   we can do is kind of ride the coattails of Apple. You know, right? If we're doing something,

00:05:02   adopting a technology that Apple is looking for app developers to promote, so they can

00:05:06   put it in a video or they can put it in a featured section in an app store or whatever,

00:05:10   that's the way place you want to be because then you're at least in the running for that.

00:05:14   You know, if you're doing something with this cool kind of this cool but esoteric technology

00:05:18   that was added to the platform, that might not actually get anybody's attention, because,

00:05:22   you know, it's not, that's not newsworthy. It's not newsworthy for Apple, and it's not newsworthy

00:05:27   for anyone else. And so, what I'm always trying to do is find that and our interpretation of that is

00:05:33   going to be different. Like, you could I could say like, well, Dave, what do you think? And I have

00:05:37   some ideas. And it's not to be like koi, why I'm not really going to get into them too much. But

00:05:41   we're all going to see that differently, because we all interpret the state of different in

00:05:46   in different ways. And we're going to, our experiences are going to determine a lot,

00:05:49   which of those opportunities are worth biting off. And that's not to say I'm not going to

00:05:52   talk about things in the coming weeks and months. But for the purposes of this, go through

00:05:56   that with a clue, you know, with a fresh mind. Think about what for yourself, where do you

00:06:00   think these technologies are heading and what things are going to be growth areas down the

00:06:04   road. Next, once you kind of have a good handle on these things, what you want to try and

00:06:10   do is think about kind of like a short list of what paths you could take, right? You want

00:06:15   start to think about how you're going to spend your summer. I mean, it's a funny way to say

00:06:19   this, but you know, the reality is this is our summer. So it's July, it's June 13th now.

00:06:25   We essentially have through the end of the summer to probably adopt these new technologies

00:06:30   in terms of for that initial rush, for that initial wave. Obviously, this is what we're

00:06:34   going to probably be working with all the way through until next June again. But there's

00:06:38   a lot of things we want to think about. So what do you want to tackle this summer? What

00:06:42   do you want your summer project to be? How much time do you have, you know, realistically

00:06:47   thinking about it? Is this your core, your main job? Is this a side thing that's going

00:06:53   to determine a lot on what technologies are worth trying to learn and adopt? Are there

00:06:58   some minimum required things that you have to do? And I don't mean what you could do.

00:07:05   It's what you must do. And obviously, I'm a poser child for this because I have so many

00:07:08   different applications. You know, I have a lot of things and some of them have updates

00:07:13   that are things that I could do. You know, I look at an application and I'm like, "Huh,

00:07:17   could I make a today view widget for that application? Hmm, I suppose I could." You

00:07:22   know, for some of them, like, it kind of makes sense. For some of them, it really doesn't.

00:07:26   But when I start to see something like, "Huh, I don't know, does that make sense?" I usually

00:07:31   will start to table it or at least push to the bottom of the list those types of updates.

00:07:34   I want to look for the things that I have to do and then, you know, subtract the amount

00:07:37   of time that it's going to take to work on those out of my list of other things. Because

00:07:42   if it's something that I really must do in terms of like iOS 8 creates this tremendous

00:07:46   opportunity and if I don't do it, I'd be foolish, like I should probably do that. If I'm looking

00:07:50   for a way to just use the new hotness and shoehorn it into my app, that's probably not

00:07:56   a great summer project. To me, that's a better project for the fall.

00:07:59   I want to think about what I'm going to enjoy doing. Like as I was sitting there in the

00:08:05   keynotes or the State of the Union, like what when they put up there was I know, is I clapping aloud

00:08:09   or sharing out loud? Being like, yeah, that is awesome. I want to do that. Because if there's

00:08:13   something like that, that's going to be a lot more fun. And lastly, kind of what specific skills,

00:08:19   connections or experience do I have that might give me an advantage, right? So if I'm thinking

00:08:23   about how I'm going to adopt these new technologies, is there any particular one of them or area that

00:08:28   if I go if you know, if I focus in, I have some of some, some unfair advantage that I can leverage

00:08:34   to take advantage of it. Do I know somebody in a particular industry that would help

00:08:38   with promotion? Do I have an existing app that dovetails perfectly into it and allows me to

00:08:44   leverage my existing user base? Whatever. You want to be thinking about this as you're trying to work

00:08:48   out what you want to do. How much time do I have? What do I need to do? What could I do? And what

00:08:54   I enjoy doing? And what special skills or things can I take advantage of? And then you're probably

00:09:00   going to have a list. I know I have a list. I start my list of possible things that I'm

00:09:05   going to do is massive. I mean, I probably have 12 app ideas, something like that, and

00:09:11   probably about 25 things that I think I, you know, sort of high level features that I think

00:09:16   I want to implement across my various apps additionally. And that's a lot. And so you

00:09:21   kind of then have to start paring it down and prioritizing, like, what are the things

00:09:25   that I need to do right away? What are the things that if, you know, if I did, if it

00:09:29   isn't ready on day one, I feel like I'm going to miss out. I'm going to miss out, versus

00:09:34   later on, if I'm just like, "Hey, I added this feature and I'm doing this in November,"

00:09:38   it'll still be interesting and useful for people. But taking advantage of that initial

00:09:43   wave and trying to catch it isn't going to be quite as relevant.

00:09:46   So then I have my list. I'm still working on exactly refining it, but I have a list

00:09:51   of things that I'm doing and some projects I'm going to start. I've got some ideas for

00:09:54   new apps that I'm going to be building that I have some of which I've already started

00:09:57   prototyping, some of which are still kind of on the drawing board. I've got a whole

00:10:01   bunch of features that I'll be adding to my existing apps. And then I want to get started.

00:10:07   And getting started is also kind of tricky with this. And this is the cautionary tale

00:10:11   portion of this episode where you have to keep a few things in mind. And these are just

00:10:16   from previous experiences that I've had where I've ultimately kind of bit myself. And the

00:10:21   first, and something that I want to emphasize strongly this year especially, is that developer-focused

00:10:26   features that are new are often buggy to start with. And if it's a developer-focused feature,

00:10:34   your customer isn't going to care. So, what I'm saying that is I've spent in past years

00:10:42   lots of times trying to adopt the new technology, trying to do something like in Xcode or Interface

00:10:47   Builder or something like that. And it turns out to be really buggy and I'm starting to

00:10:53   deal with all these weird bugs and edge cases and I'm not actually building something that

00:10:58   the customer is going to notice or see any different.

00:11:01   This year, probably the biggest example of this is Swift. And it's something I think

00:11:05   I mentioned last time. I'm being very tentative with my exploration and understanding of it.

00:11:10   I think Swift is great. I'm glad that it exists, but it is something that I don't expect to

00:11:15   look at in depth until the fall, until I'm through the summer, until I have time and

00:11:20   bandwidth to, you know, quite reasonably be working on something and have it end up being

00:11:24   having this weird bug that I can't fix and the bug end up being in the compiler, right?

00:11:29   Like I don't want that to be something that I'm doing for this core work that I need to

00:11:33   ship. You know, Swift is a brand new language. It's coming from a small team inside of Apple.

00:11:39   I'm going to hold off on that. I'm going to use Objective-C, the thing that I know inside

00:11:43   and out like the back of my hands, and I'm going to be putting my new learning into new

00:11:46   technologies because new developer-focused things are often buggy and your customers

00:11:52   aren't going to care. You might think it's fun to write an app in Swift, and it is kind

00:11:56   of fun. And I'm not saying there's anything wrong with doing that, but it's the understanding

00:12:00   that your customer isn't ultimately going to notice or care probably what language it

00:12:04   was written in. They're just going to care if it's shipped and when it's shipped. So

00:12:07   keep that in mind. Other things you have to keep in mind, you probably want to be planning

00:12:12   to be ready around September 1st in terms of for all this kind of things. That's a slightly

00:12:17   conservative estimate probably. I believe last year, iOS 7 submissions were started

00:12:23   to be accepted, I think it was September 10th. So if you were ready on September 1th, you

00:12:27   would have had an extra week to play with. But you have to keep in mind that even, you

00:12:31   know, if you're like the new iPhone or things tends to launch late September, you obviously

00:12:37   are going to have to have submitted earlier than that so you can go through app review

00:12:40   and all those types of things. And ideally be ready so that you can submit it, have it

00:12:44   potentially be rejected and resubmitted and so on. So I tend to plan as though September

00:12:49   1st is my deadline that I'm working towards. And that's not a lot of time. I think that's

00:12:54   probably something like 11 weeks, something like that from now. I have to do the actual

00:13:00   math, but it's about 11. It's not a lot of time between now and the beginning of September.

00:13:06   So be careful about how much you take on. You know, you want to finish something ideally

00:13:10   because having something that's half finished by then is only sort of productive.

00:13:14   And lastly, I would caution you, and this is something that I've run into myself so

00:13:19   many times, focus on what is going to be cool and interesting in iOS 8, mostly.

00:13:25   Tackling a problem that you could have been solving in iOS 7 and that just has this small

00:13:29   part of it that is cooler in iOS 8 is probably not particularly productive insofar as tackling

00:13:35   a problem that you couldn't have solved before at all, and now you can, that's probably a

00:13:41   much more interesting place to start. To be thinking about it in those terms, like writing

00:13:44   another to-do list app, right, over the summer, and taking advantage of CloudKit, like, hmm,

00:13:51   that's tricky, right? You're going to, the cool, cool interesting part is actually a

00:13:54   very small part of that whole application. The hard, like, big, chunky part is all of

00:14:00   the actual interaction and all the other stuff. The fact that you're storing it into CloudKit,

00:14:03   while cool, maybe isn't actually the core experience.

00:14:06   So you want to be focusing on things

00:14:08   where 80% of your application is the new hotness, not just

00:14:12   this little cream on top that now you can do.

00:14:16   So you just want to be careful about that,

00:14:18   because otherwise you might end up building something

00:14:21   that you could have built anyway,

00:14:22   and you're not really taking advantage of the timing.

00:14:24   You might as well wait until the fall,

00:14:26   and when everything's stabilized and happy,

00:14:28   and not deal with buggy betas and all this kind of stuff

00:14:31   that you're going to need to run into over the summer.

00:14:34   But otherwise, that's how I approach this.

00:14:36   And I think there's a lot of interesting opportunities

00:14:38   this year.

00:14:38   I think I'm the most excited as I

00:14:40   have been in a while about what the summer will look like.

00:14:43   So I wish you all the best with your lists.

00:14:46   I'm going to finish up mine, and then we're

00:14:48   going to get coding.

00:14:50   All right, that's it for today's week of the show.

00:14:52   As always, if you have questions, comments, concerns,

00:14:54   complaints, I'm @DavidSmith on Twitter,

00:14:56   developmentperspective.com.

00:14:58   Thanks.