воскресенье, 29 января 2012 г.

Список языков с переводом названий (ISO 639-1).

Занимаюсь локализацией своего Android приложения Animated Widget Contact. Потребовалось найти список языков, поддерживаемых Android, с переводом названий. Т.е. в виде Ru-Russian-Русский, da-Danish-Dansk и т.д. Как ни странно, готовый список найти не удалось. Поэтому составил такой список самостоятельно, взяв за основу следующие источники: 1, 2, 3, 4. В список включил только языки имеющие двухбуквенный код по стандарту ISO 639-1, т.к. именно они актуальны для Android приложений. Вот что в итоге получилось.

понедельник, 16 января 2012 г.

Сдача налоговой отчетности ИП за 2011 год

ИП на УСН без работников сдает за 2011 год в налоговую следующую отчетность:
  • Сведения о среднесписочной численности работников за предшествующий календарный год (не позднее 20 января)
  • Книга учета доходов и расходов организаций и индивидуальных предпринимателей, применяющих УСН (не позднее 30 апреля)
  • Налоговая декларация по налогу, уплачиваемому в связи с применением УСН (не позднее 30 апреля)
Рассмотрим, как эту отчетность можно подготовить.

пятница, 6 января 2012 г.

Статические анализаторы кода для Android-приложения.

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

Для разработчиков, ведущих кодирование в одиночку, статические анализаторы вещь вообще неоценимая. Ведь им некому показать код своего приложения. Так что "электронный помощник", способный грамотно выполнить "code review", может им здорово пригодится.

Вопрос - какие статические анализаторы кода доступны разработчику Android приложений? Для Java статических анализаторов существует множество (см. список lint приложений для Java в википедии), но не все они умеют работать с Android-приложениями и, тем более, учитывать их специфику.

Мне удалось отыскать следующие статические анализаторы кода, которые умеют работать с Android-приложениями:
  • Lint. "Родной" анализатор кода для Android, входит в состав Android SDK начиная с r16.
  • FindBugs (бесплатный).
  • Checkstyle (бесплатный).
  • CodePro Analytix (бесплатный).
  • PMD (бесплатный)
  • Motodev App Validator (бесплатный). Входит в состав среды разработки MOTODEV Studio for Android. Есть online вариант.
  • Klocwork Solo (платный). Доступна триальная версия
  • JTest от Parasoft (платный).
  • Julia (платный). Доступен бесплатный online вариант.
Далее представлены результаты сравнения всех этих анализаторов - какой анализатор что умеет, для чего предназначен, насколько удобно пользоваться, какие ошибки находит, насколько он полезен на практике.

Чтобы было интереснее сравнивать, я "натравил" каждый из этих анализаторов на одно и то же тестовое приложение. В качестве такового я взял код одной из ранних версий моего приложения Animated Widget Contact Launcher. Версию я выбрал годичной давности, багов и проблем в ней было вагон (с FindBugs на тот момент я был не знаком). Так что "что поискать" в ней точно было.