Podcast Search

Developing Perspective

#172: Going Global.

Select a time to play from there. The line being spoken is highlighted as the audio plays.

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.