Войти

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

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
Логотип iPhones.ru
iPhones.ru
ТЕКСТ: АЛЕКСЕЙ ИЛЬИН. Лето на даче – это весело! Нет, серьезно. Лично у меня всегда куча дел по хозяйству, для которых имеется внушительный набор инструментов и измерительных приспособлений. Среди них, конечно, есть и строительный уровень. Вы, наверняка, знакомы с этим прибором: такая штуковина с маленькой колбой, в которой смешно болтается пузырек воздуха. Несмотря на свою...

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

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

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

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

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

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

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

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

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