ТЕКСТ: АНДРЕЙ ЕРМОЛАЕВ. С удовольствием читаю недавно появившуюся рубрику Dev Story. Эти истории опровергают сложившийся стереотип, что сейчас в App Store могут чего то добиться только крупные компании с огромным маркетинговым бюджетом. Конечно, по сравнению с командами, которые презентовали свои приложения в “Dev Story”, я считаю себя просто любителем. Но, тем не менее, хочу рассказать свою историю. На своем примере, хотелось бы показать, что не все места в App Store заняты, и даже такой непрофессионал как я смог написать приложение, которое за 3 дня попало в десятку русского App Store в категорию Top Free iPhone Navigation Apps.
Как возникла идея
Я являюсь большим поклонником известной фруктовой компании и программирование это мое хобби. Захотелось мне написать что то для iPhone, но не просто какое то приложение, а что то полезное. Идея пришла почти сразу. У меня сын ходит в школу далеко от дома, и я часто звоню ему после уроков, чтобы узнать, как он добрался. Но очень часто я просто слушаю длинные гудки в трубку телефона, так как мой сын забыл после уроков отключить режим «без звука» на своем телефоне и просто не слышит мой вызов.

Конечно, я был не доволен данной ситуацией и решил для себя, да и для других родителей, у которых такая же проблема, написать такое приложение, которое работает в фоновом режиме и передает координаты телефона на сервер. А родители могут либо на сайте, либо на своем телефоне в любой момент посмотреть, где находится их ребенок. Другими словами стояла задача написать обычный GPS трекер.


Название для приложения пришло сразу Child locator, и я принялся за работу. Да в App Store были другие трекеры, но они все были на английском, а многие к тому же еще и платными.
Программирование и прохождение ревью
Само программирование больших трудностей не вызвало, но в процессе отладки возникли сложности в основном связанные с работой приложения в фоновом режиме и точностью GPS. В фоне приложение упорно определяло координаты не с помощью GPS, а по базовым вышкам сотовой связи с погрешностью 1.5 километра, что ни как не годилось. Интерфейс приложения сделан на русском языке, предусмотрены удобные настройки, по принципу настроил один раз, перевел в фоновый режим и дальше все работает автономно. Можно задать интервал, через который будут определяться координаты телефона, а также время начала и завершения отслеживания. Другими словами если ребенок идет в школу на 9.00 часов, а приходит в 14.00, то достаточно в настройках указать время старта 8.00 и время завершения 15.00 и каждый день приложение будет автоматически «просыпаться» в 8.00 и завершаться в 15.00, передавая координаты телефона на сервер.

А все остальное время программа будет в спящем режиме, экономя заряд аккумулятора и интернет трафик. Местонахождение отслеживаемого телефона можно посмотреть не только на сервере, но и со своего мобильного.
А вот с прохождением ревю Apple при публикации приложения возникли сложности. Дважды мое приложение было отклонено Apple и где то неделю оно находилось в статусе «In Review». Я добросовестно исправлял все, на что указывал мне Apple и вновь отправлял приложение на ревю. Трудности с прохождением ревю предполагались заранее. Зная, как трепетно относится Apple к «privacy», наивно было думать, что программа, отправляющая в фоне координаты мобильного на какой то сервер, сумеет быстро пройти ревю. Но все осталось позади, и 20 сентября Apple дал добро на публикацию программы.
Послесловие
Я и не предполагал, что так много школьников имеют iPhone, так как уже 22 сентября моя программа была на 7-м месте в русском App Store в категории Top Free iPhone Navigation Apps. Хотя конечно, подозреваю, что она используется и для других целей. Хотелось бы всем начинающим разработчикам под iOS, пожелать не бояться пробовать свои силы, ведь не боги горшки обжигают.
Цена: Free [iTunes link]


Молодец! Очень полезная программка! :)
@LogaN,
Спасибо!
@Andrey Ermolaev,
У меня выглядит так:
1-Место положение Германия с точностью 65 метров (в программе установлено 5 метров)
Через десять минут!!!
2-Место положения Экваториальная Гвинея-Буркина Фасо в нескольких км. в открытом море.
Странно, почему у меня навигатор так не ошибается?
@Physiklehrer2009,
1. Регулировка точности в настройках означает, что если Вам достаточно 50 метров, то программа не будет мучать GPS и аккумулятор в попытках определить координаты точнее. Но если вы поставили 5 метров это не значить что программа обязательно добьется этого результата. Значит точнее определить координаты не получилось, может Вы находились в помещении. Если программа 2. Если программа не может определить координаты по GPS то она пытается определить их по базовым станциям сотовой связи, если же и это не получилось, например Вы глубоко в подвале то на сервер передаются нули. А точка с координатами 0,0 как раз и находится в море около Гвинеи.
@Andrey Ermolaev,
Глубокий подвал находится на центральной площади областного немецкого города. Другие проги с определением местоположения не ошибаются (у меня их штук пятнадцать в телефоне)
Прога сутки гоняла меня по Африке (различные координаты)
После перезагрузки вернула меня в Германию. Место положение (все три точки за день) определила с точностью 1414 метров, тоесть определяет ТОЛЬКО по сотовому сигналу да и то неверно (в настройках разрешение на определение местоположения включено)
И совершенно непонятный косяк-когда набиваешь свой имэйл в программе то выезжающая клавиатура закрывает полосу с текстом-имэйл длинный и набирать его вслепую это уже вообще полный бред.
Надеюсь на скорое обновление, так как идея впринципе хорошая.
Заодно добавте чтобы так же как и в НАЙДИ СВОЙ АЙФОН можно было бы добавлять в учётку свои гаджеты, у меня двое детей-я что должен каждый раз вручную набивать регестрационные имэйлы и пароль? Сделайте списком гаджеты с указанием времени последнего сканирования-и если меня заинтересует где мой ребёнок то я выбераю на какую учётку я нажимаю чтоб посмотреть местоположение. Пароль прога должна помнить!