Pull to refresh
14
0
Михаил Артемьев @meandnano

Android-разработчик

Send message

Вводим текст красиво

Reading time8 min
Views54K
Сырые, но важные данные вроде номеров телефонов или кредиток — это именно то, что пользователи чаще всего вводят в наших приложениях. И с этим есть огромная проблема. Перепроверять 16 цифр своего Мастеркарда или 11 цифр номера телефона — это сущий ад для любого юзера. Решать эту проблему, естественно, приходится разработчикам, от лица которых я и пишу этот пост.

Поскольку современный Андроид не предоставляет инструментов для автоматического форматирования произвольного текста, эту задачу каждый решает своими костылями силами. Сначала в наших проектах эта задача решалась по месту: возникла необходимость — напиши свой TextWatcher и форматируй как надо. Но мы быстро поняли, что так делать не стоит — количество локальных костылей и специфических багов росло экспоненциально. Кроме того, задача весьма общая, так что и решать её надо системно.

Для начала хотелось следующего:

  1. Указал маску вроде +7 (___) ___-__-__
  2. Повесил её на EditText
  3. ...
  4. PROFIT

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

Начав работать над этим направлением, мы осознали, что создание полноценного языка описания формата — это сродни написанию своего RegEx-движка, что, честно говоря, в наши планы не входило. В итоге мы пришли к варианту, когда такой язык при необходимости можно добавить в любой момент (даже в клиентском коде) или пользоваться простеньким DSL, доступным из коробки (что в нашей практике решило 90% задач).

Посмотрев на то, что получилось, мы решили, что это круто, и надо бы поделиться с сообществом. Так у нас и родилась библиотека для Android-разработки Decoro. И сейчас я покажу пару фокусов из её арсенала.
Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments27

Qt и мобильная камера. Часть 2, Meego

Reading time8 min
Views2.6K
Здравствуйте, Хабравчане!

В прошлой статье я рассказал о том, как создать удобный Qt-видоискатель для камеры на Symbian устройствах. Теперь пришло время сделать наш код более универсальным и добавить совместимость с Meego 1.2, что, как оказалось, является задачей не самой тривиальной.

Вкратце напомню, что мы получили в прошлой части:
  • Класс позволяющий получить и обработать каждый фрейм видеопотока в отдельности
  • Виджет видоискателя, перерисовываемый на каждом новом фрейме, что позволяет делать с входящим изображением все, что угодно
Теперь о том, почему мы не можем просто взять и добавить этот виджет в приложение для Nokia N9 (N900, N950). Все дело в формате изображения, возвращаемого камерой — UYVY. При запуске нашего видоискателя все что мы получим — лишь сообщение в дебаг-лог о неподходящем формате. Что такое UYVY я не знаю, но, к счастью, не без помощи зарубежных пользователей Maemo/Meego, мне удалось найти решение этой проблемы. Далее я приведу лишь отрывки кода из первой статьи с новыми модификациями.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments15

Qt и мобильная камера. Часть 1, Symbian

Reading time7 min
Views4.7K
Доброго времени суток, Хабр!

За время моей работы в области разработки мобильных приложений, в частности для Symbian, было создано несколько решений для работы с камерой телефона. Со временем решения эти эволюционировали, о чем я и хочу рассказать в двух следующих статьях.
В первой речь пойдет о нетривиальном, но гибком получении изображения с Symbian-телефона средствами QtMobility 1.1.3, во второй — о проблемах и их решениях при переносе кода на платформу Meego 1.2 Harmattan под управлением которой в данный момент работают Nokia N900, N950, N9.
Данный материал может быть полезен начинающим Qt-разработчикам мобильных приложений.

Итак, Qt для работы с Symbian-камерой.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments18

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity