How I Got to the App Store Top With a Simple Currency App

iOS

I will tell you how I’ve created quite an ordinary and not at all innovative application that has become objectively the best of its kind and even has been at the very top of the top for some time. It’s not a success story and not a guide for action. I just want to tell you how I developed the most popular application in its category.

These are the main points:

  • If you are aware that the market does not provide a decent solution of your real problem, you should think about creating one;
  • Graphical user interface is the most important part of the application;
  • Even the most simple application can become really popular;
  • Even the most simple application can be profitable;
  • Do not spend money on reviews in the App Store;
  • Advertising in applications is not so bad.

I guess that’s it. You are most welcome under the cut.

How I Decided to Create an Application

My wife and I decided to go on a holiday abroad, so I had to buy foreign currency at a favorable exchange rate. I am from Russia. 1 RUB difference in the price of USD and EUR provides 1,000 rubles of savings for every thousand US dollars or euros we buy. So every day I spent some time on monitoring the exchange rate of the Central Bank of Russia and commercial banks in Moscow. The Central Bank rate defined the general trend, while commercial banks could make a real currency exchange. If the currency became cheaper for a few days, I went to the bank offering the most favorable rate and bought the currency there.

My wife used her PC, a browser and the Yandex search, which was quite strange for me, as mobile phones allow to update information without using the computer, plus, she’s a programmer’s wife. Last year I decided to look what the App Store offered to solve my problems. You know, I had several different ideas, but I did not implement them after finding a dozen of ready-made services and applications. This time, I did not think about developing an application. I just wanted to solve my problem. I couldn’t believe it: the App Store provided no decent application to keep track of the exchange rate! (Here and below, I express my own opinion in relation to other people’s work, and it may differ from the opinion of others. I’m just describing my emotions)

I noticed the same bad situation among calculators for iPads. The standard Stocks has a terrible interface. For example, to obtain the US dollar exchange rate against the Ruble, you have to enter the unfriendly RUB=X line, and EURRUB=X for the Euro against the Ruble. As for other applications, they were either paid, or partially free, but asked you to pay money for almost everything, or there was advertising in them. Some applications had not been updated for more than a year and were stuck in the era of Skeuomorph, others were free but didn’t work properly, as they said in the review, “a student wrote a term paper”.

That’s when I realized, that it was the time. I want my application to show the dynamics of the rate (a chart), as well as the actual rate. It will also provide a calculator. I can already see all the 2 or maximum 3 screens of the application. I know that the application will be the best, as I truly believe that the present analogues are no good. I am full of energy and determination.

Conventions

I decided that this task was not the most difficult one, but I should treat it with the utmost seriousness. So, having read various websites and business books, I highlighted the following basic rules for the time of development.

Job

  1. Come to work early;
  2. No matter when I come, I should leave at 6:30 p.m., maximum at 6 p.m., so that I would come back home fresh. If in doubt, or want to work for free, I should remember, what is more important for me and get rid of the doubts;
  3. Devote an hour and a half, or even two hours to working on the project each weeknight;
  4. No work after 10:00 p.m., or at least after 11:00 p.m.;
  5. Don’t answer the phone calls from colleagues after work;
  6. If my relatives need me at the weekend, I should find time for both help and work.

Development

  1. Use git;
  2. Design the system nice and ideologically correct, so that I could show this code to my future employer. The code should be flexible and understandable;
  3. No interface builders;
  4. A designer should work on the interface. I am not a designer.

I guess I was wrong about interface builders, but no worries. You should be able to work with code and interface builder. It took some time to ask a designer to help me out, and it was a great folly. Everyone must do his job. My job is coding and coming up with different things. I do not know how to design.

General Requirements

  1. No advertising;
  2. The application must be easy and fast;
  3. The application must be minimalistic and solve just one problem – show the dynamics of exchange rates;
  4. The application must be done quickly. If I get stuck at some point, it’s better to forget about it and improve in the next update;

No advertising is my competitive advantage, as well as the size of the source code. I’m not sure whether a lot of people pay attention to size, but I think that an application should be capable to be loaded in the subway, as well as in the street, for both 3G and Edge. More than once, I’ve faced the inability to load an application when I was not at home. Perhaps, it’s wrong to say such things in relation to games, but 10Mb exchange rate app is not normal. Minimalism is typical for iOS7 and iOS8, the Yahoo Weather App influenced on me here.

How I Created the App

The Pareto Principle worked with me as well. I spent about six weeks on the first release. I did not tell anyone about this. I wasted most of the time on attempts to create and implement the design myself. What a silly idea! For a couple of days, I was waiting for the designer to give me the image for the startup screen. Eventually, I made it myself in 5 minutes. I also spent a lot of time on swapping the views. In short, you should seek help of a professional at once, especially if you want to make the best application of its kind.

I explained the designer how I saw the application design. Then I got down to building classes for networking, data model, parsers, etc. I wrote all the ideas coming to my mind into a text file. I wrote down all the bugs as well, so that I would not forget anything. After some time, the designer presented several options of the icon. The result exceeded my expectations, and this added enthusiasm, as well as impatience. I did not wait for the design of the main screen.

Currency Exchange App Icon from AppStore

I repeatedly broke my own rules. I did not work every night, and stayed up until late at night a couple of times. But I cannot say that rare violations reduce efficiency. If you have a headache, it’s better to spend the night out. But if you keep thinking about the project on the way to work and before going to bed, you should work on it.

To track falls, I integrated Crashlytics. To gather statistics, I used Mixpanel. I did not know what to do with statistics, I just wanted to know how often users ran the application. If you don’t’ know what to do with statistics, just forget about it. You can add it when you want to know about users.

I spent a few nights to find out how to implement some details of the designer interface. Then I remembered about my rules and realized that these details come at a price. So I postponed their implementation.

I had a few ideas for customization of the application. I also did not know what color to choose for the background, what period I should choose for the chart, and whether dates should be displayed on it. I decided to let users select these settings. But the implementation of these settings required time, so I decided to postpone these tasks until the next update.

Release and Results

At some point, I decided that the minimum functionality was implemented and I could click the button to submit the application to the store. After the release, I posted the icon to the Instagram and Facebook. I also sent links to my friends and some developers I know and asked my relatives to write 5-star reviews.

The first version existed for about a month and had been downloaded about 4 thousand times. In the rating of the Business category, my application was at a higher position than other free converters. But there were really few reviews. My exchange rate was displayed in the list of New applications in the App Store, which increased the number of downloads.

Crashlitycs and some of my friends found several falls in the range check error style. Besides, I had plenty of unimplemented features. In the next update I modified the user interface. The application looked nicer, but the number of downloads fell.

Currency Exchange App Interface

I also decided to add the capability for users to write me emails with questions and suggestions. I created a new Gmail account and added it to my mobile. This allowed to respond to questions very quickly, note complaints and suggestions, and also enhance customer loyalty. In particular, many customers complained about rare update of the exchange rate. I added the “About” button for them, in which I described the way the application worked and explained that the Central Bank rate is updated once per working day.

I must admit that I was never interested in the rating of App Store applications, but after the release of my own app, I checked its rating every day, for several months. I checked the rating of other applications as well. During this time, I saw a lot of apps that came out of nowhere and topped the list of the Business category, got a lot of feedback, and then disappeared from the top in 2 or 3 days for good. I thought that their reviews had been paid for.

I decided to find out how much this would cost and found out that the price was from 1 to 3 US dollars per one installation plus one review. I heard more than once that it’s important to get to the top no matter what, that the Top was an endless circle. Well, that’s nonsense. After the release, your application gets into the “New” category, and that’s what promotes it. If you don’t like the result, paid reviews is the last thing to think of. It’s really easy to fall from the top. To my mind, it’s better to pay for a blog post about the app.

In-App Purchases

Long ago, I noticed that Viber selling stickers was at the top of paid applications. This solution seemed strange, but it was certainly working. I decided that users can pay for the ability to change the color of a theme. At the same time, I blocked the timeframe setting to display the chart and the setting of displaying dates on the chart.

Worries about the small number of reviews in the App Store helped me to come up with a plan. I should sell these 3 settings for $2, and if the user rates the application, he will get a 50% discount. Genius, isn’t it? Apple did not like my super idea and threatened to ban me for the unfair rating scores.

I lacked seriousness in relation to my product. It seemed that $1 was already too expensive. So unlocking these 3 settings required $1 paid. Such In-App purchase will bring from $30 to $60 monthly. To tell the truth, I hoped I would make at least $500.

For about three months, the next versions have been downloaded from 2000 to 3000 times per month. I was really upset with this result and tried to console myself with the thought that it was just a converter.

Advertising

Suddenly, an advertising agency addressed me with a proposal to display some advertising in my application. I did not want to spoil it with ads, but after some thought, I calculated that it would bring me about $100 per month. It’s quite a lot actually, compared to revenues from in-app purchases. It’s also a small amount, when comparing to salary and the cost of living.

I added 2 more in-app purchases in the next update: disable advertising for $1 and full access for $2, which aggregated the two $2 purchases. Ad CDN worked really bad. They used some stub, but page views were not tracking. But! The income of the first month exceeded $150, and the second month income was $200! It was a success! I learnt two important things here. First, those liking the application were ready to pay $2. And maybe more? Second, advertising, if not annoying (In my case, I show the ad only after the first application run) can pay off as well.

Soon, I figured it all out with the advertiser and their CDN, and began to make profit form the advertising. If users do not stop running the application, their number will grow day by day, thus increasing the number of the ad shows. This means that you will make a profit from the advertising. By the end of the year, it brought me from $50 to $100 daily.

The Rise

In November, a rapid devaluation of the ruble began. This fueled interest in my application and all similar ones in the App Store. I was in the first place in the top of free apps of the «Business» category and began to loom in the top of paid ones. In December, the speed of the exchange rate changes was off the charts. At first I was in the Top 100 of free application of the entire App Store, and then noticed that my daily income was more than $100. My friends were joking that a lot of people were in a tough situation, while I felt pretty good. The rise was truly stunning! Here are some pictures to illustrate:

March-November

March-December

I should say that users treat the application from the Top in a special way. Bugs and flaws are considered almost as a personal insult. Many popular applications, such as Yandex and Facebook apps, receive hundreds of thousands of angry reviews. So my application with an average rating of 4.5 stars became a 3.5-star. This does not mean that we can relax at this point or that ratings mean nothing here. The customer is almost always right. And many one and two stars for my application do contain the justified criticism. It’s just that everything is more serious in the Top. We have no right for failures of bugs.

The Perspective

I am not a businessman or a marketer, but I do communicate with them sometimes. One of them told me the following. Purchases should be offered to the user without departing from the context. The capability to disable advertising should be offered when it is being shown. Unlock settings — when you try to click on a locked item. There were also other tips to boost conversion.

The conclusion is trivial: communicate with successful business people and learn from them.

Users were also asking me to make a widget. Push notifications almost work, but a friend of mine who helps me on the server-side, slowed things down down a little bit. I even started thinking about specialized services. Anyway, there will be pushes.

Some users ask for the rate of raw materials (oil and gas). Have something to think about.

Besides, I have gained invaluable experience in developing applications from scratch and up to the top (even if not financial), and it can be used in other projects.

Summary

I had a simple problem. The existing solutions did not suit me and I created one of my own, and it became the best. The solution is really simple, if not primitive. It’s nice to realize that you’ve made something useful for people.

I have formed the opinion that if you have a problem and the existing solutions are not satisfying or frankly bad, you should think of inventing a wheel of your own. But you should understand why these solutions are unsuccessful and that it’s time to show everyone how to solve such problems.

I hurried up with the release, without paying enough attention to design. Being present in the list of New applications helps considerably.

I changed my attitude to advertising in applications. It allows the developer to make a profit, even if a small one. But it’s important not to overdo here.

In-app purchases, when used properly, can bring you money enough at least for self-sufficiency, and maybe even a significant addition to your income.

Besides, even the simplest application can bring considerable income when it’s developing.

As a result, my application holds the first place in the Top of free applications of the Business category. During two days, it has been number one in all categories. They even offered me to sell the application. There were two micro reviews written about it. The application was called one of the best in the past year. There also appeared a clone of my application and I am discussing it with Apple right now.

Life shows that the ability to sell properly, for the right price, at the right time, can make a profit even for the simplest application.

Here is the link to the app: https://itunes.apple.com/en/app/kurs-valut/id831528898?mt=8

Comments

  1. How much did you spend on the designer?
  2. Seems the original author is not around. I guess the design was not that expensive. The author is from Russia, where you can hire a free-lance designer for up to a $1k (for a single app).
  3. Thanks. That’s not too bad I guess, although it could have taken a long time to get into profit if the app hadn’t have reached the top.
  4. Definitely. Devaluation has «helped» the app. I’m sure the author did not try to make any predictions related to the reduction in the value of a currency. At the same time, it’s a good lesson to learn — predictions can help you a lot, but they should never be considered as the only way to reach the goal, as any prediction may not come true. As a brief summary, I think it does always make sense to spend at least a little time on analysis, but never expect them to be 100% accurate.
  5. Just downloaded your app on 3G, hurray for small app size! BRL is falling too, so thanks for the app.
  6. This is an inspirational story! I’m currently working on a Siri-like app and hope I’ll have a chance to write similar article :) I also have to say, that this website has amazing content and your article fits great into it! Good luck with the app!
  7. Thanks for sharing your thoughts! Interesting post!
  8. Did you have a backend server for this app?
  9. Thanks. That’s not too bad I guess, although it could have taken a long time to get into profit if the app hadn’t have reached the top.
  10. Thanks for the post, it made me realize the importance of a simple fact that I have been ignoring so far.
3,751

Ropes — Fast Strings

Most of us work with strings one way or another. There’s no way to avoid them — when writing code, you’re doomed to concatinate strings every day, split them into parts and access certain characters by index. We are used to the fact that strings are fixed-length arrays of characters, which leads to certain limitations when working with them. For instance, we cannot quickly concatenate two strings. To do this, we will at first need to allocate the required amount of memory, and then copy there the data from the concatenated strings.