Как стать автором
Обновить

Комментарии 118

Любопытно — насколько сильно расходуется аккум?
В настройках есть интервал через который опрашивается GPS. И если этот интервал 20-30 минут то фактически аккумулятор не страдает, но если поставит 2 минуты то конечно за день посадит аккумулятор.
А как именно Ваше приложение отличается от find my iphone? Просто интересно.
У меня запоминается маршрут передвижения. Да и есть настройки в которых можно указать время начала отслеживания и время окончания. Можно также задать интервал, через который будут определяться координаты.
Понятно, спасибо.
А установка интервала опроса GPS у вас только на девайсе происходит? Или на сервере тоже можно? Думается что для особо беспокойных родителей было бы удобно устанавливать некоторые параметры через сервер.
Установка интервала опроса только на девайсе. Но Ваша идея мне понравилась. Тем более технически она решается легко.
Не очень понял, как вы решили описанную проблему с 10 минутами между запросами. И ждущий режим тоже не очень понятно.
Все очень просто. Раз в девять минут опрашиваю GPS, но ни как не использую эти данные. Вторую часть вопроса не понял.
Ну в самом начале вы написали, что проблема в убийстве фонового процесса если нету опроса gps в течении 10 минут. Не понимаю просто как в таких условиях вы делаете экономию энергии с интервалом в 20-30 минут и собственно ждущий режим, при котором приложение не должно (насколько я понимаю) вообще опрашивать датчик.

Или под опросом датчика вы имеете ввиду не запрос координат, а что-то менее энергозатратное? Просто с разработкой под телефоны пока незнаком, поэтому могу чего-то не понимать.
Постараюсь ответить подробнее. Определение координат не происходит моментально. Это немного непредсказуемый процесс, который зависит от того сколько спутников нашел GPS и т.д. Через интервал времени указанный в настройках я включаю GPS (хотя это не правильно так говорить) на 20 секунд, чтоб точность определения координат была максимальной. А каждые 9 минут я опрашиваю GPS чисто номинально пол секунды, только для того, чтоб iOS не убила фоновый процесс.
Теперь понятно, т.е., условно говоря, чем дольше запрос к датчику, тем больше времени у него на поиск спутников и тем точнее данные. Хотя звучит все равно очень затратно.
Спасибо.
НЛО прилетело и опубликовало эту надпись здесь
Вы почти правы. Но когда телефон в кармане спутники вполне видны. У меня при тестировании погрешность по базовым станциям была 1500 метров в городе. В комментарии выше речь шла об энергопотреблении, и я объяснял что GPS как раз и нужно время чтоб найти спутники и рассчитать координаты, по этому за одну секунду его опросить нельзя, а в это время «подсовываются» координаты определённые по базовым станциям.
НЛО прилетело и опубликовало эту надпись здесь
TomTom вообще плохо координаты определяет. iPhone в разы лучше и быстрее. Скорее всего тут A-GPS помогает, да
НЛО прилетело и опубликовало эту надпись здесь
намного это как? Судя по тому что мне iPhone показывает на карте — точность около 10м
НЛО прилетело и опубликовало эту надпись здесь
в процессе «поиска» текущей точки — может занести и в лес и в речку :) Просто сперва идет данные A-GPS, но через некоторое время (когда появились данные с GPS), координата становится точнее и точнее. В итоге показывает что надо. Думаю на 3G также
«А у меня в настройках максимальный интервал через который определяются координаты 30 минут, по этому пришлось, независимо от настроек сделать таймер и каждые 9 минут опрашивать GPS приемник.»

Значит фактический срок опроса 9 минут. Я так понимаю, что при настройке в 19 минут, то телефон будет опрашивать 9+9+1? Как же тогда 20-30 минут меньше едят батарею?

Как предложение — сделать разные интервалы опроса: зачем опрашивать каждые 5 минут положение во время занятий в школе?
Ответ прочитал выше =)
Ну вы не сравнивайте включение GPS секунд на 10-15 (пока спутники найдет, и.т.д.) и просто полсекундное обращение к GPS, только для того, чтоб приложение осталось работать в фоне.
Осталось только купить каждому ребенку по айфону.
Тоже недавно решил попробовать себя в этом деле, не знаете как можно отправить в app store приложение не платя 100енотов, так как зарабатывать на этом я точно не собираюсь, а попробовать интересно?
Никак. Только найти знакомого, который опубликует.
если регистрироваться только на распространение бесплатных приложений — $100 платить и не надо.
Насколько я знаю 100 баксов надо платить по любому.
Вы говорите, что при определении координат по вышкам сотовой связи погрешность составляет до 1500 метров, но как тогда определяются координаты, пока ребенок в здании школы?
Вот по вышкам и определяются. Да есть погрешность. Но все GPS так работают, что не ловят спутники в помещении.
В школе скорее всего есть wi-fi точки и по ним координаты телефон может определить куда точнее чем по вышкам. Ну и если ребенок сидит у окна и вокруг нет высоких зданий вполне может быть что и GPS сможет спутники увидеть.
Да и потом главная функция как я понимаю именно понять момент когда он выходит из школы. =)
Да нет главная функция узнать куда он двигается из школы. Домой или еще куда то.
Ага — я это ввиду и имею — когда вышел и куда пошел — а пока он в школе находится его координаты точные по любому не важны =)
Да да пока он в школе не страшно.
А откуда вы знаете, что в 11:00 он именно в школе, если координаты ±1500м?

Или вам всего навсего интересно куда он попёрся только после 14:00?
Именно так, пока он в школе я спокоен:) А вот после школы…
То есть это для дисциплинированных детей, которые с уроков не сбегают? Которых не похитят на перемене со школьного двора?

Это для только задумчивых детей, которые после школы могут после кафе-мороженного пойти в магазин игрушек, а после этого в кино?

Созрела идея: если вы знаете источник координат (сотовый/спутниковый), то показывать на карте последний спутниковый (перед входом в школу). Под крышей школы метания сотовых координат ±1500метров за побег/похищение не засчитывать.

Если именно спутниковые координаты поплыли в промежутке 8-14, то смс-звонок родителям.
Как раз во дворе GPS работает. На карте всегда показывается точность определения координат и если она меньше 500 метров я понимаю что ребенок в помещении. Я не думаю что сразу звонок родителям, хотя какую то смс-ку можно отправить. Вообще есть простор для доработок.
Посмотрел на AppStore. Приложение вроде полезное. Хорошо, что бесплатное.
Хоть и дизайнер (художник) Вам явно не помешает.

Но почему бы не написать топик все-таки о самой разработке, а не «ух ты, гляньте — я в апсторе».

Мне вот интересны подробности того «чего нет в документации», а их в тексте то и нет.

Может, напишите продолжение (техническое)?
Я вроде постарался все осветить как с технической точки зрения, так и прохождение ревю у apple. Ни чего такого, что нельзя найти в доках apple или в интернете я не использовал.
И как же мы жили без айфонов?!

Дальше, должен появиться аксессуар для смарфона, который будет брать анализ крови каждые 30 минут с 18:00 до 23:00, пока ребёнок гуляет, а то мало ли чем он там занимается.

Никакого доверия детям. Деградируем потихоньку.

Скорее в обозримом будущем это будет амулет на шею который записывает видео со звуком + может быть и запахи и передает в облако которое анализирует что-бы ребенок чем-то не тем не занялся =)
Доверие доверием, но родители все равно предпочитают знать, чем догадываться где ребенок и что он делает. =)
подобные аксессуары уже появляются, например небезызвестный Jawbone Up
Это из подобной серии, но пока для отслеживания самого себя (что конечно клево и я эту штуку тоже хочу конечно, еще подобный fitBit и амулет от филипса или типа того) — но родителям интересно именно отследить что с детьми происходит, причем желательно в реалтайме =)
В следующем году.
Причём намного больше, чем анализ крови — меряет давление, пульс, электрическое сопротивление кожи и т.д. и т.п., анализирует данные, передаёт на сервер, подаёт сигнал носителю в случае опасности.
Я гуглял во дворе и меня орали в окно. Норм. Я не имел права покидать территорию двора или заходить за соседний дом, т.е. пропадать из зоны видимости. Так и жили, если родители заботливые.
Наверное ни разу не бегали вместо всяких «кружков» к друзьям играть в компьютер? Ну не поверю. А теперь представьте, что этого всего у вас не будет. И как? Почему-то когда мы все дети, мы считаем себя взрослыми и ворчим на чрезмерный контроль, а сами, только вышедши из детского возраста уже думаем, что это же дети, им доверять нельзя. Вечная проблема…
Вообще сейчас мало чего изменилось, я по прежнему на связи. И это хорошо.
По поводу компа — у меня он был лучший на районе. Так что в основном ко мне бегали.
Я когда маленький был вообще специально спрятался и наблюдал, как меня ищут. Так маме чуть скорую не пришлось вызвать. А мне хорошо влетело. Дети есть дети.
Да, с айфоном будет ещё веселее. Ребёнок решил проверить, как его родители «любят» и положил свой айфон в какой-нибудь мусоровоз. Дальше сюжет будет такой же, ребёнку влетит.

Дети всегда шкодят. И им потом достается.
Ребёнок решил проверить, как его родители «любят» и положил свой айфон в какой-нибудь мусоровоз.
со всеми контактами, вконтактами и фермами? Что-то я сомневаюсь…
Плохой дядя может увести ребенка. Такая мысль в голову не приходила?
Поработайте над дизайном, добавьте баннер и возможность его убрать за $.99
Труд должен оплачиваться (или вознаграждаться, кому как больше нравится)
Спасибо, добрый человек.
Странно, почему вы не добавили в статью ни ссылок, ни скриншотов…
Я рассказал про сам процесс, не хотелось чтоб это воспринималось как реклама.
Визуальная информация легче воспринимается.
И статья выглядит живее )
Учту на будущее.
Не поздно еще добавить в топик скриншоты и ссылки на сайт / на само приложение :)
А правильно ли я понял, что до написания этого приложения опыта/знаний программирования под iOS не было?
Правильно небыло.
О! Интересно! А на чем до этого программировали?
Да особо ни на чем. Разве, что в 90-х на паскале.
О! Так это еще интереснее! Значит и у меня есть шанс! :) Спасибо за статью!
Так я ж чего и написал. Не надо боятся пробовать свои силы. Как говорится дорогу осилит идущий.
Сколько времени у вас ушло на разработку?
Два месяца. Включая 2 недели «бодания» с Apple. Сам функционал не сложен, много времени я потратил на интерфейс и отладку приложения. Только одна отладка заняла недели 3 (как раз было лето и при поездке на море подключал телефон к ноутбуку и ехал пока не садился аккумулятор в ноутбуке. Потом смотрел логи. И корректировал код.
Не подскажите, что читали? Особенно про С/Objective-C.
У меня такая же ситуация, знаю паскаль, а про ООП — только в общих чертах.
Сам хотел задать такой вопрос, но раз ответа от автора топика нет, поиск по хабру тут же дал, наприер, такое: habrahabr.ru/blogs/macosxdev/127038/ Там и названия книг есть. ;)
Не боитесь ребенку айфон давать? Фиг с ним если просто отберут, но ведь может и по лицу получить от гопников каких-нибудь. Меня вот это сильно останавливает.
Больше боюсь, что он его забудет где то. Он такой рассеянный. А отобрать могут любой телефон.
А как работает схожее с вашим по функционалу приложение Google Latitude?
Его можно даже прибить — оно будет продолжать посылать координаты на свой сервер.
Отключается только в настройках айфона запретом GPS для приложения.
Оно больше позиционируется как социальное и наверняка не показывает маршрут.
Свой маршрут просмотреть можно, как-то так:

Но я имел в виду не само приложение, а то, как оно может передавать координаты с GPS даже в выключенном состоянии.
Этого я не знаю, может Apple поделился с ними какими то секретами, которыми не делится с обычными разработчиками. Но насчет в выключенном состоянии это я сомневаюсь.
Попробуйте установить эту программу, активировать трэкинг, расшарить положение с другим гуглоаккаунтом, потом закрыть приложение, прибив его в списке запущенных приложений.
У меня сейчас нет iOS-девайсов под рукой, поэтому не могу потестировать, переживёт ли оно ребут. Но выключение переживало, потому я и подумал, что приложения могут как-то регистрироваться в качестве сервисов.
Сегодня проверил. Рассказываю все как есть (плюс вода и плюс мои домыслы) :)

Начиная с версии iOS 4 в которой появилась многозадачность при перезагрузке устройства система как бы запускает все приложения которые были запущены до перезагрузки. Хотя похоже это происходит формально — иконка в панели задач есть но реально приложение стартанет если на нее нажать. Во всяком случае Скайп так себя ведет.

Похожая функциональность добавлена в настольную ОС Lion которая по умолчанию запускает все программы запущенные в момент выключения.

Но то о чем вы говорите из другой области.
Если мне не изменяет память начиная с версии iOS 4.0 в API добавлена возможность для приложений зарегистрироваться на уведомление при значительном изменении координат телефона. Эта функциональность направлена на всяческие приложения для социальных сетей которые могут обновлять статус и местоположение пациента. Правда насколько я понял используется для этого информация сотовых вышек. Во всяком случае чтобы инициировать событие. Latitude, например, довольно точно показывает положение товарища. Все таки оно использует GPS для этого. Но вполне возможно что инициирует событие перемещение относительно сотовых вышек.

Сегодня специально проверил запущено ли приложение Google Latitude у товарища обновление местоположения которого я вижу. И как я и подозревал, приложение не было запущено. Получается, если это не баг и хитрость Гугла, приложение Google Latitude получает управление будучи как бы не запущенным. Возможно так и задумано.
Отключается это в самом приложении опцией Background Updating.

Да и вообще с текущей реализацией многозадачности и «замораживанием» запущенных приложений при переключении в другое само понятие «запущенного» приложения становится размытым. :)
Ответил Вам по почте.
Я внимательно все прочитал, но так и не понял зачем было написано это приложение. Вернее не так, зачем — это я понял, было интересно попрактиковаться в написании под iOS. Вернее спросить так: какие задачи решает это приложение?

Из постановки проблемы было видно, что состоит она в том, что нельзя дозвониться ребенку. Наверное надо было писать приложение с помощью которого можно дистанционно включить звук? Понятия не имею возможно ли это на iOS, но это то, что требовалось. С данным приложением дозвониться так и не получится, задача не решена.

Идем далее. Наверное хотим быть спокойны, что знаем где ребенок.

замечательная настройка «каждый день приложение будет автоматически «просыпаться» в 8.00 и завершаться в 15.00»

Что будете делать, если в 15.00 ребенка нет дома, а ваше приложение экономит аккумулятор? Все-таки заходить в Find my iPhone, которое «другое, не такое, не мое, и вообще какое-то противное», но работает когда это необходимо?
Поставьте другие настройки. Никто не мешает вам поставить интервал 00:01-23:59. Звук включить дистанционно нельзя. Дальше не понял. Я ничего не рекламирую. Я рассказываю свой про свой опыт, какие задачи ставились и как достигались. Если мое приложение поможет еще кому то решить схожую проблему буду только рад. Каждый может поставить то приложение, которое ему больше нравится. Мое приложение конечно не без недостатков, но его скачивают и устанавливают.
Я с этого начал. Расскажите какая задача ставилась и как решилась.

Настройку со временем работы я упомянул именно потому что «приложение писалось для себя», значит я предполагаю, что вы ей пользуетесь. Как будете поступать в случае, если приложение уснуло не дома?
>>Звук включить дистанционно нельзя.

Однако приложения могут издавать звуки даже если «рычажок» телефона в положении «без звука». Это отлично демонстрирует, например, Sygic, озвучивая маршрут даже в режиме «без звука» у телефона.
Вот и надо было делать функцию дистанционного включения «дилилиньканья» через свое приложение, типа «включи звук, я пять раз звонил уже!!».
Вот этого я не знал, я проверю. Спасибо.
Правда это же самое можно через Find my iphone сделать… Но ладно, молчу, молчу.
Он не показывает маршрут.
Я про включение звука говорил.
И я еще спрошу. А маршрут реально так важен? А зачем? Ведь обычно нужно знать просто «где в данный момент», а каким путем — дело десятое.
Я думаю важен, иначе я бы все это не затевал. А пользовался бы апловской прогой найти телефон. Я же не буду все время перед компьютером сидеть. А так раз и получил маршрут.
Вы принципиально никогда не даете ответ на мой вопрос «зачем».
Я предполагал, что от программы которая строит маршрут можно получить маршрут. Варианта А так раз и получил… текущее положение недостаточно?
Мне недостаточно. И другим пользователям моего приложения тоже. Мне нужен был маршрут моего ребенка. Хотя бы для того чтоб если телефон пропадет из виду видеть последнюю локацию.
Последнюю, потому что предполагается, что она будет наиболее близкой к неизвестной текущей, верно? Значит все-таки плавно приходим к тому, сам трек-то и не нужен, нужна знать все-таки текущее местонахождение.
В дроиде это разные регуляторы звука — когда заглушаешь телефон, звуки multimedia, будильник (и громкость телефонного разговора) остаются нетронутыми.

Я это понял так.

MRIM, кажется, пользуется громкостью music, потому булькает даже в mute.

Xabber вроде бы пользуется громкостью notification, и глохнет на mute.

Круто!!! Деньги теперь лопатой гребете)
Откуда деньги прога то бесплатная:) Я получил опыт, а это, иногда, лучше денег.
больше опыта — больше денег)
Есть повод подумать над платной PRO версией ;)
Повод есть, но чувствую пока еще не готов. Хотя думаю над этим. Тут хабражители, пишущие под андроид, хотят написать что то подобное для андроида. И вот если это объединить, чтоб с андроида можно было узнавать координаты iPhone и на оборот, т.к. родителей согласных дать телефон с андроидом ребенку в школу гораздо больше тех, кто готов дать iPhone. Вот тогда можно будет подумать над этим.
Поздравляю) Но хотелось бы узнать с чего конкретно начали изучение программирования под ios? Что читали, писали ли сначала мелкие прожки дабы закрепить знания?
А как же и читал документацию Apple, форумы разные и писал мелкие программы.
Ну это вы очень абстрактно. Я надеялся что вы дадите ссылки на те форумы которые по вашему мнению наиболее полезны, блоги, если таковые были, и тд.
Если время будет и силы, просим добавить конкретики.
Ссылки на форумы, шаманский код и проч. :)
Первая мысль — поставить жене на телефон и посмотреть…
Странно, но мне всегда казалось, что любые отношения должны в первую очередь быть доверительными, а иначе им недолго осталось…
Очень здорово, поздравляю!
Если не сложно, расскажите чем гугл-локатор не устроил?
Не могу сказать, что не устроил, просто у него гораздо шире предназначение. Это приложение для общения и в том числе он решает задачу определения координат. И даже в App Store он находится в разделе social networking. Я же сделал приложение решающее более узкую задачу. Настроил, запустил в фоне и все.
«И самое главное, хочется опровергнуть миф о том, что время одиночек в App Store прошло, и настало время монстров с гигантскими рекламными бюджетами. Думаю, что если приложение реально решает проблемы людей оно будет популярно.»
Забыли добавить — «бесплатное приложение будет популярно». Потому что раздавать что-то бесплатно и продавать что-то — это две большие разницы. И далеко не факт, что ваше приложение было бы столь же популярно, если бы оно стоило денег. Наглядный пример:
habrahabr.ru/blogs/android/125529/
Приложение ценой около 3$ купили около 40 человек, а скачали бесплатно (за 1 день) — сто тысяч.
Так что ваше заявление о развенчивании мифа мне кажется немного сомнительным.

А в целом — было интересно почитать, хотя совсем не разработчик и не айфоновладелец.
Конечно «за деньги», статистика была бы совсем другой. Я считаю, что платными надо выкладывать доработанные и «отточенные» приложения. Свое приложение, я пока таким не считаю. Но и на бесплатных приложениях можно зарабатывать на рекламе. Просто мое работает в фоне и реклама в нем бессмысленна. А никому не нужное приложение не будут скачивать даже бесплатно. Думаю что сравнивать Android market и App Store не совсем корректно, это немного разные вещи.
Мне не кажется это сильно некорректным, в чем такая сильная разница между этими маркетами?
Естественно, что бесполезное приложение никто и даром не скачает. Но проблема в том, что маркеты насыщены приложениями и очень многим платным можно найти тот или иной бесплатный аналог.
Насчет заработка на рекламе — не знаю, не совсем уверен что это принесет сколько-нибудь значимый доход.
P.S. Да, предложение работы и все остальное, что вы перечислили — это тоже весьма неплохо, но все-таки это не доход в явном виде.
Я не ставлю пока себе цель заработать на этом. Программирование это скорее пока хобби.
«Но вот беда, в школе заставляют переключать мобильный в режим «без звука», а переключить его обратно он всегда забывает.»
А на иОС нет приложений, в которых можно составить расписание переключения профилей и полностью настроить несколько разных профилей? На Андроиде таких приложений как минимум 3 (из самых расспространенных). Пользуюсь одним в режиме ночь/в пути/работа/в пути/дом/ночь и уже забыл как вручную переключать профили.
Насколько я знаю нет.
На IOS нельзя трогать основные ф-ции устройства (в целях защиты казуального юзера от установки кучи того, не знаю чего и последующего разочарования/жалоб в Apple).
Такие пересели на андроид и теперь жалуются как у них заряд быстро садиться:)
Мда… И что тут страшного, если коммуникатор сам будет менять профили? 21й век как бэ… Мда… Хорошо, что я не купил яблоко.
Могу помочь с оформлением сайта, если хотите :) с UI приложений iPhone не сталкивался, но тоже можно попробывать :)
Да сайт конечно сделанный на коленке. Но наверное вначале доработаю приложение, а потом займусь сайтом. Спасибо за предложение.
Обращайтесь если что :)
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории