LiteCoding

Заметки о программировании

Архив категории ‘Статьи’

Domination под микроскопом

без комментариев

В этой статье пойдет речь о видеосервере Domination. Не так давно была одна интересная задача, связанная с написанием клиента, способным принимать с него поток видеоданных. Было довольно интересно разбираться с ним, а по итогам этого исследования родилась мысль написать статью. Итак, приступим.
Читать далее »

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Январь 14th, 2013 at 06:21

Нестандартный ListView своими руками

без комментариев

Честно говоря, я немного покривил душой, когда придумывал название статьи. Речь сейчас пойдет не столько о нестандартном списке, сколько о нестандартно выглядящих элементах списка. Сам по себе Android API предоставляет очень удобный инструмент для создания списков с нестандартными элементами. Иногда этих возможностей достаточно, тогда с помощью класса SimpleAdapter и несложных манипуляций можно получить требуемый результат (подробности можно посмотреть, например, в одной из статей блога Sai Geetha). Но когда требуется изменить отображение элемента в соответствии с состоянием объекта, приходится садиться за собственную реализацию.

И вот, появляется задача изменить цвет фона элементов на четных позициях, отображать те или иные вложенные элементы в зависимости от флагов и значений. Добро пожаловать в мир настоящих списков с нестандартными элементами.
Читать далее »

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Январь 14th, 2012 at 15:11

Развертывание заранее созданной БД в приложении для Android

без комментариев

Как я уже неоднократно тут писал, задачи бывают разные. В этот раз мы будем говорить о случае, когда приложение поставляется с контентом «на борту». Согласитесь что, неразумно заставлять пользователя дожидаться окончания загрузки каталога книг, когда можно включить его в приложение, а затем при необходимости накатить обновления. Итак, что же нужно сделать, если перед вами возникла задача развернуть базу данных из ресурсов приложения на клиентском устройстве.
Читать далее »

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Июнь 21st, 2011 at 00:20

Использование aParse 2.0 для генерации парсера по ABNF-грамматике

без комментариев

Когда возникает задача что-то быстро распарсить, как правило, берется либо уже готовый парсер, либо пишется что-то свое, которое работает только с исходными данными определенного вида и постоянно требует контроля и ручной корректировки. Но есть еще один вариант — сгенерировать парсер по описанию грамматики входного языка и дальше иметь дело только с его лексическими единицами. Очень часто для таких целей используется Yacc или Bison. Однако, в этой статье речь пойдет о маленькой свободно распространяемой (freeware) утилите aParse.
Читать далее »

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Май 31st, 2011 at 15:41

FDB — JDBC с человеческим лицом

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

Тот, кто имел дело с JDBC, наверное, согласится, что работать с этим API не так уж и просто. Поэтому его изучение, как правило, сводится к постижению азов и поиску решения, которое возьмет на себя большую часть рутинной работы. Есть ORM-решения, которые позволяют забыть про SQL, и работать непосредственно с сущностями системы. Яркий пример такого фреймворка — hibernate. Есть решения, берущие на себя только заботу об открытии/закрытии соединений, управлении ресурсами, например, jdbcTemplates.

У каждого из таких подходов есть свои плюсы и минусы. Недаром говорят, что настройка hibernate способна вынуть душу даже из админа с каменным сердцем. А в случае с jdbcTemplates все равно приходится совершать массу дополнительных действий, что не совсем подходит для написания маленьких утилит и простых проектов.

Осенью 2008-го года, когда мне понадобилось такое решение, я обратился за помощью к своему другу и коллеге Вадиму Шилову, который согласился взяться за эту задачу. Спустя две недели первая версия FDB была готова. Во всех своих последующих проектах мы использовали эту библиотеку, постоянно дорабатывая ее и исправляя ошибки.

Использовать эту библиотеку просто:
Читать далее »

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Март 3rd, 2011 at 14:10

Верстка для Android. Часть 2. “Табличная” верстка.

2 комментария

Есть еще один очень интересный подход к верстке для Android, о котором регулярно задаются вопросы на StackOverflow и тематических форумах. Технически он очень похож на то, что в web-среде называется табличной версткой. Общая идея заключается в том, что расположение и размер каждого элемента определяется его местом в таблице. То есть, если проводить аналогии, таблица становится заготовкой для кроссворда, куда потом вписываются слова. В случае Android эти функции выполняют LinearLayout и TableLayout (а также их классы-наследники).
Читать далее »

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Февраль 21st, 2011 at 18:08

Построение иерархических классификаторов на основе тщательно спроектированной системы тегов

без комментариев

Введение

Иерархические классификаторы и системы тегов стали неотъемлемой частью повседневности. Сейчас уже сложно представить блог или новостную ленту без облака тегов, HR-портал или торрент-трекер без иерархического классификатора. Взяться за написание этого текста меня побудила статья «Все под рукой или как организовать информацию«, где автор рассматривал варианты каталогизации разнородного контента (фотографии, фильмы, музыка, тексты, дистрибутивы и т.д.). Небольшая дискуссия в комментариях побудила меня высказать идею, которую я обдумывал с февраля этого года. Эта статья должна пояснить, каким образом можно построить иерархический классификатор на основе системы тегов.
Читать далее »

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Февраль 15th, 2011 at 12:17

Posted in Статьи

Tagged with

Как собрать нативное приложение под Android

без комментариев

Все разработчики, которые хотя бы слышали об Android, делятся на две группы. В первую группу входят те, кто считают, что Android — это прежде всего Linux, а не Dalvik VM, библиотеки и SDK. А во вторую — их идеологические противники. И если вторые, как правило, обходятся стандартным SDK и уходят в сторону NDK с большой неохотой, то первым гораздо интереснее игры с нативным кодом. Так вот, для тех, кто только начал причислять себя к первой группе (или хочет к ней примкнуть), и предназначена эта статья.

Я предполагаю, что вы уже знакомы с тем, что из себя представляет NDK, для чего нужен cygwin при разработке под Windows, и уже собрали хотя бы одну нативную библиотеку.

В сети есть ряд интересных заметок и комментариев, как собрать обычную Linux-программу для Android. В NDK уже есть все необходимое, чтобы это сделать, но сам процесс выглядит, честно говоря, не очень удобным. Требуется, как минимум, воссоздать структуру каталогов, к которым адаптированы сценарии сборки, и указать ряд обязательных параметров.

Я хочу предложить вам более простой (на мой взгляд, конечно) способ. Скрипт ndk-build является лишь средством запуска утилиты make с нужными параметрами. Поэтому, чтобы ничего не поломать, создадим альтернативный путь сборки, и начнем с точки входа.
Читать далее »

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Декабрь 24th, 2010 at 13:35

Posted in Статьи

Tagged with ,

Верстка для Android. Часть 1. Единая система измерений.

без комментариев

В рекомендациях от Google есть ряд полезных советов, используя которые можно найти хорошие решения проблемы верстки под все многообразие разрешений экрана, встречающихся на аппаратах с Android. Но для начала нужно понять, в чем именно заключается вся сложность верстки. У нас есть 10 разрешений, несколько типичных размеров экранов (включая планшеты с диагоналями 7 и 10 дюймов), несколько значений плотности размещения точек на экране. Все эти величины связаны между собой жесткими соотношениями.
Читать далее »

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Декабрь 15th, 2010 at 05:13

Верстка для Android. Введение.

без комментариев

Этой публикацией я открываю миницикл статей о верстке для Android. Большинство тезисов и приемов, которые здесь будут изложены, должны были прозвучать в моем выступлении на Mobile Developer Day 2010, однако, из-за нехватки времени доклад получился скомканным и совсем непонятным.

Прежде всего, стоит отметить, что по данной теме уже есть несколько хороших статей и руководств: начиная с Supporting Multiple Screens от Google и заканчивая руководством Designer’s Guide to Supporting Multiple Android Device Screens. В этой серии статей я сделаю упор на практическую часть верстки для Android.
Читать далее »

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Tumblr

Written by Дмитрий Воробьев

Декабрь 14th, 2010 at 14:02