PodSearch

Developing Perspective

#135: Choices.

 

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

00:00:04 ◼   ► news of note and 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 135.

00:00:12 ◼   ► Today is Friday, July 26th. Developing Perspective is never longer than 15 minutes, so let's

00:00:18 ◼   ► get started.

00:00:19 ◼   ► All right, I think this week is going to be a bit of a grab bag episode, whatever you

00:00:23 ◼   ► want to say, like a series of short topics that I'll just dive right into. The first

00:00:28 ◼   ► First I'm going to talk about briefly is the, I guess the iOS Dev Center down, downtime

00:00:33 ◼   ► outage, whatever you want to call it.

00:00:36 ◼   ► As if, unless you're living under a rock, if you're in this community, you probably

00:00:39 ◼   ► are aware that the iOS developer portal has been down for a little over a week.

00:00:43 ◼   ► I think we're coming about eight days right now.

00:00:46 ◼   ► And it's essentially was taken down as a result or in response to a security breach threat,

00:00:53 ◼   ► whatever you want to call it.

00:00:54 ◼   ► who is a security researcher, apparently logged into the system, stole a bunch of information

00:01:01 ◼   ► essentially and then publicized that and responds, "Apple has taken it all down, is rebuilding,

00:01:07 ◼   ► is working hard, is doing a whole variety of things in theory to make it better."

00:01:11 ◼   ► And that's a bit complicated. It's a bit frustrating as a developer, especially as someone who

00:01:15 ◼   ► makes my living from the developer portal, to have someone sort of, or a research experiment

00:01:20 ◼   ► impact me in such a direct way.

00:01:24 ◼   ► Generally speaking, I don't think--

00:01:26 ◼   ► the impact is one of these things where it's very frustrating,

00:01:29 ◼   ► but it's not necessarily damaging, at least in my case

00:01:33 ◼   ► and for most people I know.

00:01:34 ◼   ► In the sense of I have updates that I can't submit until it

00:01:36 ◼   ► comes back up because I need provisioning

00:01:39 ◼   ► profiles that have expired or those types of things.

00:01:41 ◼   ► And it's kind of annoying to not be

00:01:43 ◼   ► able to access the dev forms.

00:01:44 ◼   ► It's kind of annoying to not be able to access

00:01:46 ◼   ► the pre-release stuff in the dev portal.

00:01:49 ◼   ► But at the end of the day, I'm just hoping that Apple is taking their time, making sure

00:01:55 ◼   ► they do it right the first time, which seems to be their usual way of operating.

00:01:59 ◼   ► And hopefully it will be up soon.

00:02:01 ◼   ► In the meantime, it's definitely kind of one of those funny things that it's sometimes

00:02:04 ◼   ► a little bit nice in some ways to have a situation like this come up where you can, it slows

00:02:10 ◼   ► you down a little bit.

00:02:11 ◼   ► And sometimes that can be a good thing.

00:02:12 ◼   ► And I've definitely been spending some time on kind of maybe some more designing things

00:02:16 ◼   ► on some more secondary things that I may not have had time for,

00:02:21 ◼   ► or that I may not have thought I had time for,

00:02:23 ◼   ► if I had just been full steam ahead like I had been.

00:02:25 ◼   ► So make lemonade from the lemons.

00:02:27 ◼   ► Definitely a bit frustrating.

00:02:28 ◼   ► And hopefully, maybe even by the time many of you

00:02:30 ◼   ► listen to this, it'll be up.

00:02:32 ◼   ► They've published a new status page,

00:02:34 ◼   ► which I'll have a link in the show notes too,

00:02:36 ◼   ► where they talk about-- you can sort of keep-- follow along,

00:02:40 ◼   ► keep track of whenever the various systems are

00:02:43 ◼   ► going to come up.

00:02:43 ◼   ► So hopefully that will be soon.

00:02:46 ◼   ► All right, next, I published a fairly well received article

00:02:51 ◼   ► this week.

00:02:52 ◼   ► I was going to elaborate on it slightly.

00:02:53 ◼   ► It was talking about in-app purchase,

00:02:55 ◼   ► and specifically some of the concerns and challenges

00:02:58 ◼   ► that I think the current in-app purchase system in the App

00:03:01 ◼   ► Store is causing.

00:03:03 ◼   ► And these are the kind of challenges and problems

00:03:05 ◼   ► that aren't things that are going to manifest themselves

00:03:08 ◼   ► in the near term.

00:03:08 ◼   ► These aren't things that I think--

00:03:10 ◼   ► something like one of these Apple

00:03:12 ◼   ► is doomed kind of scenarios.

00:03:14 ◼   ► It's one of these things that I worry about having the slow,

00:03:18 ◼   ► kind of more like a slow rot, rotting effect on the App Store.

00:03:23 ◼   ► And it's the nature of, I think, tremendous amounts of money

00:03:26 ◼   ► now is at stake in the App Store and is

00:03:32 ◼   ► changing hands between customers and developers

00:03:34 ◼   ► through consumable in-app purchase.

00:03:36 ◼   ► And the nature of a way that a lot of these consumable

00:03:39 ◼   ► in-app purchases especially-- I mean, in-app purchase

00:03:42 ◼   ► in general is generating a lot of money.

00:03:44 ◼   ► But the thing that I'm most worried about

00:03:46 ◼   ► is the consumable side of things,

00:03:47 ◼   ► because there's kind of no limit to what a customer can end up

00:03:50 ◼   ► putting into an app, is the intentional and proactive way

00:03:56 ◼   ► that developers are employing those in ways that

00:03:59 ◼   ► are sort of intended to sort of addict,

00:04:03 ◼   ► coerce, whatever you want to say, kind of their customers

00:04:07 ◼   ► into putting more and more money into it.

00:04:09 ◼   ► This is something that has clearly been working,

00:04:11 ◼   ► is something that is effective for the same reasons that casinos are effective. It's for

00:04:17 ◼   ► the same reason that, you know, a lot of things are where if you give somebody a taste of

00:04:22 ◼   ► something, and kind of can manipulate them psychologically into, you know, having loss

00:04:29 ◼   ► aversion to having all kinds of things in different kind of feelings and emotions. In

00:04:34 ◼   ► response to something, they are more willing to give you money than they would just in

00:04:37 ◼   ► a normal, straightforward, you know, business transaction where I create something, I put

00:04:41 ◼   ► put it out there, I give it a price, and you can decide,

00:04:43 ◼   ► is that worth it to me or not?

00:04:44 ◼   ► And there's various virtues on back and forth in that.

00:04:46 ◼   ► And I made a few suggestions in my article,

00:04:48 ◼   ► showing the cumulative total that someone

00:04:50 ◼   ► has spent in an app and being a bit more upfront in the store

00:04:53 ◼   ► about what a typical user would be.

00:04:55 ◼   ► But there's one area in the article

00:04:56 ◼   ► that I intentionally avoided, especially

00:04:58 ◼   ► in the written word.

00:05:00 ◼   ► It's very hard to get across maybe some more squishy

00:05:04 ◼   ► subjects and topics and how more things make you feel.

00:05:08 ◼   ► And I stayed away from what I think

00:05:09 ◼   ► what I refer to in the article as the more moral side of this kind of question about

00:05:13 ◼   ► whether this kind of business model is something that is good for what everyone defined good.

00:05:22 ◼   ► I wanted to elaborate on that slightly here because I think it's a slightly better venue,

00:05:26 ◼   ► trying to explain out loud.

00:05:27 ◼   ► I'll go a little bit abstract, but I think hopefully address where I'm heading.

00:05:33 ◼   ► I think everybody has to decide for themselves what kind of a business they want to be in.

00:05:39 ◼   ► you're going to make your you're making your living, I think, you know, pretty much everybody

00:05:42 ◼   ► who is an independently wealthy, I suppose, has it makes her makes her living somehow, you know,

00:05:47 ◼   ► they're, they're going to do something on a regular basis that is going to generate their

00:05:51 ◼   ► income. And the question is, is sort of what are you going to do? And how proud are you? Are you

00:05:57 ◼   ► going to be at the end of the day of that work that you do? And for me, when I look at that kind

00:06:03 ◼   ► of that model, where you're intentionally trying to manipulate customers into giving you money,

00:06:08 ◼   ► That is the kind of thing that I would avoid at all costs, I think, in terms of that's

00:06:13 ◼   ► not the way that I'd like to make my living.

00:06:16 ◼   ► That's the kind of thing where I would rather be able to make less money but be proud of

00:06:20 ◼   ► the way that I make it than to make more money in a context or in a way that I wasn't proud

00:06:24 ◼   ► of, that I wouldn't be able to talk about in a way that didn't feel slimy, that felt

00:06:30 ◼   ► like I was being honest and upfront and clear with people about exactly what they're doing.

00:06:35 ◼   ► And I make a substantial amount of my income from in-app

00:06:37 ◼   ► purchase.

00:06:38 ◼   ► All my in-app purchases are clear purchases.

00:06:42 ◼   ► You're buying a year subscription

00:06:44 ◼   ► to Feed Wrangler in its syncing service.

00:06:46 ◼   ► You're buying content in my audiobooks app,

00:06:48 ◼   ► or whatever it is.

00:06:49 ◼   ► Or you're eliminating ads, or those types of things.

00:06:52 ◼   ► And I like that kind of a thing.

00:06:54 ◼   ► It's a straightforward process.

00:06:55 ◼   ► What I don't like is this kind of amorphous, intentionally

00:06:59 ◼   ► vague, and intentionally manipulative process

00:07:03 ◼   ► I think you see a lot of apps these days. It just worries me and I hope Apple takes

00:07:07 ◼   ► at least baby steps towards making sure that this doesn't get out of control. Because at

00:07:12 ◼   ► the end of the what I really fear is that at the end of the day, it could damage the

00:07:16 ◼   ► reputation of the store. That if you have a sort of the classic example would be if

00:07:23 ◼   ► during a you have kind of the nightly news expose with you know, like talking, you know,

00:07:29 ◼   ► newsman's going and talking to the family, you know, where the son or the father, the

00:07:33 ◼   ► mother, daughter, whoever it is, you know, has, you know, lost all their money on buying

00:07:38 ◼   ► Smurf berries or something like that. And it can, you could have those kind of scenarios

00:07:43 ◼   ► where someone gets too, gets too addicted to something and ends up putting too much

00:07:48 ◼   ► of their money in there, then it would be wise and can have very negative effects. And

00:07:51 ◼   ► certainly they have a personal responsibility for making those choices. And in that way,

00:07:58 ◼   ► It's not entirely on the developer.

00:08:00 ◼   ► Those individuals still have a responsibility

00:08:02 ◼   ► to make good choices for themselves.

00:08:04 ◼   ► But I think it's up to Apple to be careful about making sure

00:08:06 ◼   ► they're protecting the store, protecting its reputation,

00:08:09 ◼   ► and trying to avoid those situations where customers

00:08:11 ◼   ► can make choices that they're going to regret later.

00:08:15 ◼   ► All right.

00:08:16 ◼   ► The next thing I was going to talk about

00:08:17 ◼   ► is learning from past lessons.

00:08:19 ◼   ► And this is something that I've been running into a lot recently

00:08:22 ◼   ► and I just wanted to touch on it briefly.

00:08:25 ◼   ► One of the things that I've noticed,

00:08:26 ◼   ► having been a developer now for a long time,

00:08:29 ◼   ► or almost as long as you could be doing for iOS stuff,

00:08:32 ◼   ► is so much of what I think being able to be fast,

00:08:35 ◼   ► being able to be effective, and to be able to be productive,

00:08:39 ◼   ► comes from being able to learn from mistakes you've

00:08:45 ◼   ► made in the past, from problems you've solved.

00:08:47 ◼   ► Because I find what happens most often

00:08:49 ◼   ► is that whenever I'm building a new app,

00:08:52 ◼   ► or I'm building something totally from scratch,

00:08:54 ◼   ► there's some amount of it that's new,

00:08:56 ◼   ► And there's some benefit that's old.

00:08:58 ◼   ► And by old, I mean these are problems

00:08:59 ◼   ► that I've solved before.

00:09:01 ◼   ► These are things that I have learned a best practice for,

00:09:04 ◼   ► that I've done, I've solved once, twice, three times

00:09:08 ◼   ► from the past.

00:09:09 ◼   ► And being able to access those in a constructive way

00:09:14 ◼   ► really can accelerate your development cycle

00:09:16 ◼   ► and your development process.

00:09:18 ◼   ► And so for example, what I think is very important

00:09:21 ◼   ► is for you to be able to organize those in a way

00:09:23 ◼   ► that you can access.

00:09:24 ◼   ► either if you're good at remembering it, then great.

00:09:27 ◼   ► For me, I tend to have a fairly good memory on this.

00:09:29 ◼   ► And so I'm very able to be like, I

00:09:31 ◼   ► think I've solved this before.

00:09:32 ◼   ► I think that was in this project.

00:09:33 ◼   ► Let me go find that project.

00:09:34 ◼   ► Let me go find that code.

00:09:35 ◼   ► Look at it.

00:09:36 ◼   ► Remember what I did, and then do it again.

00:09:38 ◼   ► And the second time you do it, it

00:09:39 ◼   ► will be much quicker, typically.

00:09:41 ◼   ► If that's not you, then trying to organize that

00:09:43 ◼   ► in however way it makes sense topically, keeping notes,

00:09:46 ◼   ► trying to make sure that you can reuse past lessons that you've

00:09:49 ◼   ► had.

00:09:50 ◼   ► Because I think so much of development,

00:09:52 ◼   ► especially in situations like right now,

00:09:54 ◼   ► where we're working with new betas, where we're solving kind of-- there will be bugs

00:09:57 ◼   ► that you'll run into that are totally new because either it's an unproven API, it's

00:10:01 ◼   ► a new API, or those types of things. You want to make sure that you're being able to focus

00:10:05 ◼   ► on those types of problems, the ones that are much more intractable and not things that

00:10:08 ◼   ► you've already solved before. And I find, especially to another degree, you can take

00:10:13 ◼   ► this to make it a bit more formal, is the more that you can sort of make libraries out

00:10:17 ◼   ► of your code that are even just internal things. Not even-- I'm not someone who tends to open

00:10:21 ◼   ► source a lot of my stuff because it creates a lot of cognitive load, I think, for publishing

00:10:25 ◼   ► an open source project that I just really don't have the time and energy to support.

00:10:28 ◼   ► But I try and kind of librotize my code internally so that I have these things that I can pull

00:10:34 ◼   ► into all of my different projects that help me sort of rapidly accelerate.

00:10:38 ◼   ► And really, my goal in this, and this is sort of like the take-home that I wanted to press

00:10:42 ◼   ► on, is you want to eliminate as much as possible the boilerplate code that a project will almost

00:10:47 ◼   ► or certainly have, that you can focus on the important stuff.

00:10:50 ◼   ► So this is taking your library and your database,

00:10:53 ◼   ► some of your graphics stuff, your UI kit management stuff,

00:10:56 ◼   ► and turning it into something that you can reuse over and over

00:10:59 ◼   ► again so that you have all these new custom subclasses,

00:11:01 ◼   ► or whatever it is that you can just use and really speed

00:11:05 ◼   ► your development along.

00:11:07 ◼   ► All right.

00:11:07 ◼   ► The next one is I'm going to talk a little bit

00:11:09 ◼   ► about one of the challenges I've been having recently

00:11:12 ◼   ► that I think is worth just voicing.

00:11:14 ◼   ► And I've voiced it, I think, a few times before.

00:11:16 ◼   ► but it's the nature of tenacity and staying at something.

00:11:20 ◼   ► And even in the face of things being really difficult,

00:11:22 ◼   ► like sometimes actually today and today especially,

00:11:25 ◼   ► I've been, it's sometimes it's very hard

00:11:28 ◼   ► to really get into a problem and start working on it.

00:11:30 ◼   ► You kind of start picking at the edges,

00:11:32 ◼   ► you start doing all the easy stuff,

00:11:33 ◼   ► you kind of avoid all the tricky problems.

00:11:35 ◼   ► I mean, you kind of get stuck.

00:11:39 ◼   ► And it's one of these things that you kind of wish

00:11:41 ◼   ► that there was some magic wand that you could wave.

00:11:43 ◼   ► And sometimes there's little tricks,

00:11:45 ◼   ► I think I've had an episode where I talked about that where there's kind of like, sometimes

00:11:48 ◼   ► some people have different tricks, like you can put on a certain kind of music or drink

00:11:51 ◼   ► a certain kind of drink, and kind of get into a certain mindset to try and sort of jumpstart

00:11:55 ◼   ► it.

00:11:56 ◼   ► But the reality is, you just need to understand that we all have off days.

00:12:00 ◼   ► And what I often find the best thing to do is sometimes I'll use my tricks, sometimes

00:12:04 ◼   ► I'll try other things.

00:12:05 ◼   ► And sometimes you just have to say, you know what, it's not working today.

00:12:08 ◼   ► And I need to take a break.

00:12:09 ◼   ► And I need to come back and I need to work on it.

00:12:12 ◼   ► Take a nap, go for a walk, whatever it is, and understand that that happens to everybody.

00:12:17 ◼   ► I've never met a single developer who doesn't have those days.

00:12:20 ◼   ► And at the time and the moment, and maybe that's you today or tomorrow, you have these

00:12:24 ◼   ► days where you just can't get into the zone.

00:12:26 ◼   ► You can't work.

00:12:27 ◼   ► You can't focus.

00:12:28 ◼   ► Just sort of rather than going crazy about it, just focus on what you can do.

00:12:32 ◼   ► Make those changes.

00:12:34 ◼   ► Make those improvements and then hope for the best.

00:12:36 ◼   ► So it's a little bit hand-wavy, but it was just something that I always liked to voice

00:12:40 ◼   ► whenever I have struggles and challenges on the show. Because I hear from a lot of people

00:12:45 ◼   ► that it's encouraging to hear that other people have those same challenges. And then lastly,

00:12:51 ◼   ► I just wanted to mention that the Singleton Symposium registration is going to be coming

00:12:58 ◼   ► soon for some definition of soon. The Singleton Symposium is a conference in Montreal every

00:13:04 ◼   ► fall. I was able to go last year. And I would definitely encourage people who, the kind

00:13:10 ◼   ► who listen to the show, I think you'd really enjoy Singleton.

00:13:12 ◼   ► It's one of the best conferences I've ever been to,

00:13:14 ◼   ► both in terms of the way that it's run,

00:13:16 ◼   ► the kind of speakers it has, and honestly, in a lot of ways,

00:13:20 ◼   ► just the kind of people who are there.

00:13:22 ◼   ► It's very typically pretty hard to get tickets.

00:13:24 ◼   ► It's a very small conference intentionally.

00:13:26 ◼   ► It's I think only maybe 100, 150 people.

00:13:30 ◼   ► And as a result, it's because whenever

00:13:32 ◼   ► you make something like that, hard to get tickets to.

00:13:34 ◼   ► In a way that's even-- you can imagine

00:13:36 ◼   ► something like WWDC was hard to get tickets to.

00:13:38 ◼   ► Singleton's very hard to get tickets to.

00:13:41 ◼   ► It means the kind of people that are going to be there are probably one of three things.

00:13:44 ◼   ► They're either exceptionally lucky, they're just exceptional people in general, or they're

00:13:49 ◼   ► exceptionally devoted to getting a ticket.

00:13:51 ◼   ► And if they're either of those three people, if they're amazing, amazingly lucky, or amazingly

00:13:56 ◼   ► fanatical about it, they're probably people you want to spend a weekend with in Montreal

00:14:00 ◼   ► and Canada, talking about your craft and encouraging you for heading into the fall.

00:14:06 ◼   ► I'll have a link in the show notes to this, or just go to Singleton.com.

00:14:11 ◼   ► That's with a C, or with a C with a curly thing, whatever you call that.

00:14:15 ◼   ► And you sign up, you put your email address in, you'll get an invitation, and you may

00:14:20 ◼   ► or may not get a ticket.

00:14:21 ◼   ► It's a bit complicated, but something that I just really would encourage a lot of you

00:14:26 ◼   ► to think about going to.

00:14:27 ◼   ► It's a really good conference that I've enjoyed in the past.

00:14:29 ◼   ► I'm not really connected with it or affiliated with it in any way, but it's just something

00:14:32 ◼   ► that I really enjoy.

00:14:33 ◼   ► So if you are looking for something to do this fall to kind of improve your craft and

00:14:37 ◼   ► get motivated, Singleton last year was that for me.

00:14:40 ◼   ► All right, that's it for today's show.

00:14:42 ◼   ► As always, if you have questions, comments, concerns, complaints, I'm on Twitter @_DavidSmith,

00:14:45 ◼   ► David@DevelopingPerspective.com if you have email questions.

00:14:48 ◼   ► And otherwise, we have a great weekend.

00:14:50 ◼   ► Happy coding, and I'll talk to you soon.