0:00:00Hello and welcome to Developing Perspective. Developing Perspective is a podcast discussing
0:00:04news of note in iOS development, Apple and the like. I'm your host, David Smith. I'm
0:00:08an independent iOS and Mac developer based in Herner, Virginia. This is show number 172.
0:00:12And today is Monday, February 3rd. Developing Perspective is never longer than 15 minutes.
0:00:18So let's get started. All right, so I've got a couple of different things I want to talk
0:00:21about today. I'm starting to start off by talking a little bit about how the launch
0:00:25last Friday of Pedometer++'s big update went.
0:00:28I think there were a couple interesting lessons to learn from that
0:00:30that I thought were worth sharing,
0:00:32and then we'll see how much time I have left for other topics.
0:00:34All right, so I launched Pedometer++'s big update on Tuesday--
0:00:38or, sorry, on Friday.
0:00:40This was version two of the application
0:00:42that basically just was a complete overhaul of the application
0:00:45in terms of its UI and some of its functionality,
0:00:48as well as localizing the application with those two things.
0:00:51And as a bit of an aside,
0:00:53I wanted to mention something that I've increasingly sort of--a philosophy I've started to have,
0:00:58where I feel like in--people who come from box software, the box software world, or from
0:01:05pre-app store days, are often very conservative about their version numbers. And increasingly,
0:01:10I'm less conservative about version numbers than I used to be, where, you know, this is--I
0:01:14call this version 2.0, and it has some big changes, and it has some, you know, some major
0:01:17updates to it. There's often--I think people have kind of this weird hang-up with calling
0:01:23things major updates.
0:01:24That it's like, oh, it has to be this major thing.
0:01:26And I think a lot of that's coming from a world where
0:01:29it was part of the marketing system of paid updates, where
0:01:34you would-- essentially, users would get free for bug fix
0:01:37and minor version updates.
0:01:38But major versions were paid updates.
0:01:40And so you had to have something compelling in there, something
0:01:43that you really would want to-- a user would want
0:01:45to feel compelled to update.
0:01:47That's not really the way it works in the App Store,
0:01:49it seems as much these days.
0:01:51You know, this app isn't getting paid updates,
0:01:54and really you can't do paid updates very well in the app
0:01:57store.
0:01:57So that part doesn't matter.
0:01:59If you give it a major version bump
0:02:01and you have something to point to that would be a major--
0:02:04some major improvements and changes that aren't just
0:02:06bug fixes, then maybe you'll get a little PR,
0:02:08maybe you'll get a few bumps, maybe
0:02:09you'll get some interest from that.
0:02:10So don't be too conservative about it.
0:02:12It's just kind of where I've come down to.
0:02:14You know, if something is major and you put a lot of work
0:02:16into it, and you want to call it a 2.0 or a 3.0
0:02:19or whatever it is, great.
0:02:20Go for it.
0:02:21And if anything, it's kind of nice,
0:02:22because I think a lot of users, when they look at an application
0:02:25and they see that it's a one-point something versus it's
0:02:27a two-point something, I think there's a-- calling something
0:02:30a 2.0 or 2.0, especially even when it's like 2.1.2
0:02:34or something, it shows that the app is active,
0:02:36that it's worked on, that people are-- the developers
0:02:39are engaged in working on it.
0:02:40So don't be too hung up on exactly what
0:02:44you call your version numbers.
0:02:46I think some of the old rules from back in the--
0:02:49sort of back in the past days of development, sort of apply, but in general, do what makes
0:02:54sense for you. In this case, I was like, "Oh, it's a big visual update. Let's call it 2.0."
0:02:58And it seems to work. It had a fair bit of press.
0:03:01Before I get into that, I wanted to talk about a bit of a -- one of the little hiccups that
0:03:05you can run into as a developer that I just wanted to mention. So hopefully you don't
0:03:08get caught up on it in quite the same way. So the app was approved. I -- actually, it
0:03:14was kind of an interesting story. I submitted it about two weeks ago, and I went through
0:03:17normal App Review timeline and got rejected, which kind of surprised me.
0:03:22And it turned out that App Review caught a kind of horrific bug where under certain,
0:03:26you know, with certain circumstances on a fresh install, the app would basically not
0:03:32show any data on first launch.
0:03:34If you relaunched it, it would work correctly and so on.
0:03:36And it turns out this was because I'd done most of my testing with existing databases.
0:03:40Obviously, all my beta testers had existing databases.
0:03:43So I hadn't done quite as much testing as I should have on the first run, first install
0:03:47all experience and that's the one thing that App Review is great at catching. So thank
0:03:51you App Review. That's just one of the things that's worth mentioning I think because often
0:03:57we can think of App Review as kind of a burden, as a thing that holding us back is kind of
0:04:01annoying, but sometimes it's actually really helpful and this is not the first time that
0:04:04they've caught kind of a horrific bug that, honestly I shouldn't have let, you know, should
0:04:09have let out the door, but I did. I didn't catch it and they found it, which is pretty
0:04:13pretty awesome. Alright, so the tricky thing though is I went through and it got approved
0:04:18after the second submission, after I fixed that bug, and the approval came very late
0:04:24on Thursday night. And so I was like, "I'm not going to release that in the middle of
0:04:27the night." I'd done the update with hold for developer release thing where the app's
0:04:31approved, it doesn't immediately go out to the store, you have to wait for it. It waits
0:04:36for me to hit a button that says go. And so I did that and woke up on Friday morning and
0:04:41I was like, I don't know how great it is to launch an app on a Friday.
0:04:45In some ways it's good because weekends are often high traffic days.
0:04:48So if I can have a big update out before that, that's great.
0:04:51And that's usually why a lot of apps launch on Thursdays,
0:04:53because they get-- that's part of the feature cycle with Apple,
0:04:57where the apps they feature often come out on Thursdays.
0:05:00But also, you can be set and established going into the weekend,
0:05:04which is usually very busy.
0:05:06I was like, well, let me go ahead and hit it now, though.
0:05:09And it'll be out early on Friday morning.
0:05:11I have all of Friday to draw some attention to it,
0:05:15get things going, make sure everything's happy for the weekend.
0:05:17And I hit go.
0:05:18It took about 13 hours, I think it was,
0:05:20from when I released the App Store to when it actually
0:05:25started to appear in the store.
0:05:27It was in processing for App Store for about four or five hours.
0:05:30And then it was a couple of hours again on top of that
0:05:32before it actually would show up.
0:05:34The whole day I was sitting there opening my phone
0:05:36or refreshing things on iTunes to see if there was going to update.
0:05:39and it never did.
0:05:40And ultimately it got released about 4 p.m. Eastern on Friday,
0:05:44which is probably the worst time I could launch a new app.
0:05:47I mean, everyone's wrapping up their days at work.
0:05:50I guess I still have a few people on the, you know,
0:05:51sort of West Coast Central Mountain time
0:05:53who are still at work.
0:05:55But, you know, it's a bit annoying
0:05:56that that's the way it ended up happening.
0:05:58And I mention that mostly just as it's something to keep in mind
0:06:00that those durations and those times
0:06:04aren't things that you can easily control,
0:06:06aren't things that you can easily manage necessarily.
0:06:09And so be thoughtful about that.
0:06:10In retrospect, what I probably should have done
0:06:12is before I went to bed on Thursday night,
0:06:16I should have just hit release to App Store.
0:06:19Not announcing it, not publicizing it, not sort of pushing it out there,
0:06:22just having it in the store.
0:06:23And then first thing Friday morning, I can start publicizing it and running it.
0:06:28Or I should have just not worried quite as much about getting it out right away
0:06:33and just done it on, say, like Monday.
0:06:35If I'd done it right now and it took 13 hours to get released,
0:06:38it wouldn't have been a big deal. I would have just sort of done my publicity run tomorrow.
0:06:42But anyway, that was just a lesson I learned. I kind of gotten used to the fact that some
0:06:45of those things, you know, you hit a button and then it was, you know, maybe an hour later,
0:06:48maybe half an hour later, it would be in the store. That isn't always something that you
0:06:51can rely on. So be careful if you're kind of planning attention and publicity and things
0:06:57that you make sure you leave a nice big wide buffers about that. All right, so the main
0:07:02thing I was going to talk about a little bit today is a follow up on last show about localization.
0:07:08And mostly I wanted to talk a little bit about the effect of it that it seemed to have had
0:07:11on Podometer++, as well as a few thoughts and things that have come up related to it.
0:07:17So this is sort of like localization part two.
0:07:19And this isn't about the actual process of doing that.
0:07:22If you're -- this is your first episode and you haven't listened to 171, I talk in great
0:07:25detail about the process of localization, why you should do it, and some of those kinds
0:07:29of things.
0:07:30So localization is taking the app and making it work in a lot of different countries.
0:07:34And so for this update, I did that for an additional nine languages, or additional eight
0:07:39languages to bring it up to nine in total.
0:07:43And I was, my previous experience localizing apps has not been great.
0:07:47The only other app that I've really done it for was an app called Check the Weather, which
0:07:50is a weather app, that broadly, the fact that it was localized, maybe only attributed seemed
0:07:56to maybe an additional 5% or so in sales.
0:07:58really didn't take off in a major way or do things that, you know, that justify the effort
0:08:05and the time that it put into it. And I think the only country that seemed to really justify
0:08:09its value was Germany, which is interesting because the same thing that happened in pedometer++,
0:08:15but or as the biggest country that were it seems to have had a big uptick. So apparently
0:08:19the Germans love apps. But the I was kind of sour on it. It wasn't something that I
0:08:24necessarily wanted to do because it has a lot of burden in terms of the way you structure
0:08:27your app, in terms of the way you have to test it, your uploads and managing metadata
0:08:32and all these types of things.
0:08:33It's kind of annoying.
0:08:34And so I was kind of reticent to do it, but I wanted to try it again to make sure I had
0:08:38two data points at least rather than just one.
0:08:41And the nice thing with Pedometer++ is so far the result has been incredibly promising.
0:08:45It's only because the app's only been in the App Store for about two days.
0:08:49But in those two days, I've gone from a world where the app was getting about 60 to 65 percent
0:08:55of its downloads were in the United States, and probably about 70 to 80% of its downloads
0:09:00were in English speaking countries, you know, so the United Kingdom, Australia, New Zealand,
0:09:05etc. To a world where over the weekend, those numbers were almost sort of very strongly
0:09:11flipped, where about only about 40% of users are English speaking. And the majority of
0:09:17the you know, sort of the majority of users now are speaking a language other than English.
0:09:20You know, Germany I said was the biggest.
0:09:23That's actually on Sunday was actually the largest language group of the app.
0:09:29I think it was about 46 percent or something of people were downloading from Germany.
0:09:33And then France made a good, has started increasing dramatically from about 1 percent of downloads
0:09:39to now about 7 to 8 percent.
0:09:42It's kind of dramatic across the board.
0:09:43And like I said, it's early going.
0:09:44It could just be things about publicity or whatever.
0:09:46But so far, I'm kind of encouraged that the app is getting traction in places it wasn't
0:09:52before.
0:09:53And that's kind of exciting.
0:09:54And who knows what that's going to do, too, in terms of if it's popular and interesting
0:10:00in these locales, then it also potentially could get Apple's attention in those locales.
0:10:04Maybe now in Germany it's going to be featured, which it wouldn't have necessarily have been
0:10:07able to attract that attention before.
0:10:10And so I've been kind of encouraged by that.
0:10:11And it's something I wanted to mention because, like I said, I think generally there's a very
0:10:18high proportion of the developer community, at least that I'm aware of, who are in the
0:10:21United States, who are very English focused and don't really think about localization.
0:10:27And it's not a panacea.
0:10:29It's not something that would solve all your problems.
0:10:31But what it is, is an interesting tool that might allow you to broaden your thing.
0:10:35And as one example, after two days, it seems promising in that way.
0:10:39And I'll probably have, at the end of the week, I'll probably do a follow-up blog post
0:10:42about this where I kind of break it down in the actual numbers after I have a reasonable
0:10:46amount of data to actually compare before and after.
0:10:48But so far, very promising.
0:10:51One other thing I wanted to talk about a little bit is something that I've kind of been struggling
0:10:54with.
0:10:55And it's related to localization, but it deals with one of the funny aspects of localization,
0:11:01which once you start localizing things, the two things that seem to happen a lot.
0:11:06is you'll sort of get a lot of feedback from native speakers saying, "This part isn't great.
0:11:10You should change this. You should--" You know, "This word doesn't really mean what
0:11:13you think they--" you know, "You want it to mean." And this feedback is great. It's something
0:11:16that is very difficult as a developer. You know, you send your translations off to a
0:11:21service, they translate it, and they come back. I don't--I have no way of really validating
0:11:25whether that translation is useful and good in a way that is, you know, is as functional.
0:11:31I can take it and put it back in Google Translate, but it's going to sort of give me what I want
0:11:35the translation is accurate, but it might not necessarily be meaningful. And so I've
0:11:40been getting a lot of feedback like that. And if it's one of the things that is great,
0:11:42I mean, especially when you get a couple people saying the same thing, it's like, for example,
0:11:47apparently in my French translation, where in the tip jar, I have, you know, the word
0:11:53they gave me for tip is actually something that really has more of a connotation of like
0:11:57tips and tricks, rather than a gratuity, which is really what it's supposed to mean. And
0:12:01someone gave me a correction and says, "Hey, maybe you should use this word instead." Perfect.
0:12:06That's one of those things that I wouldn't necessarily be able to catch myself, and that's
0:12:09great to get that feedback. It's a little tricky, of course, to manage if you have two
0:12:12people who say two different things, like, "Who's the winner here? What's the right way
0:12:17to do it?" But in general, that's been kind of helpful to me. But the one thing that I've
0:12:23been struggling with a little bit, though, is you start to get a lot of people who are
0:12:26being like, "Hey, let me know if you want help translating it into another language,
0:12:30what length of translating it into Norwegian Portuguese. I've
0:12:34had all kinds of offers from all kinds of different countries and
0:12:36languages. And for free, usually they're like, I'd love to help.
0:12:39You know, I love the app, I'd love to translate it. I really,
0:12:42I struggle with this because in some one hand, I'd like to do
0:12:45that I'd like to have the app in as many languages as possible,
0:12:48just from a marketing perspective, and so on. But I
0:12:51feel weird about it doing it in a couple of ways. One, it always
0:12:55feels weird taking, allowing someone to do something for free
0:12:58that is typically something that I would pay for. It kind of reminds me of people doing
0:13:05spec work or a lot of the things that are just kind of, you know, I don't sit well with
0:13:11me, right? You know, if someone's doing a job that I would usually pay for, I'd like
0:13:14to pay them. And so I may contact some of these people and pay them what I would pay
0:13:17a service to do, expecting that I'd likely get a reasonably pretty good translation,
0:13:22because they understand the app and they use it. And so they're unable to translate it
0:13:26in a way that's better. And that's probably the approach I'll take. And also, there's
0:13:30a kind of a tricky thing of understanding how broad of a market the use, you know, the
0:13:36App Store actually is and how useful some of the smaller languages are. And there's
0:13:41a couple that I missed that are big ones that I expect to go back and correct. Like, for
0:13:45example, Portuguese is a language that I expect to do because, you know, it's used fairly
0:13:50broadly in the world. You know, there's more than one country where it's spoken. But you
0:13:52start to get more and more specific, it becomes a harder thing to justify.
0:13:57And the thing that's tricky is that getting a new translation isn't just a question of
0:14:02taking it, throwing in the strings and shipping it.
0:14:04I suppose I could do that.
0:14:05But really, if I'm going to do it, I want to support it properly.
0:14:07I want to have good screenshots localized to the application.
0:14:10I want to upload those to the store, updated the description and all those kinds of things.
0:14:15And so I'm going to be fairly careful about which localizations in which countries and
0:14:19languages I go to.
0:14:20And so if you're somebody who suggests one of these,
0:14:22and I haven't gotten back to you,
0:14:23or if I end to ultimately come back and say,
0:14:25you know, I'm not sure I want to expand quite that broadly
0:14:28within languages yet, that's kind of where I'm coming from.
0:14:31And I really appreciate the offer, and it's great.
0:14:33And there will be a couple of people
0:14:34I'll be following up with and working with to get
0:14:36some expanded a little bit.
0:14:38But it is a tricky thing, and it's
0:14:39something that I worry about overextending myself.
0:14:41Because in general, the biggest problem I have right now
0:14:44as a developer is being overextended.
0:14:46All right, that's it for today's show.
0:14:48As always, if you have questions, comments, concerns,
0:14:49complaints. I'm on Twitter @_DavidSmith, David@DevelopingPerspective.com. Otherwise,
0:14:52I hope you have a great week. Happy coding and I'll talk to you soon. Bye.