Under the Radar

50: Checking the Weather for the Last Time


00:00:00   Welcome to Under the Radar, a show about independent iOS app development.

00:00:04   I'm Marco Arment.

00:00:05   And I'm David Smith. Under the Radar is never longer than 30 minutes, so let's get started.

00:00:10   So this week, I had a sad thing happen to me that I wanted to unpack on the show.

00:00:16   So I had to retire one of my apps.

00:00:19   And one of the apps that, obviously I have a lot of apps, and I've quietly retired many of them in the past.

00:00:25   The ones that never had any downloads, the ones that just didn't work out, and you kind of just remove them from the store, and that's that.

00:00:32   But I had one of them, I had to remove an app from the store that wasn't one of those apps, that had some success.

00:00:38   That was something that I was proud of, being out there.

00:00:41   I think this is actually the first app of yours that I've ever both heard of and downloaded that you're also now killing.

00:00:47   There you go. It all comes full circle.

00:00:50   And the app is called Check the Weather, and it is a weather app that at the time I launched it, and I know exactly when I launched it,

00:00:58   because it was four years ago as of last Monday.

00:01:03   And I publicly announced its end of life last Monday for that reason, when I was planning this and scheduling it out,

00:01:09   and I looked at the schedule and I was like, "Wait, I think I launched it somewhere in the middle of October."

00:01:14   And it turned out it was exactly four years ago.

00:01:18   So the app had a four-year life.

00:01:21   And it's just a weather app.

00:01:23   It's a strange thing in some ways to try and describe what it is or what it does, what made it special.

00:01:28   Because a weather app is like, they're all strange in the sense that they all have the same basic data,

00:01:34   and then the differences between all the apps are just questions of style, of nuance.

00:01:41   But Check the Weather always has kind of a special place for me,

00:01:45   because it was the first app that I ever felt that I kind of did it right.

00:01:50   I started from the beginning and said, "You know what?

00:01:54   What happens if I take a run at a very well-established category, doing everything right?"

00:02:00   So having a proper actual marketing plan, that was an actual thing that I did,

00:02:04   rather than just kind of throwing it over the wall or sending some blind emails.

00:02:09   And it was localized from day one.

00:02:12   It had great voiceover support. It had all the things that in my mind were always the things that you had to do

00:02:19   to launch an app that was, you know, if you're going to do it right, if you're going to give it an honest chance.

00:02:24   And, Inc., if you're curious, if you're a listener to this show, but you weren't a listener to the podcast I used to do

00:02:29   called Developing Perspectives, I'll have links in the show notes, too.

00:02:32   I did a whole series of episodes on Developing Perspective,

00:02:37   which rather than being 30 minutes long is only 15 minutes long.

00:02:40   So even though this is a lot of episodes, it wouldn't take that long to catch up.

00:02:43   Where I actually walked through in real time as I was building back in 2012,

00:02:49   I walked through the process of what went into this.

00:02:52   But anyway, the long and the short of it is I had this app, I launched it, it did great.

00:02:57   It had a very big, spiky launch. I think it peaked at number three overall in the App Store,

00:03:03   which at the time for me was just mind-bending.

00:03:06   I actually have very warm and specific memories of that day when it launched,

00:03:10   just celebrating having my wife, I found someone to watch the kids and came into the office

00:03:16   with, I think it might have been Chinese for dinner and a bottle of champagne,

00:03:21   and we actually celebrated.

00:03:23   So it all kind of worked, and it kind of all worked out.

00:03:26   But that was four years ago. That was a long time ago in App Store terms.

00:03:31   And so this week I announced that it will no longer be supported,

00:03:36   and for something like a weather app, that means I'm turning off the API at the back end.

00:03:42   And that's kind of a sad thing, but it was kind of inevitable.

00:03:47   Because the tricky thing with an app like Check the Weather is that, at least the way that I launched it,

00:03:52   is at the time we didn't really have a lot of the subscription-y options we have now.

00:03:56   And so I was really more sort of like free or paid were my options four years ago.

00:04:00   I could have sort of done subscriptions with some kind of, you buy an in-app purchase,

00:04:04   and then you buy another one, and then you buy another one.

00:04:06   But there certainly wouldn't have been able to be auto-renewing.

00:04:09   So I made it a paid app, and I put that out.

00:04:14   So I had a whole lot of people who gave me money four years ago.

00:04:17   I think about a third of the users bought it the first day.

00:04:21   It had a nice big spiky launch.

00:04:24   But most of them, they've never subsequently given me any revenue.

00:04:28   And ongoing costs are really rough, especially when they aren't just two or three Linode boxes.

00:04:37   Things like weather data, and even fonts, actually.

00:04:40   I had some custom fonts in this application that had annual subscriptions that I have to pay.

00:04:46   That's the worst. I have to tell you one thing.

00:04:48   I mean, server costs, you kind of can't get around that.

00:04:52   But as somebody who has licensed a lot of fonts for apps over the years,

00:04:56   anything you can do to avoid ongoing, recurring costs in your app, you should do that.

00:05:02   And if you have a fancy font, try to get one that you can license for a flat fee.

00:05:07   Especially these days, you can often get decent fonts for either free or for maybe a few hundred dollars.

00:05:14   Up front, flat, forever. And if you can do that, that's great.

00:05:18   Sure. Because any of these things, it was always a strange thing because it forced me to,

00:05:23   every year, I had to sit down and decide, do I still want to pay for this font?

00:05:28   Because at this point, the app had kind of, I followed the usual trajectory.

00:05:31   It had that big spike at the beginning, and then it all kind of fell to almost nothing.

00:05:35   And it became kind of like a charity project because I still use the app.

00:05:40   I mean, through this week, I was still using the app.

00:05:43   But at some point, I had to decide.

00:05:45   Every year, when I get my email from the font foundry and says,

00:05:48   "Hey, would like to charge you another three or four hundred dollars,"

00:05:52   it's like, "Great."

00:05:54   And every month when I get my bills from the radar provider and the weather data provider,

00:05:59   it's like, "Hmm, you know, this is fine."

00:06:02   I mean, the costs involved weren't killer, at least up until recently,

00:06:06   and that's part of why I have to shut it down now

00:06:09   because there's a pricing change with my radar provider that meant that it would just have gone from,

00:06:14   "Oh, it's kind of fun. It's a little charity project,"

00:06:16   to something that would have just been kind of absurd to keep going.

00:06:21   Well, I think ultimately you need to think about what--

00:06:25   and I think we'll get to this later--

00:06:27   what do you owe your users?

00:06:29   Because in my opinion, the second you are losing money,

00:06:32   there is no acceptable amount of money to be losing on an ongoing basis for an app.

00:06:37   To me, once you're losing money, that's it. It's gone.

00:06:41   Sure, and I definitely can see where you're coming from.

00:06:44   It is such a hard thing, though, from the emotional perspective,

00:06:48   but what you're saying makes total sense that if I'm running a business

00:06:51   and I have a division of my business that is making a loss

00:06:57   with no prospect of turning that around,

00:06:59   the logical good business move is to just shut it down and move on.

00:07:06   But it's hard when you kind of have something that you feel more emotionally invested in

00:07:10   where it feels like, "Oh, no, this app was my first big break.

00:07:15   I feel sad for it to go."

00:07:19   And so I think I definitely, in this case, I probably did let it go longer than in retrospect I should have,

00:07:25   and not necessarily even just for the money reasons, because I think what you're saying makes sense.

00:07:28   But even just in retrospect, as I think of the burden it places on you cognitively

00:07:35   when you have something that you have this affinity for and you're kind of proud of,

00:07:41   but it isn't really going well.

00:07:43   And every time an iOS update comes out, it's like, "Hmm, should I do this to check the weather?"

00:07:48   Like the Apple Watch came out, and I was like, "Oh, there's some really cool things you could do

00:07:51   for a weather app on the Apple Watch."

00:07:54   I was like, "Oh, man, the app just doesn't make money.

00:07:56   It just really isn't getting traction, and I don't know if just putting more effort into it

00:08:01   is really going to get the outcome."

00:08:03   But every time there's a big thing, I'd have that sense of doubt,

00:08:07   and I feel like that's the kind of thing that, honestly, more than the money,

00:08:10   is a bit better incentive to make sure that when something is clearly not going anywhere,

00:08:15   that you just kind of say, "Yep, it's done," and move on.

00:08:19   Anyway, so that is why I have gotten to the point that I had to pull "Check the weather" from the store.

00:08:24   And it's probably worth mentioning a little bit about kind of what that process looks like mechanically

00:08:32   before we get into some of the kind of the implications and things that come out of that.

00:08:36   So when you decide that you want to pull an app from the App Store, it's surprisingly easy to do.

00:08:42   You just go into iTunes Connect, you click on the app.

00:08:45   I think it's Availability and Pricing is the area in the App Store that you can go into,

00:08:49   or in iTunes Connect that you go to, and say, "You know, it says you removed from sale."

00:08:53   You used to have to go in there and specifically select every country that you didn't want it in

00:08:58   until you had selected them all.

00:09:01   Now you can just push a button, I think, that says "Remove from sale."

00:09:05   And that worked pretty well. It was gone from the App Store.

00:09:08   And then you have the more interesting question, perhaps, of how you communicate to your users.

00:09:14   So most of the people who download your app don't know who you are, they don't follow you on Twitter,

00:09:19   they don't read your blog.

00:09:22   And I kind of struggle with this in this case.

00:09:24   I've certainly done the "I have a blog post mentioned on Twitter" to kind of put it out as best I could.

00:09:30   For most of your users, either you would need to do an app update and just mention this in the release notes,

00:09:37   that the app is going away, or you would probably need to have some mechanism built into the application

00:09:44   to reach out to them, some kind of messaging scheme.

00:09:48   At this point, the app has so few users that I didn't decide that something like that was worth doing,

00:09:53   of building a special build of the app and putting it out there that popped up a window that said,

00:09:57   "Hey, your data is going to go away."

00:10:00   That's something that you would have to do for a variety of reasons.

00:10:05   There are a variety of reasons that you would have to turn something off.

00:10:08   And in this case, it's turning it off because the usership has fallen off dramatically.

00:10:12   But I certainly have friends who ended having to end a product in some ways because it was too successful,

00:10:20   that it had gotten ahead of itself in terms of usership, but didn't have a revenue model to back it up.

00:10:25   At a certain point, they're just like, "Well, I just have to turn it off because the money is just running away from me."

00:10:30   So in that case, you'd probably have to build something into the app to turn it off.

00:10:35   And then you need some kind of mechanism to actually physically turn it off.

00:10:39   In this case, because I'm not hosting much myself, there's not like I have servers and infrastructure that I have to physically unwind.

00:10:47   I mostly am just stopping paying for things, and then the ultimate providers will turn it off.

00:10:52   But it is definitely something that I would say that I never really thought of.

00:10:57   It's easy to not think about when you're making something, but what would I actually do if I needed to turn this off?

00:11:04   At some point, if some of my other projects that have web services that I run were to go away,

00:11:10   it's kind of a tricky question to be like, "Well, what do I do with the data, for example?

00:11:14   How do I safely and securely turn everything off?"

00:11:18   It's the kind of thing where it can so easily get away from you when you're developing.

00:11:22   You can just add things and be like, "Oh, this will be fine. This will be fine."

00:11:24   Or just not even think about all the different services you're starting up.

00:11:27   API memberships, you're starting up with different providers and everything.

00:11:30   It can get away from you pretty fast.

00:11:32   Oh, sure. I mean, it's probably also worth saying that a lot of these same considerations come into play if you ever transfer an app.

00:11:37   Oh, yeah.

00:11:38   So if you ever sell an app, it's something that's probably worth, as a pro tip,

00:11:43   is keeping track in a document or somewhere just at a high level.

00:11:47   All of the various things that you've ever paid for or bought associated with the development of an app,

00:11:54   in terms of keeping track of--there's a domain associated with this app.

00:11:59   If you go to checktheweather.co, I think it was, there's a domain.

00:12:03   I need to remember to go and turn off auto-renew on that domain.

00:12:08   There's all--I think there's three or four different weather data providers that I have created accounts with at some point for this app.

00:12:17   And while, in some ways, some of them would just kind of turn off on their own if their usership went to zero,

00:12:25   the reality is I also should probably go and actually terminate my account there,

00:12:30   so I don't have all these little open things in the future that could come back and bite me in some weird way.

00:12:37   Then on the flip side, on the positive, say, "Hey, the app had been acquired and been shipped over to somebody."

00:12:41   You're going to have to be able to give the new owner the list of, like,

00:12:45   "Here's all of the things that I actually have to give you," which is way more than just the source code to the app.

00:12:51   We're sponsored this week by Pingdom. Go to pingdom.com/radar to start monitoring your websites and servers today.

00:12:58   Pingdom offers a 14-day free trial, and when you enter offer code RADAR at checkout, you get 20% off your first invoice.

00:13:04   Pingdom is focused on making the web faster and more reliable for everyone who has a site or service.

00:13:09   They offer powerful, easy-to-use monitoring tools and services.

00:13:13   So if you're a Pingdom user, you can monitor the availability and performance of your servers, databases, websites, all very, very easily.

00:13:20   They take care of this by using more than 70 global test servers that emulate visits to your site.

00:13:25   They can check its availability as often as every minute, and they can do different tests with that,

00:13:28   things like they can use a cookie to log in, they can follow forms,

00:13:31   they can check for certain strings on the resulting page, they can check for certain timeouts.

00:13:37   Pingdom is incredibly great. I use it to monitor all my stuff, and I've used it since the Tumblr days,

00:13:42   a very, very long time ago, since long before they were a sponsor, before I even started podcasting at all.

00:13:47   I've been using them for a very, very long time, and I have had nothing but great experiences with Pingdom.

00:13:52   That's why I can personally recommend them, even though they cannot pay me to say that.

00:13:55   I can actually say that directly. They are awesome, and you should be using them.

00:13:58   Pingdom makes it very, very easy to monitor your sites.

00:14:02   All you need to do is give them a URL that you want to monitor,

00:14:05   and the various optional conditions you want to check for, and they take care of the rest.

00:14:09   When they detect an outage, you can be immediately alerted, so you can fix the error before the downtime affects you.

00:14:15   You don't want to be caught with your site down, and you not even knowing it,

00:14:19   and people on Twitter telling you, "Hey, by the way, you know your site's been down for the last couple hours."

00:14:23   No. You want to be the first person to learn.

00:14:25   And with Pingdom, you will be the first person notified so you can fix it before anybody else really sees it.

00:14:30   Go to Pingdom.com/Radar for a 14-day free trial, and use offer code radar to get 20% off at checkout.

00:14:37   Thank you very much to Pingdom for sponsoring our show.

00:14:39   So the other kind of consideration or thing that I've--all this process that made me think of,

00:14:44   because it's probably only sort of helpful to talk about the actual instances of this app,

00:14:48   but if I take a step back and think about just in general as I'm developing an app,

00:14:54   are there lessons that I can learn from this that I think would be useful going forward?

00:15:00   And the first one that I was trying to think of and came up with was the importance of being careful

00:15:05   about what I'm communicating or promising to my customers as I start out.

00:15:13   Because I feel like it's easy when you're starting out, and everything's kind of rosy and nice,

00:15:19   to get a little carried away and kind of make commitments that are down the road

00:15:25   going to be more difficult for you to follow through on.

00:15:28   And it's a tricky thing maybe on this case was the pricing, where it's really not a sustainable business model

00:15:33   for an app that has an ongoing cost to have a one-time purchase up front.

00:15:38   But in the early days of the app, I kind of gave the impression, whether implied or actual,

00:15:42   you know, I have to actually go back and look at my communication to see what I actually said,

00:15:46   but I definitely implied that, you know, you buy this app and you have weather data.

00:15:50   And there was no end date put on that.

00:15:54   And that creates some really awkward things that kind of feel like they tie my hands,

00:15:59   whether necessarily or just because of the way that I feel going forward, that kind of reduce my options.

00:16:06   Because in this case, I said about a third of the users bought it in one day.

00:16:10   So whatever I communicated to those people that first day when everything was cheerful and rosy

00:16:15   and I was so optimistic about its future, I kind of have to live with going forward.

00:16:21   And it definitely kind of makes me think of as I launch things now or as I move forward,

00:16:26   while it's also good for me to be thinking about, you know, is this sustainable and so on,

00:16:31   but it's even the importance of being careful about what I say, that I'm not making promises into the future.

00:16:38   It's kind of like anytime I see a company that now says something's unlimited

00:16:44   or a lifetime subscription or those types of words, I am immediately skeptical.

00:16:50   I immediately think, no, that can't be right.

00:16:54   You know, you can't use those words with actual honesty because you can't give someone an unlimited something

00:17:01   or a lifetime of something because you're making promises into the future that you really can't stand behind.

00:17:08   And that's probably a dangerous thing for me, especially a small developer, to ever do.

00:17:12   Well, especially because when you have a paid-up front app or any kind of--however people are paying for it.

00:17:17   If somebody pays for your app, many people, maybe even most people, have this expectation at the moment of payment

00:17:24   that I am paying for this app for it to work forever.

00:17:28   And of course, in reality, that's not how anything in this industry works, but that is kind of like the mindset.

00:17:34   And that's why people get so upset when an app that they paid for two years ago all of a sudden gets discontinued

00:17:41   or requires a paid upgrade to keep working on the newest whatevers.

00:17:45   People, when they pay up front as something that's presented as a one-time fee, they really do assume,

00:17:53   even if it's subconscious, they see that purchase as a lifetime purchase, when in fact that is impossible to sustain.

00:18:01   I mean, people--basically, software needs ongoing revenue streams because people expect ongoing updates,

00:18:10   ongoing service, ongoing compatibility fixes, and even ongoing improvements.

00:18:16   And yet, they pay once up front and they expect all those things to come for free forever.

00:18:22   So, like, some kind of recurring subscription or recurring revenue model, whether it's subscription or ads or other things,

00:18:28   the reason why this is so helpful is because that matches up more to people's expectations of what the product will do for them

00:18:34   and how the product will keep moving.

00:18:36   But when you have something like you had with Check the Weather, which was what, like three or four bucks up front?

00:18:40   I think it was, yeah.

00:18:41   Yeah, so it was like, you know, whatever it is, three or four bucks up front, then, you know, people who paid three or four bucks

00:18:46   two, three years ago, you know, they're going to expect that app to still be working now if they're still using it.

00:18:51   And you're going to get some people who are very upset about this discontinuation.

00:18:55   But I don't really see how you could have kept it going otherwise.

00:18:59   I mean, if you had--I mean, we can talk about different business models and stuff, but, you know,

00:19:03   if it was subscription funded from the very beginning, that would be another thing.

00:19:06   If it were ad funded, then, you know, it would just kind of keep making money through usage,

00:19:12   hopefully enough to cover it, but that's not even a guarantee.

00:19:15   And, you know, so if there was ongoing revenue, you could possibly sustain it more.

00:19:21   But people really do, you know, when it comes to, you know, geeks like us know to doubt claims of unlimited or lifetime.

00:19:29   But when you have paid up front, that is literally what people expect.

00:19:33   They expect it to be a lifetime purchase, even though they might not care in a year or two.

00:19:38   But the ones who still use it, they will care.

00:19:41   Sure. And I think beyond even just the consideration of, like, what's the best business model,

00:19:46   and obviously, like, in retrospect, I think of myself four years ago being very naive that this kind of would have worked.

00:19:52   And I think the important thing there is to, A, to think it through, that, like, I got so caught up in the actual process of building it

00:20:01   and thinking that it was cool, that I don't think I thought four years into the future about what would happen.

00:20:07   And then, B, even if you don't have a good alternative for the business model,

00:20:11   like, even if I'd still launched the app as a, you know, paid up front app,

00:20:14   I likely should have given some thought to how I talked about it and how kind of the expectations that I set.

00:20:22   You know, maybe I should have said, you know, the app includes weather data for two years,

00:20:26   and maybe I don't have a good answer for what happens in two years.

00:20:29   But there's sort of the expectation that maybe down the road there will be some more money that you'll have to pay for me to keep doing it,

00:20:37   and communicating that rather than kind of, if you don't say anything, like you're saying,

00:20:42   the customer's expectation is that it's like, well, I make one payment, and then it's the rest of my life,

00:20:47   or as long as I want to use it, you know, I will be sitting there ready for them to help them, however that goes.

00:20:53   Well, and for a while, that actually works for a lot of apps.

00:20:57   Like, especially in the earlier days of the apps, like four years ago when you launched this,

00:21:00   that was a totally reasonable thing to do.

00:21:02   Like, when I launched Instapaper on, you know, day one of the app store in 2008,

00:21:06   well, it was more like day three, whatever, in 2008,

00:21:10   it was just an upfront paid app, it was first 10 bucks, then about a year later lowered it to five bucks,

00:21:17   and it stayed that way for a long time.

00:21:19   And the idea, you know, I was running this big, expensive web service behind it,

00:21:22   but every month I just kept selling more copies of the app, and so the growth was just funding it.

00:21:28   Like, just the additional new copies that we're selling every month, that was enough to fund the app.

00:21:34   And Overcast, first year, I did the same thing, with the $5 one-time in-app purchase

00:21:39   to unlock the good features, and it did the same thing, and it worked fine for a little while.

00:21:45   But as the app store has gone on, that incredible growth that we had in the earlier years

00:21:50   is harder and harder to come by, and the money you're getting from each person is often going down,

00:21:56   as we've had to lower prices to be more competitive in the market.

00:21:59   And so now, you really have to think from the beginning, how am I going to get ongoing revenue from this?

00:22:06   Whereas even as recent as four years ago, when you launched this, we really didn't have to think about that.

00:22:11   It wasn't you being na├»ve, it was actually the conditions of the market at the time.

00:22:15   You could just fund an app entirely by its own growth.

00:22:19   Sure, and you know, it's...

00:22:21   Ah, the good old days.

00:22:23   But, I mean, nevertheless, the reality is, it's something that I mention here as a cautionary tale,

00:22:29   both for myself and others, that if you don't think about this up front,

00:22:35   eventually you're going to have to deal with it.

00:22:37   I mean, it reminds me in a weird way of contract negotiation.

00:22:40   I remember getting the best advice, I was talking to a guy who was my lawyer,

00:22:44   but in this case he wasn't acting as my lawyer, but he was, you know, a lawyer who was telling me,

00:22:48   the reason he likes doing contracts for developers is his job, he felt, was to think through

00:22:57   all of the worst case scenarios for them that they don't want to think about,

00:23:01   that they're sitting down with a client and they're super excited, like it's the first big client they've ever gotten or whatever,

00:23:07   and they're really excited about it and they can talk about all the fun things they're going to do

00:23:11   and the awesome work they're going to be able to do and collaborate together,

00:23:15   and you just don't think about these things that, what do we do in the sense of a contract?

00:23:21   Like, what happens to the code at the end of this project?

00:23:23   What happens if you're sick and unable to continue working?

00:23:27   What happens if you just have massive disagreements and don't get along?

00:23:31   Like, those kinds of contingencies, those kinds of things that you never really hoped for,

00:23:37   you just hope it's always going to be the best case.

00:23:39   In this case, with Check the Weather, if the sales had just kept going forever,

00:23:42   the app would just keep going forever, but if you force yourself to think about the weird,

00:23:48   not so great things up front, you can just plan for them, or at least have some sense of what you might do,

00:23:54   and it probably would have helped, in this case, would have helped me avoid, kind of, it feels a bit awkward.

00:23:59   It feels a bit more like I'm letting people down, and generally people have been really gracious about it.

00:24:04   I think the nice thing about a third of the users buying it in the first day,

00:24:07   and probably about half of the users buying it in the first month, is that that was all four years ago,

00:24:13   and so either they've stopped using the app, or if they have used it, they've been using it for four years,

00:24:17   and paying less than a dollar a year is perhaps reasonable to them.

00:24:22   But if anything, it's just the cautionary tale of think about these things.

00:24:26   Think about what this would look like down the road, and have, if not a plan in specifics,

00:24:31   at least a plan in general, for how you're going to deal with it.

00:24:35   The other thing that I've kind of been running into as I've been unraveling it,

00:24:39   that is kind of a lesson that I thought would be worth talking about,

00:24:42   is as much as I feel like I think of the App Store and the way people use my app

00:24:48   as only ever using the latest app on the latest version of the OS, which is in general surprisingly true,

00:24:56   as I've been kind of unwinding this app and working out what I need to turn off,

00:25:01   I always went back and looked at old users of the application,

00:25:05   and this is where things get funny and why I've changed data providers, for example.

00:25:09   And I need to make sure that I go and turn off those first accounts that I used to get weather data from,

00:25:15   because people are still using the app that has really, really, really old versions.

00:25:21   I went and looked in my analytics, and I have people who are using the app that was published in 2013 still.

00:25:29   As of a couple of days ago, I was still having people who were hitting my web services with that version string.

00:25:37   Is this from people who are using really old iOS versions?

00:25:40   Yes, that is usually the situation. It's like somebody has an old iPod Touch

00:25:47   or an old iPhone that can't be upgraded beyond a certain point,

00:25:52   and I think the version they were using there was the last version that worked with iOS 6 or with iOS 5 even.

00:25:59   It's getting really far back in time, and so they're just stuck using that version.

00:26:04   And if they're still using it, in some ways, good for them, that's fine.

00:26:09   But I usually don't worry about those people in terms of new development,

00:26:14   but when you turn things off, it is definitely something that I felt like I have to think through now.

00:26:19   Are there any things that old, old versions of the app do that I need to think about now?

00:26:28   And in a weird way, it gives me thought to being careful or being thoughtful as I develop about where I put things in the app.

00:26:37   It reminds me, there's a mechanism in Check the Weather to dynamically change some of the API keys inside of the application

00:26:48   so that if I had a problem with the weather provider, I could in some ways switch things around dynamically,

00:26:55   and it does that through a web service.

00:26:58   And I'm glad I've definitely used that a few times, and especially for--

00:27:01   this is a good reminder for me of building mechanisms like that into our apps is probably a good idea,

00:27:08   at least to some degree, because you can't always rely on the App Store updates being the way you change that.

00:27:14   You know, if something breaks, I have to go and submit it, and even though App Review is amazing--

00:27:18   I had an update yesterday where I submitted it in the morning, and about three hours later it was approved,

00:27:24   which is crazy and awesome, but that's only ever going to capture 90% of users.

00:27:30   So at least give some thought to what happens to that 10% of users.

00:27:34   Yeah, it's also really nice to have, from day one, a mechanism server-side to show a message,

00:27:41   like show an alert box to everybody with server-side provided text.

00:27:45   And you can have it be like every time or just a one-time showing,

00:27:49   but somehow have something in there in your app so that you could, at this point,

00:27:54   rather than have it--once everything shuts down, rather than the app just launching and erroring out with some kind of server error,

00:28:00   like no internet connection, even though it's not really--

00:28:03   Yeah, that's what it's going to say.

00:28:04   Right, then to have a different method where you can put a file in S3 somewhere that basically--

00:28:09   that the app checks and says error, and then you can show a box that says,

00:28:12   "Sorry, we've had to shut down this app because of blah, blah, blah."

00:28:15   It's something that I have occasionally built into my apps, and I've been very thankful every time I have.

00:28:21   And I think the last thing, this is the thought I have, is the--

00:28:24   as I finish up this app, it's a weird thing because I still have ideas for what a cool weather app could be and do,

00:28:33   and I've had to go navigate a little bit the thought of, "If I made another one, would it make people mad

00:28:39   or feel like I've cheated them out of something, or I should have just put that into the app that they've already paid for?"

00:28:44   But obviously, the reality is--and this is the end of the thought that I came to--

00:28:49   if I decide to make a weather app again, it'll just be a new thing, and hopefully--

00:28:55   if the reality is I just need to take the lessons I learned from this, put it into it, and that will be okay.

00:29:02   And it's being careful of not making choices just to avoid people being mad at you,

00:29:09   because people are always going to be mad at you for something.

00:29:12   And so in this case, I was having the thought, "I don't know why--part of why I didn't pool check the weather

00:29:17   is that at some point I've always thought, 'I have these cool ideas for weather app.

00:29:21   Maybe I'll put them in to check the weather, and then sort of keep it around just to avoid people being mad.'"

00:29:27   But the reality is, if I have those ideas, and at some point down the road I want to do it, I should just do it.

00:29:32   And if people are mad, they're mad, but I won't be. I'll be happy, and I'll be glad,

00:29:36   and I'll be making something that I'm excited about.

00:29:38   And so that's just an encouraging thought that I gave myself this week as I went in and had to hit the button

00:29:45   to say, "It's finally time to put this to bed."

00:29:49   Next time use a free font.

00:29:50   There you go.

00:29:51   All right, thanks for listening everybody, and we'll talk to you next week.

00:29:54   Bye.