📜 ⬆️ ⬇️

The hard way novice in the top 5 Russian App Store

Greetings to all. Being a big fan of the products of one well-known fruit company, I decided to try my hand at developing for iOS. And now I want to share my experience and difficulties that I encountered while writing and publishing my own, actually the first, application in the App Store. Maybe my experience will be useful to someone. And there were plenty of difficulties. In the process of publishing on the App Store, the application was rejected 2 times and hung for the third time in “In Review” status for 6 days. As a result, my persistence won, the application was published and it fell into the top five Russian App Store in the category Top Free iPhone Navigation Apps. And so everything is in order.

The idea arose almost immediately


My child goes to school, which is far from home. Of course, I want to call him after lessons and check how he gets there. But the trouble is that at school they are forced to switch the mobile to the “silent” mode, and he always forgets to switch it back. And of course, it annoys me terribly when I call him 10 times, and no one takes the phone. So the idea arose, for myself and other parents, to write an application that, when installed on the phone, would in the background transmit the phone coordinates to the server. And parents can either on the site or on their phone at any time to see where their child is. In other words, the task was to write an ordinary GPS tracker running in the background for the iPhone. The name for the application came immediately Child locator, and I set to work.

Programming


Yes, I know that the bike has long been invented, and GPS trackers are already in the App Store and not one. But what I did not like them all. I had development tools. Sign up for a developer program Apple is not difficult. The programming process itself was not complicated, Apple described everything in detail (though as it turned out later, not all). The functionality itself took somewhere only 20% of both the time of writing and the total code amount. The rest of the time was spent on the interface. I start testing and here is the first problem: after ten minutes of work, the background process silently dies and stops transmitting coordinates to the server. I climb into the documentation and on the forums and find out that Apple gives each background process 10 minutes to complete all unfinished operations and then “kills” it. In order for the background process to work longer than 10 minutes, you must explicitly state in the info.plist file that the application is geolocation. Well prescribed, anyway something is not right. That works, that does not work. I start to figure it out and find out that Apple really doesn’t like it when applications run in the background in vain. It turns out if the time interval through which the background process determines the coordinates is less than 10 minutes, then everything is in order, everything works. If suddenly your background process 10 minutes “idle”, then iOS “will kill” it, no matter how it is registered in info.plist. And I have a maximum interval in the settings at which the coordinates of 30 minutes are determined, so I had to, regardless of the settings, make a timer and poll the GPS receiver every 9 minutes. And this problem is solved. But the problems are not over. Problems started with accuracy. While the application is active, the accuracy is excellent, sometimes the error is only 5 meters. Only I translate into the background and the error immediately almost 1500 meters. And who needs a GPS tracker with an error of one and a half kilometers. Again I read the forums it turns out that Apple doesn’t recommend using GPS in the background, and when I switch to the background instead of GPS coordinates, I’m slipping the coordinates from the cell phone towers. I find on the forums some sort of “shaman code” that creates a fake mapview in the background. Earned, accuracy improved significantly. Of course, there are doubts about how Apple will react to this in the process of reviewing, but time will tell. The application interface is made in Russian, convenient settings are provided, set up once on the principle, translated into the background mode and then everything works autonomously. You can set the interval at which the coordinates of the phone will be determined, as well as the start and end time of the tracking. In other words, if a child goes to school at 9.00 o'clock, and arrives at 14.00, then it is enough to specify the start time at 8.00 and the completion time at 15.00 and every day the application will automatically “wake up” at 8.00 and finish at 15.00, sending the phone coordinates to the server. And the rest of the time the program will be in sleep mode, saving battery power and internet traffic. The location of the monitored phone can be viewed not only on the server, but also from your mobile. The site, which shows the location of the phone, did quickly and simply. Frankly, I'm not a great expert on sites. Works and well.
')

Passage review


It all started as usual. Filled application through Xcode. Seven days later, the “In Review” status appeared. And I woke up in the morning, and in the mail a letter from Apple that the application was rejected. I somewhere counted on it. Knowing Apple’s reverent attitude to “privacy” and the recent scandal in which they were accused of secretly collecting user coordinates, I assumed that I would have to explain myself. It was naive to think that a program that sends mobile coordinates to a server in the background will be able to quickly go through a revue. I read what the claims. They requested a login and password for a test account with administrator rights and added to the program description that GPS work in the background will not end well for your battery. Good. The text in the description added, login and password sent. The application did not perezalival. During the day, the status again became “In Review”, and the next morning again the refusal. Again, I understand. Having received the login and password, they tried the program in work, and there is such an option that the location of the phone can be found not only on the site, but also from another phone knowing the login and password of the phone that is being searched. And when the location of the phone is displayed on the screen, there is a “close” button, which, you see, closes part of the Google logo on the map, which is very bad, so redo the binary comrade, and in one write what your prog is, that she needs a GPS in the background, and you can’t do without it. I rework the binary, fill it again, I write the explanation in broken English. The program again goes to the “In Review” status, and this status hangs for 6 days, although usually one day is enough. I'm starting to worry, maybe Apple forgot about me, but here comes the long-awaited agreement and the program in the App Store.

App Store


I wrote the application for myself, I didn’t count on anything, I didn’t insert advertising into it and didn’t plan to earn money on it. It was, so to speak, a first attempt at writing, but, of course, it was interesting how the audience would perceive my work. The application was published on September 20. In the afternoon I was busy with work, and after lunch I decided to see how my program is doing there. Opened iTunes and saw that the application is somewhere in the 78th place Top Free iPhone Navigation Apps. So that's it, I thought, and continued to work. In the evening, I again looked at the rating program was already at the 55th place. Here I was already interested and I began to observe. On the evening of September 21, the application entered the Top 10 Top Free iPhone Navigation Apps of the Russian App Store, and on September 25 it became the 4th. I never imagined that so many students have an iPhone. Although, I suspect that it is used for other purposes. By the way, 4th place, if anyone is interested, this is somewhere 1000 downloads per day.

Afterword


I liked developing under iOS. What was positive. I understood in practice how the App Store works, because reading articles and trying it yourself are two big differences. Received several job offers from reputable companies. Plans to write the next program, but already paid. The idea is already there. Of the negative, technical support is the most ungrateful work in IT. From the letters sent to me by users who did not succeed in something, you can make up a whole comedy club. And most importantly, I want to refute the myth that the time of loners in the App Store has passed, and it is time for monsters with giant advertising budgets. I think that if the application really solves people's problems, it will be popular. I would like to all novice developers for iOS, wish not to be afraid to try their hand.

PS Constructive criticism (not passing on the individual) perceived positively. My app is different from Find My iPhone. About 95% of the shortcomings of my application, users have already written to me. With the next update I will try to fix it. .

Source: https://habr.com/ru/post/129146/


All Articles