Войти

Или войди с помощью

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

Dev Story
Информатор avatar |
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 промо-кодов.

Докажи, что ты айМаньяк и у тебя дома есть ящик с инструментами. Пришли свое фото на iphone.awards@gmail.com.

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

Победители

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

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

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

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

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

69 комментариев

Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик
Котик из TikTok
Котик из TikTok
Котик из TikTok
Котик из TikTok
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Момент из фильма
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Мем стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Офис стикер
Видео мем
Видео мем
Видео мем
Видео мем
Видео мем
Видео мем

Какие правила в комментариях
  1. PAHETKA avatar
    PAHETKA 25 октябрь 2012
    0

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

    Войди на сайт, чтобы ответить
    Ответить
  2. iBeginner avatar
    iBeginner 25 октябрь 2012
    0

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

    Войди на сайт, чтобы ответить
    Ответить
  3. raskladnoy avatar
    raskladnoy 25 октябрь 2012
    0

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

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

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

    Войди на сайт, чтобы ответить
    Ответить
  4. look1d avatar
    look1d 25 октябрь 2012
    0

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

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

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

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

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

    Войди на сайт, чтобы ответить
    Ответить
  5. Sima4 avatar
    Sima4 25 октябрь 2012
    0

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

    не понимаю

    Войди на сайт, чтобы ответить
    Ответить
  6. autokot avatar
    autokot 25 октябрь 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
    Whilser 25 октябрь 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 лет черчения инженерных чертежей, в т.ч. рамки со штампом, калибруется идеально!

    Войди на сайт, чтобы ответить
    Ответить

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

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