среда, 2 апреля 2014 г.

Отключение junit.framework.Assert в релизе Android-приложения

Как я уже писал, стандартные директивы assert по умолчанию отключены на Android-девайсах. Их необходимо включать (например командой adb shell setprop debug.assert 1, после чего assert будет работать до перезагрузки девайса). Альтернатива - junit.framework.Assert. И по функционалу побогаче, и работает на девайсах сразу, без дополнительных включений. При Null-анализе компилятор eclipse учитывает junit.framework.Assert точно так же, как обычный assert. Вроде бы, одни плюсы. Но: в релизе ассерты следует отключить. И вот тут требуются дополнительные телодвижения.

воскресенье, 2 февраля 2014 г.

REST под Android. Часть 3: библиотеки Square

В процессе работы над первой и второй частью статьи, я неоднократно натыкался на упоминание разнообразных библиотек компании Square, которые народ активно использует при реализации REST-клиентов. Приглядимся к этим библиотекам поближе.

пятница, 24 января 2014 г.

REST под Android. Часть 2: разрабатываем API

Первая часть статьи была посвящена вопросу реализации клиентского REST-приложения под Android. Корректная реализация требует использования одного из паттернов, предложенных Virgil Dobjanschi. Существует ряд подходящих библиотек, способных облегчить эту задачу. Наиболее интересной из них мне показалась RoboSpice.

Прежде чем переходить к разработке тестового проекта на RoboSpice, необходимо определиться с API для тестового проекта. Разумеется, можно взять одно из готовых API - благо их сейчас сотни. Однако гораздо интереснее написать свое, тем более, что это нетривиальный процесс. Рассмотрим, как пишутся REST API, какие инструменты для этого существуют, и попробуем реализовать простейшее тестовое API.

пятница, 17 января 2014 г.

REST под Android. Часть 1: паттерны Virgil Dobjanschi

В одном из проектов появилась необходимость написать REST-приложение под Android. Каким путем пойти, какие Android-особенности учесть, на какие библиотеки опереться в работе? Пришлось провести исследование. Результатами хочу поделиться.

суббота, 11 января 2014 г.

Сдача налоговой отчетности ИП (УСН 6%) за 2013 год

Год закончился, до 30 апреля нужно подать декларацию по ИП. Как всегда, в этом году в отчетности есть кое-какие изменения:
  • ОКАТО заменили на ОКТМО,
  • отменили необходимость подачи "сведений о среднесписочной численности работников" для ИП-шников, у которых в течении года не было работников.
В остальном, похоже, все как в прошлые годы.
P.s. Не забудьте скачать свежую версию программы Налогоплательщик ЮЛ.

пятница, 3 января 2014 г.

Контрактное программирование под Android

О пользе и преимуществах методики контрактного программирования (Design by Contracts, DBC) написано много. Вот несколько хороших статей: Основная идея методики: улучшить надежность программного обеспечения за счет определения контрактов между взаимодействующими программными компонентами. Для метода задается контракт, который описывает:
  • пред-условия, которым должен соответствовать вызывающий код;
  • пост-условия, которые гарантируются методом.
Некоторые преимущества, которые обеспечивает DBC:
  • Повышение надежности программы за счет систематической и гарантированной проверки входных данных.
  • Исключение лишних проверок в коде. Корректность данных проверяется в методе, а не в вызывающем коде.
  • Автоматическое документирование кода, создание спецификации API программного модуля.
  • Косвенно: повышение эффективности статического анализа кода.
Вариантов реализации DBC для Java достаточно много. Обзорные статьи на эту тему: Однако, Java - это Java, а Android - это Android. Как всегда, под Android есть своя специфика. В данной статье я хочу рассмотреть практические подходы для реализации технологии DBC при программировании на Android.