ТЕКСТ: АНДРЕЙ ЕРМОЛАЕВ. С удовольствием читаю недавно появившуюся рубрику 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]
48 комментариев
Форум →Молодец! Очень полезная программка! :)
@LogaN,
Спасибо!
@Andrey Ermolaev,
У меня выглядит так:
1-Место положение Германия с точностью 65 метров (в программе установлено 5 метров)
Через десять минут!!!
2-Место положения Экваториальная Гвинея-Буркина Фасо в нескольких км. в открытом море.
Странно, почему у меня навигатор так не ошибается?
@Physiklehrer2009,
1. Регулировка точности в настройках означает, что если Вам достаточно 50 метров, то программа не будет мучать GPS и аккумулятор в попытках определить координаты точнее. Но если вы поставили 5 метров это не значить что программа обязательно добьется этого результата. Значит точнее определить координаты не получилось, может Вы находились в помещении. Если программа 2. Если программа не может определить координаты по GPS то она пытается определить их по базовым станциям сотовой связи, если же и это не получилось, например Вы глубоко в подвале то на сервер передаются нули. А точка с координатами 0,0 как раз и находится в море около Гвинеи.
@Andrey Ermolaev,
Глубокий подвал находится на центральной площади областного немецкого города. Другие проги с определением местоположения не ошибаются (у меня их штук пятнадцать в телефоне)
Прога сутки гоняла меня по Африке (различные координаты)
После перезагрузки вернула меня в Германию. Место положение (все три точки за день) определила с точностью 1414 метров, тоесть определяет ТОЛЬКО по сотовому сигналу да и то неверно (в настройках разрешение на определение местоположения включено)
И совершенно непонятный косяк-когда набиваешь свой имэйл в программе то выезжающая клавиатура закрывает полосу с текстом-имэйл длинный и набирать его вслепую это уже вообще полный бред.
Надеюсь на скорое обновление, так как идея впринципе хорошая.
Заодно добавте чтобы так же как и в НАЙДИ СВОЙ АЙФОН можно было бы добавлять в учётку свои гаджеты, у меня двое детей-я что должен каждый раз вручную набивать регестрационные имэйлы и пароль? Сделайте списком гаджеты с указанием времени последнего сканирования-и если меня заинтересует где мой ребёнок то я выбераю на какую учётку я нажимаю чтоб посмотреть местоположение. Пароль прога должна помнить!
Можно просто воспользоваться Find my Phone.
@yakudza9,
Find my Phone не показывает путь. А показывает только текущие координаты. Это не совсем то.
Прога прикольная.
Но есть вопрос, а что происходит когда ребенок сидит в классе , а GPS сигнала нет и он постоянно ищет сигнал
и как насчет расхода батареи в это время?
@Tolin,
GPS не работает все время. Можно в настройках выставить его на включение раз в 30 минут. Такая частота фактически ни как не сказывается на аккумуляторе, дети игрушками его больше садят. Когда нет GPS координаты определяются по базовым станциям. Правда погрешность великовата, но общее представление дает.
@Andrey Ermolaev, Да и еще пару замечаний, нужно запароленное меню где можно включить и выключить или изменить аккаунт, а то просто обычным нажатием можно вырубить прогу и еще чтоб она была невидима в трейе и чтоб нельзя было удалить из списка программ и из памяти.
@Tolin,
Присоеденяюсь, плюс всё что написал выше.
@Tolin, сигнал и так всегда ищется, есть он или его нет. Если не ловит gps то можно приблизительно определить по gsm/3g
Вот только Google Locator появился раньше и с таким же функционалом ..
@Dr.Aibolit,
Я ненашёл такой проги в Сторе, можеш кинуть ссылку?
1. Неясно какую картографическую базу использует программа! ПХотелось бы чтоб она использовала Яндекс.Карты, потому что в регионах покрытие Google Maps не просто плохое – оно отсутствует!
2. Есть ли гарантия что оно не жрет бешено память и аккумулятор? Кто это проверял и как тестировал?
Спасибо
@RocketJump,
1. Использует Google Maps. Думаю под Яндекс.Карты переделать будет не сложно. Саму программу переделывать не надо будет, только на сервере переписать часть кода. Учту Ваше замечание.
2. Гарантий конечно дать не могу, но тестировал. Памяти много не жрет, а аккумулятор в зависимости от настроек. Конечно если передавать координаты каждые 2 минуты, то за сутки посадит аккумулятор. А если поставить нормальный интервал минут 20-30 то на аккумуляторе почти не сказывается.
Андрей, спасибо за программу! Можно ли сделать так чтоб не вводить постоянно логин и пароль? И если это не сложно сделать Openstreet map:) в Барнауле ни яндекскарт ни гугл карт:(
@HELM,
И Вам спасибо! С Openstreet map никогда не работал, думаю быстро не получится. Но надо по пробовать, не думаю, что там API сложнее гугловского или яндексного. Боюсь без логина и пароля не получится:) Но если Вы уже вошли на страничку где карта, нажимайте просто “обновить” в браузере и информация будет обновляться.
Программа – наполовину фейк.
Как и многие подобные существующие в аппсторе фейки, которые обещают то, что не могут делать, а мелким шрифтом потом пишут, что приложение требуется запустить, активировать и т.п.
Реальное отслеживать положение можно только с родным приложением Эппла – Find My iPhone и сервисом me.com (mobile me) – т.к. это не требует запуска приложения и вообще нахождения его в фоне. Да и доступ к отключению этого можно закрыть через родительский контроль. В общем, родителям рекомендую использовать аутентичный Find My iPhone.
Сторонее же приложение подобное этому любой школьник отключит за пару секунд – не говоря уже о том, что простая перезагрузка телефона также убьет это приложение.
Единственный плюс (не учитывая минусы) описываемого приложения – возможность просмотра предыдущих положений, а не только текущего.
@HappyByte,
Во первых, программа не предназначена шпионить за кем либо. Во вторых, она полностью бесплатна и не нуждается ни в какой активации. В третьих, конечно же она легко отключается, еще раз повторюсь это не шпионская программа и ставится добровольно, ну в случае с детьми добровольно-принудительно:).
Что бы использовать Find My iPhone нужен Apple ID и включить данную услуги у Apple. Вот у меня например к моему Apple ID привязана банковская карта и я не хочу однажды узнать, что мой ребенок с приятелями накупил игр на 100 баксов.
@Andrey Ermolaev, для Find My iPhone логин вводится отдельно от store – не накупят – не бойтесь.
@HappyByte, в Find My iPhone нет истории передвижений.
@Артур Малосиев, ну я про это и написал – что полезная фича. В остальном нестабильно, т.к. требуется запущенное приложение в бэкграунде.
@HappyByte, данное приложение и find my iphone разные вещи и сравнивать их считаю как минимум глупо.
Да и если нет wi-fi разве найдется телефон? Нет конечно же (:
@Andrey Ermolaev, Здравствуйте! Скажите пожалуйста, если телефон выключить или выключить телефон и вставить новую сим-карту ТО определить где находится ребенок/телефон будет не возможно, правильно понимаю? Да и наверное нет таких программ, обязательно требуется наличие чего то.. :(
@red_lacosta,
[quote]
Да и если нет wi-fi разве найдется телефон? Нет конечно же (:
[/quote]
Найдется конечно. У меня находятся далеко далеко в лесах ;) Еще бы по СМС находилось, если нет GPRS/EDGE/3G – было бы вообще круть, но такого тоже нет.
@red_lacosta,
Абсолютно верно. Если выключить телефон то все:(
Под iPhone, думаю, таких программ точно нет.
ВОПРОСЫ
1) я могу на один емейл зарегестрить 2-3-4 телефона ?
заводить каждый телефон на отельное мыло как то не удобно
2) я бы добавил кнопку ПОСЛАТЬ ТЕКУЩЕ ПОЛОЖЕНИЕ немедленно. А то нажал кнопку следить и прошло некоторое время пока сайт получил первую инфу
Кроме того посмотрите сайт Life360 – там есть подобная кнопка Emergency.
3) что это за красное огромное пятно на карте ???
это глюк или специально так ? зачем?
@deeper44,
1. Нет не можете, к сожалению. Ведь связка e-mail и пароль идентифицирует телефон. Да, некоторое неудобство есть, но я и подумать не мог, что кому то необходимо отслеживать 4 телефона. Наверное, когда выпущу апдейт сделаю чтоб можно было с помощью одного аккаунта (назовем его родительский) отслеживать несколько телефонов.
2. Если время запуска программы попадет во временные рамки, которые указаны в настройках (начать отслеживание/остановить отслеживание), то координаты передаются немедленно. Про кнопку Emergency подумаю.
3. Возле каждой найденной локации есть красный фоновый кружок, его радиус соответствует точности с которой определились координаты. Т.е. процентов на 98 телефон внутри этого круга. Если телефон долгое время не двигался эти кружки накладываются друг на друга и получается ярко-красный круг.
Далее
что будет если три часа не было инета ?
телефон будет сохранять положения в течении этого времени локально а потом пошлет все на сервер когда появится связь?
Надеюсь будет иначе не умно …
когда на айфоне начал вводить логин другого телефона то клавиатура тупо закрыла поле ввода опс
@deeper44,
Есть такое, исправлю в следующей версии.
вводить конечно каждый раз полный емейл для другого телефона это неудобняк
ну где забота о юсере ???
ну вы пишите прогу под айфон а не винду :)
посмотрите опять же Life360 там надо ОДНО нажатие чтоб выбрать кого найти да еще и фото и тд
@deeper44,
Забота о пользователе не должна противопоставляться настройкам приватности. Life360 посмотрел, учту.
Вот если бы программа была на андроиде, а отслеживать с iPhone, было бы вообще круто! А то давать детям iPhone в школу страшно – не столько за телефон, сколько за здоровье детей.
@erik, ну там стоит СОКОР БУДЕТ под андроид :)
Не пойму что все пристали к автору насчет точности определения координат.
Используется стандартная функция, а не собственный алгоритм.
То есть, если программа показывает, что телефон в Гвинее, то любое другое приложение, что Гугл Мепс, что еще кто-нибудь покажет то же самое.
Может быть кто-то и переживает, что ребенок отключит ее, ну так это проблемы в отношениях с ребенком.
Нормальные дети не скрывают свое местоположение от родителей и понимают, что это в целях их же безопасности, а не для тотальной слежки за ними. Если же прога для слежки, то проблемы уже в голове у родителей.
АВТОРУ бальзаму :)
ну хочу похвалить :)
Прочитав статью убил два часа на вашу софтину, Life360, TraceSaver
TraceSaver – удалил — не понятно как посмотреть прямо счас положение телефона. И он пытается больше изучать качество мобильного провайдера Мне не надо оно
Life360 — наиболее качественная софтина + сайт
но она как бы для дружной семьи где все думают о безопасности
каждый может каждого видеть что ли – послать сообщение
Ваша и прога и 360 простояли два часа — я как раз съездил круг по городу
360 даже не заметила что я посетил один район! Опс
и второй район отметила точку в дороге а не точку где я пробыл 30 минут
а вот Ваша прога на удивление отметила оба района – причем как раз те места где я остановился и пробыл 5-30 минут …
то ли случайно так совпало … Я поставил 20 минут интервал
Это наводит на мысли
1) добавить АКТИВНЫЙ поиск прогой – скажем раз в минуту
бесплатный файфай я если человек движется по городу и авто подключение чтоб передать данные на сервер
2) если у меня стоит 30 мин интервал то как бы можно съездить и вернуться на 10-20 км и прога не заметит — не хорошо
может быть все таки проверять координаты почаще и ЕСЛИ они активно изменяются то все таки плевать на временной интервал и регистрировать перемещение
У вас есть потенциал
но надо очень сильно улучшить сайт –
возможно в нем сделать заточку под разные нужды
* отслеживать грузовики или бродяг сотрудников
* отслеживать членов семьи по доброй воле
* не по доброй воле
* поис своего телефона
точно нету возможности на iOS запускать какие то софтинки на загрузке телефона ? Даже если сидия стоит? кто то знает ?
@deeper44,
Спасибо!
Да сайт, чуть сыроват. Согласен.
Не знаю как в сидии, а apple точно не пропустить такую программу в App Store
С таким потенциалом для доработок и расширения функционала можно делать платную версию, вложившись в разработку. Сделать английскую локализацию, например.
Хотя, Россия как раз и отличается широкой душой! Буду рад, если создатель не забросит проект, найдёт единомышленников и разовьёт проект в бесплатный полноценный ресурс.
Готов тестировать программу на энтузиазме :)
@Zakh,
Спасибо! Да доработок уже накопилось много. И если приложение так быстро не изменить, то серверную часть уже сегодня подправил. Убрал из выдачи на карту координат с нулевой широтой и долготой, которые иногда появляются если GPS теряет спутники, и переносят пользователя в район Экваториальной Гвинеи.
А у меня не работает… :( Зарегистрировался, включил отслеживание. Уже прошло много времени, а на сайте сообщение “В базе отсутствуют координаты телефона”…
А во время работы приложения должна быть синяя стрелочка вверху? у меня нет.
И еще в списке приложений, использующих геолокацию, Child locator отсутствует. Это нормально?
@fisenich,
Странно.
Да когда опрашивается GPS должна быть стрелочка вверху. Проверьте еще раз настройки и программы и Вашего телефона. А у Вас вообще GPS работает в других программах?
@Andrey Ermolaev, Вообще GPS работает. На данный момент я нахожусь в здании, но Яндекс или Гугл карты показывают нормально, т.е. по вышкам точно видится положение.
@fisenich,
Если напишите свой логин, я проверю по базе что там и как.
@Andrey Ermolaev, написал через форму на сайте
@fisenich,
Ответил Вам.
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Почему некоторые беспроводные мыши не работают на Mac под Windows
Как использовать GIF-картинку в качестве живых обоев на iPhone
Почему после обновления до iOS 10.3.2 зависает iPhone
Добавляем пустой виджет на экран блокировки iOS 16. Настройте локскрин по-своему
Что делать, если MacBook завис и после «хард ресета» не включается
Как полностью отключать Wi-Fi и Bluetooth в iOS 11
Как исправить ошибку 0xE8000001 при подключении iPhone?
При запуске iTunes появляется ошибка webkit.dll. Что делать?