PodSearch

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.