0:00:00Hello and welcome to Developing Perspective.
0:00:03Developing Perspective is a podcast discussing iOS development, Apple, and the like.
0:00:07I'm your host, David Smith. I'm an independent iOS developer based in Herndon, Virginia.
0:00:11Developing Perspective is never longer than 15 minutes and is recorded about three or four times a week.
0:00:15This is Show #49. Let's get started.
0:00:18All right. I have a couple of small topics to start off today's show with, and then I'll move into the main topic.
0:00:23To start with, I was just talking about--I wanted to talk about one of the great features
0:00:27and additions to the iOS developer experience that was added in iCloud.
0:00:33And it's something that you may not actually have been aware of,
0:00:35and so I just wanted to point it out.
0:00:37For a long time now, iTunes Connect, which is where you do all of your app management,
0:00:41is a portal where you can download crash logs.
0:00:44And back in the old days, these were uploaded via iTunes
0:00:49when someone synced their device and then hit a button that said,
0:00:53said, yes, go ahead and send diagnostic and stability
0:00:57reports or something like that.
0:01:00And in general, in my experience back in the day,
0:01:02that almost never happened.
0:01:04Every now and then, you'd get a report in there,
0:01:06but you could have millions of downloads and have 10 reports.
0:01:10And it just wasn't especially helpful.
0:01:13But one of the new things that's kind of fun in iCloud--
0:01:17and this was added in iOS 5--
0:01:19is that now, when the user is setting up their iCloud
0:01:22account, one of the little check boxes they push is, you know, "send Apple diagnostic
0:01:27information," I think it is. And I think by default it's enabled. And that, if they check
0:01:33that, then as best I can understand, crash reports are then sent automatically over the
0:01:38air when your app crashes to iTunes Connect. And as a result, I found the crash report
0:01:45in iTunes Connect to be so much more valuable. So I definitely recommend if you're, you know,
0:01:51sort of getting ready to do an update, looking for some bugs,
0:01:53looking for some things that may make your app better,
0:01:56that's definitely a place to go.
0:01:57And basically, you just go into iTunes Connect.
0:01:59You click on the application.
0:02:00You click on a particular version,
0:02:03because it's been done by version.
0:02:04And then over in the top right corner, it says Crash Reports.
0:02:07And you just kind of browse there.
0:02:08And you can download them.
0:02:10And just always, another note is to make sure
0:02:13that you always keep the desim file whenever you do a build,
0:02:16especially one that you're going to submit to the App Store.
0:02:19This is a little debugging symbols file.
0:02:21If you just do build in archive, it'll
0:02:23be sort of stored automatically.
0:02:24But make sure that you keep that somewhere safe,
0:02:27because you can't symbolicate your crash reports,
0:02:31and they'll be kind of meaningless otherwise
0:02:34if you don't have that decent file.
0:02:35So just make sure you keep it.
0:02:37And then basically, you can just download them,
0:02:39and you go into Xcode, and you can
0:02:40look through all the crashes.
0:02:42It'll just give you stack traces of where the problems are.
0:02:45Evaluating stack traces is a bit of a black art.
0:02:48sometimes it feels like, because you're--
0:02:51maybe 50% of the time, it's straightforward.
0:02:53You look at it, it's a stack trace.
0:02:55It tracks back to a line in your code
0:02:57where you're doing something silly.
0:02:58You're putting a nil object into an array.
0:03:00You're doing something that's just clearly not going to work.
0:03:04And you see, you can go through and you fix those.
0:03:06And then you'll end up with the next case.
0:03:09And these are the crashes that you look at,
0:03:11and you're like, that's got nothing to do with my code.
0:03:15You look through the stack trace, and it's all in UIKit.
0:03:18It's all in Foundation.
0:03:19And so then you're kind of like, huh,
0:03:22is this a bug in the framework?
0:03:24Or is this something that I'm causing the framework
0:03:27to have a problem?
0:03:29And more often than not, it's the latter.
0:03:31I very rarely found actual crashes in the OS.
0:03:34I'm sure they exist, but nine times out of 10 or 99 times
0:03:38out of 100, if you see a crash like that,
0:03:41you're doing something sort of wrong with the frameworks.
0:03:46And it's likely documented that what you're doing isn't going to work.
0:03:51An example of this is, say, where you don't
0:03:53set the delegate of something to nil when your object is deallocated.
0:03:58Simple example.
0:03:59Something like that, where the crash will actually potentially
0:04:02happen in their object when they start trying
0:04:04to access something in your delegate.
0:04:06But you didn't tell them otherwise.
0:04:09So that's just something I wanted to--
0:04:11I ran into it yesterday when I was doing a big update, kind of my bug fix
0:04:14update for audio books.
0:04:16And I noticed that--
0:04:17I was like, oh, you know, I've got these vague crash reports
0:04:20from users, and every now and then they'll send in a crash
0:04:23report.
0:04:23But I was like, oh, I wonder if iTunes Connect's gotten any
0:04:25better, and it definitely has.
0:04:27So definitely check that out when you're doing your next
0:04:29update, and you may be able to catch and crush a few bugs.
0:04:33All right, second thing, and it's kind of vaguely related,
0:04:36is a trick that I recently started doing to kind of get a
0:04:40sense of how many users are using your application, or
0:04:45have your application installed on their phone, if you have an app like
0:04:49some of mine that have been around for quite a while,
0:04:52it's sometimes a little weird and intimidating to think like, "Well, how many of these
0:04:56people are actually using it?" If you say
0:04:58you had a million people who download your app,
0:05:01is that a million, you know,
0:05:04is 999,000 of them still using it, or a thousand of them still using it?
0:05:09And it's kind of helpful to judge
0:05:11how much time you want to invest in the app, how much time you want to
0:05:14sort of put forth, just kind of good for curiosity. And this is actually one of those few things
0:05:19where the Android market actually does a really good job of this because they track this for
0:05:23you and they'll tell you the number of active installs and things like that.
0:05:27But a good proxy that I recently started using to judge roughly how many people have your
0:05:32app installed is if you go into your iTunes Connect sales reports, you get sales, you
0:05:39get in-app purchases, you get free downloads, and then you get updates. For a long time
0:05:44I thought updates was just kind of useless.
0:05:46You know, Apple's just throwing this number at you that seems kind of arbitrary.
0:05:49It's the number of people who installed an update for the application the day before.
0:05:53And I was like, "What am I going to do with that?"
0:05:56Now what I kind of view that as is I take, when I submit an update,
0:06:00I take a look at say roughly say a week's window of updates after I do,
0:06:04you know, after my point release is approved.
0:06:08I look at that and I say, "Huh.
0:06:10what amount, what proportion of my users updated.
0:06:16And that's probably a reasonable proxy for how many users still have your app installed
0:06:20on the phone.
0:06:21It doesn't mean that they're actually using it, they could just be hitting update all,
0:06:24but it's probably a reasonable proxy for that's how many people have it on their device.
0:06:29So I just kind of wanted to throw that out there.
0:06:31I think it's kind of an interesting statistic.
0:06:32All right, and so now I'm going to move into kind of the main topic for today's show, which
0:06:37is specifically about pricing.
0:06:39And this is motivated by just a refrain I've heard quite a few times recently.
0:06:44A lot of it's by sort of older, old is probably the wrong word, but people who've been making
0:06:51software before the App Store, people who used to make their living selling software
0:06:55directly or those types of situations who complain about pricing in the App Store.
0:07:03And it's one of these funny things that I kind of, you know, it's just a topic that's
0:07:08been talked about a lot and I don't want to belabor it too much, but I have kind of an
0:07:12interesting perspective that I hopefully, well I hope it's interesting, is a lot of
0:07:16people I think sort of confuse two uses in the English language of the word "value."
0:07:23Saying, "Oh man, it's the race to the bottom, devalues my software."
0:07:28And it's one of those awkward things where, just kind of like with "free" in the English
0:07:32language, there's "free" as in "beer" and "free" as in "liberty."
0:07:36the same word has two very different meanings. And you can take value as sort of the intrinsic
0:07:42value, the worth, the excellence, all those other kind of attributes of it that kind of
0:07:49make it awesome. And on the flip side, value is also like a business term that's a measure
0:07:55of sort of revenue, of income, of money, of what the sale price for something is, if you
0:08:02were to look at it as the value of a house.
0:08:06And I think often those two terms get conflated in a way
0:08:10that's not productive, that a lot of people say, well, if I
0:08:13make the price of my app low, I will devalue it.
0:08:19Now what they're really saying is by lowering the price, they
0:08:22may lower a potential customer's perception of the
0:08:27quality of their software.
0:08:29So that's a fair statement, and that may be true.
0:08:32That's certainly another interesting part of it.
0:08:34But I think often what they say, when they say that, what they mean
0:08:38is, if I lower my price, I will make it seem cheap, and I won't make money.
0:08:45And it's a funny thing.
0:08:46You can look at it a couple of different ways.
0:08:48You could say, well, I want to make as much money as I can,
0:08:53which is a perfectly reasonable, good capitalistic approach
0:08:56to selling software.
0:08:58And if that's the case, it seems like really at the App Store
0:09:02right now, especially on the iOS side, the best way to do
0:09:05that is with a relatively low price, potentially even free,
0:09:08and supplementing that with in-app purchase.
0:09:11It allows you to address quite well the demand curve for your
0:09:15application.
0:09:16There are some people for whom the value or the price at
0:09:20which they are willing to pay for your app is either zero or
0:09:23close to zero.
0:09:24And then you have this whole curve of people who, with
0:09:26increasing amounts of a desire to part with their money.
0:09:31And you can address that all within that purchase.
0:09:33So there are some people who are going to have paid you $100,
0:09:35or $20, or $30.
0:09:37And then you have some people who
0:09:38are going to have paid you nothing
0:09:40and just looked at a few ads.
0:09:41By addressing that whole curve, you just-- it's like calculus.
0:09:45You've maximized the value or the revenue
0:09:49that you've received.
0:09:51And so in many ways, that's the way forward.
0:09:55But often you kind of have this... the flip side of that is people will say,
0:09:58"Well, I don't want...
0:10:00I want my software to cost ten dollars. I want my software to cost five dollars.
0:10:03I want to be, you know,
0:10:06viewed as a premium brand in the App Store."
0:10:09And, you know, it's
0:10:11certainly a worthwhile thing, you know, to say that about yourself,
0:10:16or to say that about kind of what kind of an app
0:10:19or brand you'd like to be.
0:10:21But I think... and that's great,
0:10:23but I think I always get a little frustrated when the flip side of that is
0:10:26I'm having difficulty making money
0:10:28as a premium brand.
0:10:30You know, no one really care, like no one would care if Tiffany's
0:10:34announced one day that their sales are flat, people just aren't buying
0:10:37overpriced diamonds.
0:10:39It's like, okay, well apparently people don't think that
0:10:42you're as premium as you used to be or, you know, those kinds of things. Like, complaining
0:10:46about that doesn't make sense.
0:10:47If you can charge a high price and make a high revenue, fantastic. Enjoy that, that is
0:10:51awesome.
0:10:52live in the dream, high five.
0:10:56But the reality is if you're in the app store to make a living, if you're in the app store to make money,
0:11:00your goal is more likely to be, you know, how can you derive the
0:11:05most revenue from the
0:11:06work that you do?
0:11:08And that's not to get to a point, you know, there's sort of the dark side of that, of kind of
0:11:11getting into scamming and
0:11:14kind of fleecing users, which I would certainly advise against,
0:11:18but you know there's ways to
0:11:20view pricing as a tool to extract that value
0:11:24and in a way that just is basic microeconomics
0:11:28makes good sense.
0:11:30That's kind of
0:11:31the way I approach it. I view pricing as a tool that I have
0:11:35to allow me to make money.
0:11:37You know, I don't really associate too much intrinsic value
0:11:42in the price. That, oh, well,
0:11:45all my apps are 99 cents and that makes me a cheap app developer
0:11:49or whatever. I mean, I have a couple of apps that are more expensive than that.
0:11:52But in general,
0:11:53you know, I just feel I'm trying to price something where I think I will make the most
0:11:56money.
0:11:57And the actual cost of that
0:12:00is really only important to the customer.
0:12:02And that's, you know, that's fair enough. If some customers think that
0:12:05my app is worth more than great, if some of them think it's less than, you know,
0:12:10great, I'm not going to get them.
0:12:11But what I really want to avoid is,
0:12:13you know, not taking advantage of people who
0:12:17could do who could find my app interesting, who could find it useful,
0:12:20but are turned off by a high price.
0:12:22And so,
0:12:23rather than getting, you know, a dollar from them, I'm getting zero from them.
0:12:27On the flip side,
0:12:29you want to make sure that if there are people who are willing, who'd be really interested
0:12:31and engaged and want to give you lots of money, that you're addressing them to, and giving them an
0:12:34opportunity
0:12:36to give that back to you. It sounds like kind of a funny thing, but,
0:12:38you know, it's like you really are creating an opportunity for someone to part with their
0:12:42money and to give it to you. And, you know, it's a willful,
0:12:45often happy joyful thing. I have many people who contact me and support
0:12:49and it's like
0:12:50you know I'm glad I was able to support you and keep this going and
0:12:53keep making the app awesome
0:12:55and they're happy to keep... by creating an opportunity for them to
0:12:58give me money
0:12:59they feel good about that
0:13:01you know and so I think that's kind of where I am. I think I tweeted the other day
0:13:05in my recent update to audiobooks it's been kind of striking how important free is in
0:13:09the app portfolio these days
0:13:12uh... were making about in revenue i'm making about twice what up for my free
0:13:16app
0:13:17and from the paid app and do the absolute central identical except one of
0:13:20them shows ads
0:13:21and the other one doesn't
0:13:22and in the paid after you there's no ads in the free up a show i had so i used to
0:13:26do
0:13:27aggregator and all the stuff that mob ads and all the stuff that i'd still add
0:13:31now because
0:13:33the quality about the so much better and
0:13:35it's just so much simpler for and better from a coding perspective
0:13:39but when i found
0:13:41is that's, you know, I think that means that I'm addressing the entire spectrum
0:13:45probably of user.
0:13:46Where I go, there's some people who get the app
0:13:49who give me, you know, pennies from watching ads
0:13:53and then there are people who get the free app, like it, buy all the in-app purchases
0:13:57and, you know, make some money from them directly.
0:14:00There are people who buy the app for ninety-nine cents
0:14:03and
0:14:04who then never see an ad but they've given me their buck
0:14:08and then kind of you know also potentially buy in at purchases and you
0:14:12by addressing that whole spectrum
0:14:14i think i mean it's it's a good wise business move
0:14:17uh... you know kind of as a especially as it you know as a smaller business
0:14:21i can't afford to be leaving money on the table
0:14:24so anyway
0:14:25just some thoughts
0:14:26hopefully that's helpful
0:14:27as always if you have questions comments concerns hit me up on twitter i'm @_davidsmith
0:14:33the twitter feed for this podcast is dev perspective
0:14:36and otherwise, hope you have a good week.
0:14:38Happy coding, and I will talk to you later.
0:14:41Bye.