Dev Story Pocket Level. История об уровне + Конкурс

Информатор avatar | 69
FavoriteLoading В закладки
Pocket Level. История об уровне + Конкурс
ТЕКСТ: АЛЕКСЕЙ ИЛЬИН. Лето на даче – это весело! Нет, серьезно. Лично у меня всегда куча дел по хозяйству, для которых имеется внушительный набор инструментов и измерительных приспособлений.
Среди них, конечно, есть и строительный уровень.
Вы, наверняка, знакомы с этим прибором: такая штуковина с маленькой колбой, в которой смешно болтается пузырек воздуха.
Несмотря на свою простую конструкцию, уровень – довольно сложный в производстве прибор, обеспечивающий высокую точность измерений, а производителей колб можно пересчитать по пальцам.

И вот это замечательный инструмент понадобился мне для разметки места под полки. Порывшись в ящиках и не найдя там уровня я вспомнил, что скорее всего я его оставил в городе и вешать полки придется «на глаз». Или «на айфон»?!

Конечно, ведь во многих смартфонах сейчас есть акселерометры и данный продукт яблочной компании в их числе. А если есть акселерометр, значит можно измерить ускорение свободного падения, вектор которого направлен строго перпендикулярно линии горизонта. Измерять абсолютную величину УСП для определения угла к горизонту, конечно, смысла нет. Но, к счастью, акселерометры измеряют не абсолютное значение, а его проекцию на одну из своих осей. Поэтому их обычно устанавливают в количестве трех штук – по одному на каждую ось нашего трехмерного (и на том спасибо) пространства. Так что в состоянии покоя показания акселерометра – значение проекции ускорения свободного падения, которое, соответственно, будет изменяться при наклоне датчика (в общем случае). Значит, техническая возможность измерить угол относительно горизонта есть. А как с реализацией?

Запускаю App Store, набираю «spirit level». Ага, да их тут пруд пруди! Однако, после установки десятка приложений стало ясно – там есть что улучшить. Почему-то, чтобы мерять вертикальные углы разработчики добавляли вторые колбы и шкалы каких-то неведомых приборов, калибровка у 90% приложений сводилась к “положите на эталонную поверхность и нажмите кнопку” – как и где я найду эталонную поверхность, если у меня нет уровня?! Где-то не отключался звук, где-то в самый ответственный момент гас экран, каким-то инструментом можно было измерить паралакс, в какой-то был встроен вероятор событийного потока. Но так, чтобы просто ровно полку повесить – нашлось всего пару приложений.

На тот момент у меня был перерыв в основном проекте и задача реализовать точный, удобный инструмент показалась мне интересной. Тем более, что я иногда пишу софт для пром. автоматики и пройти мимо возможности поработать с гироскопами и акселераторами я не смог.

В общем, в ожидании апрува основного проекта я взялся за Pocket Level. Удивительно, но среди iLevel-ов 3D и прочих Spirit Bubble Level было не занято такое подходящее название. На всякий случай, я решил посмотреть, не продается ли по такому случаю pocketlevel.com, а он свободен! Раз так – надо брать! И я взялся за работу, сформулировав перед этим основные требования к будущему приложению:

1. Максимально возможная на данном оборудовании точность измерений.
2. Измерение углов в любых положениях (горизонтально, вертикально и, скажем так, плашмя)
3. Максимально приближенный к реальности интерфейс – можно просто число вывести, но наглядность классического уровня очень упростит работу с приложением.
4. Сохранить наглядность при измерении любых углов, а не только углов в 0/90/180 градусов.
5. Звуковая индикация приближения к нулю.
6. Инструмент должен хорошо лежать в руке, никаких лишних переключателей.

Не стану углубляться в пучину кода, по этой части проблем и неразрешимых препятствий не было. Да и ноу-хау как таковых не пришлось выдумывать. Основная нагрузка пришлась на интерфейсные работы. На исходе третьей недели, продолжая ломать голову над компоновкой элементов управления, я очень хорошо понимал разработчиков, которые «тупо» воткнули три колбы и, как говорится, не парились. Я же принципиально не хотел городить ничего сверх одной колбы и как-либо переключать вид – инструмент должен быть монолитным.

Решение с вращающейся колбой показалось мне очень удачным. А металлический дизайн окончательно расставил все по своим местам. Осталось реализовать модуль калибровки. Надо сказать, что погрешность на четырех, доступных мне устройствах, составляла от 0,3% до 0,8%. Применительно к задаче это 1-2 см/м! Так что без калибровки уровень из iPhone довольно кривой. Пришлось вспоминать, как звали учителя математики и прочую тригонометрию. Я даже взял определитель матрицы 4х4! Не с первого раза, конечно… Чтобы убедится, что алгоритм калибровки интуитивно понятен, были проведены опыты над котом и другими членами семьи. Кот, кстати, единственный кто все понял и вообще не задавал вопросов.

И мне кажется, что получилось хорошо. По крайней мере, я уверен, что полностью реализовал возможности приложения. Один из тех редких случаев в моей практике, когда не хочется ни улучшить, ни добавить.

Цена: $0.99 [iTunes link]

Конкурс

У нас имеется 25 промо-кодов.

Докажи, что ты айМаньяк и у тебя дома есть ящик с инструментами. Пришли свое фото на [email protected].

Самым креативным мы вышлем код на бесплатное скачивание этой замечательной программы. Итоги подведем в 23:00 сегодня. Время есть, уважаемые столяры, маляры и плиточники 80 уровня.

Победители

Было прислано много фотографий инструментов. Однако в задании было сказано «Докажи, что ты айМаньяк», а не робот, управляемый механизм или дух Шекспира. Пока что только на одной фотографии имеется изображение живого человека в окружении инструментов и гаджетов.

Андрей Клыгин

Unknown получает код за креатив

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

Данная история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (Проголосуйте первым за статью!)
undefined
iPhones.ru
ТЕКСТ: АЛЕКСЕЙ ИЛЬИН. Лето на даче – это весело! Нет, серьезно. Лично у меня всегда куча дел по хозяйству, для которых имеется внушительный набор инструментов и измерительных приспособлений. Среди них, конечно, есть и строительный уровень. Вы, наверняка, знакомы с этим прибором: такая штуковина с маленькой колбой, в которой смешно болтается пузырек воздуха. Несмотря на свою...
Прокомментировать

🙈 Комментарии 69

  1. PAHETKA avatar
    PAHETKA25 октябрь 2012
    0

    Отличная история. Коту привет.

  2. iBeginner avatar
    iBeginner25 октябрь 2012
    0

    Хороший layout текста :)

  3. raskladnoy avatar
    raskladnoy25 октябрь 2012
    0

    Я правильно понимаю, что для калибровки не требуется эталонная поверхность?
    но как?

    Алексей avatar
    Алексей25 октябрь 2012
    0

    @raskladnoy, очень просто – если поставить уровень на измеряемую поверхность, а затем развернуть его на 180° то, в идеале (если уровень идеальный), он должен показать одинаковые по модулю значения, но с разным знаком. На деле же мы будем иметь что-то вроде +0,5°/-0,3°. Среднее (0,1°) будет реальным значением угла, а разница между средним и измеренными значениями – погрешность. Как-то так.

  4. look1d avatar
    look1d25 октябрь 2012
    0

    При любом углу обзора я вижу широко лыбящийся смайлик))

    Алексей avatar
    Алексей25 октябрь 2012
    0

    @look1d, а это – юзер-френдли интерфейс!

    look1d avatar
    look1d25 октябрь 2012
    0

    @Алексей, ну вот и я так решил :) Поэтому и отправил фоточку ;)

  5. Sima4 avatar
    Sima425 октябрь 2012
    0

    Сказок – много.
    Уровней – ну тоже много, но можно и запостить…

    не понимаю

  6. autokot avatar
    autokot25 октябрь 2012
    0

    “Докажи, что ты айМаньяк и у тебя дома есть ящик с инструментами”.

    У меня разрыв шаблона. Я могу доказать, что я “ай-маньяк”, сфотографировав 3 айпада, 3 айфона, 2 эпл-ТВ, МакбукПро Ретина, МакбукЭйр 13 и Эйрпорт Экспресс.
    Но “ЯЩИК С ИНСТРУМЕНТАМИ” !?!?!?!?! У меня в подъезде ремонт делает бригада таджиков, у них несколько сундуков с инструментами. Являются ли они “ай-маньяками” и нужен ли им “промо-код” приложения, если они пришлют свои фото?

    autokot avatar
    autokot25 октябрь 2012
    0

    @autokot, сорри. 5 айфонов (2G и 3G что валаются в ящике совсем позабыл, посчитал только 4, 4S и 5)

    Whilser avatar
    Whilser25 октябрь 2012
    0

    @autokot, Конечно, у ай-маньяков полно строительных программ установлено на айфонах: плоскогубцы, уровни, жидкие гвозди, перфоратор. Ты подойди к бригаде таджиков, пусть они со своего аккаунта тебе поставят на 5 iPhone xD

    Mr_Jy avatar
    Mr_Jy25 октябрь 2012
    0

    @autokot, а я бы установил и вывел на экран разные приложения подобные,положил в ящик все айфоны-айпады с этими прогами виднеющимися и сфоткал) Жаль только девайса у меня лишь два,не будет так масштабно и картинно.

    autokot avatar
    autokot25 октябрь 2012
    0

    @Mr_Jy, вот это действительно будут маньяки, которые пол дня будут со всей семьи, со всех углов квартиры собирать все гаджеты в коробку, чтобы сделать фото и получить в подарок 30 рублей. Да я заплачу больше, лишь бы этим не заниматься :)))

    Mr_Jy avatar
    Mr_Jy25 октябрь 2012
    0

    @autokot, дело не только в коде,дело в самой идее…эх вы.

    autokot avatar
    autokot25 октябрь 2012
    0

    @Mr_Jy, так по изначальной идее не нужны им фотки моих 13-ти устройств Apple. Им нужны фотки ящика с инструментами! Вот где здесь логика авторов конкурса????

    Mr_Jy avatar
    Mr_Jy25 октябрь 2012
    0

    @autokot, там же написано – “айманьяк” и “ящик инструментов”. Вот и обставьте это так,чтобы было видно и то и другое. Пример уже писал выше

    Whilser avatar
    Whilser25 октябрь 2012
    0

    @autokot, доказательство, что ты эту прогу будешь использовать по назначению, а именно – в стройке :) Только (ай-)маньяки используют айфон в качестве строительного уровня xD

    autokot avatar
    autokot25 октябрь 2012
    0

    @Whilser, у таких людей есть медицинские определения.

  7. Whilser avatar
    Whilser25 октябрь 2012
    0

    Вот мне интересно, кто использует iPhone в качестве строительного уровня? Джамшут на стройке? Между тем, в AppStore засилье подобных разнокалиберных приложений.

    Sima4 avatar
    Sima425 октябрь 2012
    0

    @Whilser, например, на съемках иногда использовали

    Mr_Jy avatar
    Mr_Jy25 октябрь 2012
    0

    @Whilser, есть такая профессия – геодезист…говорят там юзают ;)

    Mr_Jy avatar
    Mr_Jy25 октябрь 2012
    0

    @Mr_Jy, ну всмысле студенты к примеру юзают,при обучении или практиках

    autokot avatar
    autokot25 октябрь 2012
    0

    @Whilser, Да жесть же!!! Нет бы взять трехрублевый уровень, прочертить карандашем разметку и кинуть его небрежно за спину на бетон. Нет же, надо на пятый фон ставить “уровень” и белых перчатках производить замеры, предварительно завесив место измерения нежным бархатом…

    Алексей avatar
    Алексей25 октябрь 2012
    0

    Джентельмены, я приложение когда писал, прекрасно понимал, что их уже мильён. Но уж больно страшные большинство из них были, да и подход многих разработчиков к точности измерений меня неприятно удивил. И я не предлагаю это приложение использовать при строительных работах. Но, мне кажется, имея в телефоне такие полезные датчики, глупо отказываться от возможности их использовать. Бывает, надо что-нибудь в квартире ровно закрепить, ножки у стола подкрутить. Мне кажется, весьма полезный прибор, чтобы всегда быть под рукой.

    kaifomet avatar
    kaifomet27 октябрь 2012
    0

    @autokot,
    Нормальный уровень стоит под 1000р. и в кармане его постоянно не поносишь. К тому же возникают ситуации, когда длинный уровень не влазит, а короткого нет. Вчера ставил окно, в узких местах уровень в ифоне здорово выручает.

    direless avatar
    direless25 октябрь 2012
    0

    @Whilser,

    Уровень есть. Метровый, грязный. Лежит на балконе (в лучшем случае, чаще на даче), на балконе зима. А нужно прикинуть на глазок… Как-то так.

    autokot avatar
    autokot25 октябрь 2012
    0

    @direless, вот на глазок реальная тема.

    Алексей avatar
    Алексей25 октябрь 2012
    0

    @autokot, глазок калибруется “не очень”.

    autokot avatar
    autokot25 октябрь 2012
    0

    @Алексей, за 5 лет черчения инженерных чертежей, в т.ч. рамки со штампом, калибруется идеально!

  8. direless avatar
    direless25 октябрь 2012
    0

    Андроид – будет ? Порыл маркет – уровней море, НО. Нигде нет двойной калибровки по кривой плоскости. Есть тольк по референсной, что ВСЕГДА неудобно.

    Алексей avatar
    Алексей25 октябрь 2012
    0

    @direless, с андроидом такая проблема – не у всех девайсов есть гироскопы, а без них реализовать простую и понятную калибровку просто не возможно. Придется инструкцию с картинками на полстраницы писать, а кто их читать будет? Так что, пока нет желания.

  9. Und avatar
    Und25 октябрь 2012
    0

    C одной стороны, у Зелёного робота можно ограничить список девайсов, на которые ставится приложение, теми, у которых есть три гироскопа. С другой стороны, Зелёный робот должен умереть.

    Поэтому, Автор, не делай приложение для него. Ни денег, ни удовольствия не получишь.

    PS У меня есть маленький iPhone 3GS и маленькая отвёрточка. Но я очень их люблю!!! Есть ли шанс, чтобы мне просить жену достать г-зеркалку? :)

    direless avatar
    direless25 октябрь 2012
    0

    @Und,

    Сам ты !!!!

    Алексей

    У дроида больше база пользователей. Совершенней устройства. Пошшупать соседний рынок, опять-же. Без датчиков положения – это такое уг, что даже не верится.

    Алексей avatar
    Алексей25 октябрь 2012
    0

    @direless, я не политический противник андроида и проект на маркете есть, еще один в планах. Хотя, на сопровождение ПО затраты, конечно, больше. Сейчас мне яндекс-маркет выдал 56 устройств с акселерометром+гироскоп. Так что да, надо подумать на эту тему.

  10. artem_sil avatar
    artem_sil25 октябрь 2012
    0

    Закину деньги на карту и куплю. Спасибо автору. В быту пригодится. А подобные приложения в маркете действительно мусор. А это выглядит нормально, и, судя по словам автора, неплохо скроено.

  11. kkray avatar
    kkray25 октябрь 2012
    0

    Айфон есть, хороший уровень в него лишним не будет :)
    Инструмента тоже полно, полный ящик, но фоткать лень.

    Так что автор ты меня уж прости, но на конкурс я забью и просто куплю приложение :)

    Алексей avatar
    Алексей25 октябрь 2012
    0

    @kkray, я, честно говоря, требованиям конкурса сам удивился – ну ладно сиськи сфоткать, но ящик инструментов?! Даже не буду думать об этом.

  12. alefut avatar
    alefut25 октябрь 2012
    0

    А у меня инструментов-целая сарайка! А у моего другана- морской контейнер во дворе стоит и инструмента за 30 лет накопилось… Мама не горюй. А вот что бы нам не сфоткать работы, сделанные своими руками? Слабо?

  13. olafnew avatar
    olafnew25 октябрь 2012
    0

    Совершенно не понимаю нытья на предмет ящика с инструментами. Тот человек у которого это вызывает вопросительную интонацию – явно не находится в той категории, кому это приложение реально полезно и нужно.

    Даже интересно посмотреть на присланные фотографии, т.к. сам самоделкин со стажем, всегда очень сильно уважал и уважаю людей которые любят и умеют делать что-то руками. Сегодня тоже поучавствую в конкурсе, как с работы освобожусь )

  14. Goodcat avatar
    Goodcat25 октябрь 2012
    0

    Автор данной картинки походу слегка упорот…=)

  15. lexey avatar
    lexey25 октябрь 2012
    0

    Приобрел, спасибо.
    Иногда нужно :)

  16. TAIFUN avatar
    TAIFUN25 октябрь 2012
    0

    Купил приложение. Что с калибровкой намудрили?
    1-ый этап: пложил на поверхность
    2-ой этап: повернуть телефон на 180 граудсов. Повернул… раз 20 уже поворачивал то с разной скоростью, то в разные стороны. Результата никакого. Калибровка застряла на 2-ом этапе.
    Что делать?

    Алексей avatar
    Алексей25 октябрь 2012
    0

    @TAIFUN, отменить и повторить еще раз. Я, наверное, слишком строгую точность для определения угла поворота задал, хотя испытывал на четырех устройствах – сбоев не было. Немного ослаблю в следующей версии. Спасибо за комментарий.

    TAIFUN avatar
    TAIFUN25 октябрь 2012
    0

    @Алексей, я уже более двух десятков раз попробовал :) iPhone 4S

    Алексей avatar
    Алексей25 октябрь 2012
    0

    @TAIFUN, понятно. Я сейчас залью обновление и отправлю вам промокод (пришлите, пожалуйста, ваш емайл на [email protected]) если я не ошибаюсь, вы сможете испытать обновление до его аппрува модераторами App Store. Надеюсь, это решит проблему.

    TAIFUN avatar
    TAIFUN25 октябрь 2012
    0

    @Алексей, отправил :)

  17. MikeSP avatar
    MikeSP25 октябрь 2012
    0

    Поддержал интересную разработку! )

    Я начинал вешать полочки еще по iPod, сейчас вешаю по iPad. )

    Инновационный метод калибровки очень порадовал.

    Заявлена поддержка iPad.

    Я так понял, HD версия – вопрос времени.

    Но!

    У iPad кнопочки громкости с другой стороны.

    Это значит что при калибровке он будет не ровно стоять на грани, а криво, опираясь одной стороной на кнопочки.

    Если перевернуть девайс другой гранью (где нет кнопок), то калибровка, я так понял, не проходит.

    Догадался подложить под грань Smartcover, так, чтобы кнопочки выходили за его пределы, а остальная грань лежала ровно.

    Только так прошел калибровку, ну а измерять можно любой стороной.

    Но думаю нужно отдельно сделать калибровку для iPad или добавить возможность калибровки любой стороной.

    Алексей avatar
    Алексей25 октябрь 2012
    0

    @MikeSP спасибо всем за поддержку!

    Правда, я не указывал ipad в качестве доступных устройств, но после апрува он в списке оказался. Только я вас Mike не совсем понял с кнопочками – у меня вот ipad2 под рукой, так там все четыре грани ровно на стол встают. Кнопки не мешают. Это у третьего так?

    MikeSP avatar
    MikeSP25 октябрь 2012
    0

    @Алексей, вы правы – я слажал! ))

    У меня такой же iPad – если ставить его ровно, кнопки не касаются поверхности вообще!

    Просто у меня куча других телефонов, и на всех них кнопки громкости мешают! И мне показалось что на iPad они отклоняют на 0.4 градуса.

    Простите!

    Про iPad вообще – я лично искал версию уровня специально для iPad. Их гораздо меньше, чем для телефонов.

    Остановился на Clinometr HD (с подобной калибровкой, но попроще).

    Так что вы тоже можете добавить полную поддержку iPad с картинками.

  18. MikeSP avatar
    MikeSP25 октябрь 2012
    0

    Ах да, и еще!

    Кнопочка выключения звука не выключает звук полностью! )

    Выключается только звук приближения к нулю, а переход на 45 градусов продолжает озвучиваться! )

    Алексей avatar
    Алексей25 октябрь 2012
    0

    @MikeSP, со звуком так и задумывалось. Я решил, что щелкает он совсем тихо и если что это можно убавить стандартными средствами (как в любом приложении + -).

    MikeSP avatar
    MikeSP25 октябрь 2012
    0

    @Алексей, Понятно! )

    У меня в настройках стоит галочка, чтобы регулировался только звук медиа, поэтому я не мог ими регулировать звук – он есть всегда.

    Ну обычно измеряешь в положении Lock, так что проблем никаких нет.

    В общем приятно, что вы сделали полезный, нужный и красивый инструмент, а не какую-нибудь фигню очередную.

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

  19. Koskozo avatar
    Koskozo25 октябрь 2012
    0

    Где победители то?)

  20. Артур Малосиев avatar
    Артур Малосиев25 октябрь 2012
    0

    Скоро всех объявлю. Терпение, пожалуйста ;) идет оформление поста.

  21. sanya555 avatar
    sanya55525 октябрь 2012
    0

    Простой вопрос – Почему русский язык то не сделали :)

    Алексей avatar
    Алексей26 октябрь 2012
    0

    @sanya555, сделал русский и еще пять языков, но по глупости решил оставить добавление языков на потом, а когда приложение аппрувили (т.е. разрешили к публиации) выяснилось, что язык можно добавить только до аппрува. Сейчас новую версию выложил, добавил языки.

    sanya555 avatar
    sanya55526 октябрь 2012
    0

    @Алексей,
    куплю затестить :), подогнали гифт карту на 50 долларов, а тратить не на что, все что нужно уже давно куплено, хотя мог и сфоткать, свой набор ключей Craftsman

    Алексей avatar
    Алексей26 октябрь 2012
    0

    @sanya555, Спасибо, буду благодарен за отзывы и багрепорты на [email protected] или напрямую в АппСтор.

    sanya555 avatar
    sanya55526 октябрь 2012
    0

    @Алексей, не могу купить почему то, вот что айтюнс выдает
    http://s1.directupload.net/images/121025/ho6k6xtv.png

    Алексей avatar
    Алексей26 октябрь 2012
    0

    @sanya555, это, к сожалению, вопрос не в моей компетенции – такое бывает, как я понимаю, если каккие-то проблемы с аккаунтом или картой. В форумах по этому поводу рекомендуют, как и написано, обратиться в суппорт.

  22. sanya555 avatar
    sanya55526 октябрь 2012
    0

    с телефона купилась :) пошел мерять

    Алексей avatar
    Алексей26 октябрь 2012
    0

    @sanya555, ага, крен имеет значение :)

  23. Артур Малосиев avatar
    Артур Малосиев26 октябрь 2012
    0

    На 99% фотографий нет айманьяка…

    inferno3028 avatar
    inferno302826 октябрь 2012
    0

    @Артур Малосиев, для этого надо поконретней мысли выражать,просили ящик-получите

    hry777 avatar
    hry77726 октябрь 2012
    0

    @inferno3028, кстати, да
    сфотографировал c помощью iPhone ящик с инструментом и iPad-ом, отправил с почтового ящика @me.com
    Ну думаю, чем я не айманьяк! :)
    А оказалось, себя любимого нужно было в окружении инструментов запечатлеть %)

  24. sanya555 avatar
    sanya55526 октябрь 2012
    0

    чет не могу я откалибровать, раз 10 уже отменял, все так и висит на первом этапе :)

    Алексей avatar
    Алексей26 октябрь 2012
    0

    @sanya555, проблему с калибровкой я, надеюсь, исправил. Жду аппрува. Но я порекомендовал бы 1. Поднять / положить телефон на стол еще раз. 2. Поднять / положить телефон на другой стол. Там проблема в том, что я слишком жесткие критерии задал для определения состояния покоя и судя по всему шум сенсоров в некоторых девайсах превышает этот порог. Телефон ждет, пока его, наконец-то положат и перестанут теребить :)

  25. danessemo avatar
    danessemo26 октябрь 2012
    0

    Дасвидос.

  26. ParboiL avatar
    ParboiL26 октябрь 2012
    0

    Уже давно есть приложение более интересное – Clinometer, причем за те же деньги ;)

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь