Android: не используйте String.isEmpty

Ни eclipse ни intellj Idea ни android lint не предупреждают, что String.isEmpty() появился в Java 6, и после Android 2.3.


java.lang.NoSuchMethodError: java.lang.String.isEmpty
at pro.ezway.carmonitor.entity.TroubleCode.hasTitle(TroubleCode.java:142)
at pro.ezway.carmonitor.ui.fragments.TroubleCodesFragment$TroubleCodesAdapter.getView(TroubleCodesFragment.java:242)
at android.widget.AbsListView.obtainView(AbsListView.java:1315)
at android.widget.ListView.makeAndAddView(ListView.java:1727)

Read more

android: поиск в actionbar

Есть большая проблема: compatibility library не включает ActionBar. К счастью, есть хорошая библиотека, которая реализует экшнбары для младших версиий андроида, а для старших - проксирует вызовы к системным компонентам. Но и тут не всё гладко: сейчас нет полноценной реализации компонента SearchView(UI для строки поиска).

Есть несколько костылей способов как решить эту проблему. На просторах сети я нашёл библиотеку MenuItemSearchAction которая реализует функциональность SearchView для старых андроидов. По сути - эта "библиотека" - всего лищь несколько классов которые оборачивают создают MenuItem и оборачивают EditText, вешая на них обработчики событий. Я несколько переделал этот компонент: теперь он использует встроенный SearchView на современных платформах и создаёт свой, если в системе не нашлось.

Read more

Android: альтернативы java


Java - действительно хороший, простой и стабильный язык. Код, написанный десять лет назад будет не только работать на современных JVM, но должен компилироваться.

Выбор разработчиков андроида в качестве языка программирования java вполне понятен: популярная платформа, managed code, множество готовых библиотек, понятный и простой код.

Read more

HTC Desire: почти brick

В один прекрасный момент телефон просто перестал загружаться. Как на зло во время тура. Висит на htc splashscreen.

Девайс: HTC Desire A8181, прошивка: Runnymede AIO V6.0.4.3, HBOOT: 0.93, S-OFF: off

Подцепившись [cci]adb shell[/cci] увдел, что недоступна /data, не распаковывает code.jar, framework.jar и прочие андроид библиотеки. Все отваливалось на попытке извлечь содержимое jar в dex файлы в dalvik-cache. Вытаскивание SD-card ни к чему не привело (да и не должно было бы: часть системы на ней)

Read more

Android: фрагментирование? Не, не слышал.

Нет фрагментирования

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

Давайте по порядку разберёмся почему наличие таких разных конфигураций вовсе не минус

Read more

Стихотворения классиков: первые итоги

Хочу поделится некоторыми итогами, красивыми графиками и выводами по одному из моих приложений в google play - "Стихотворения классиков", а также её платной версией.

Специально выбирал время для поста - когда счётчик общего количества скачиваний перерастёт 50тыс. Разумеется, цифры актуальны только на момент поста

Здесь я расскажу о мотивации к написанию, изменения и измерения в ранжировании по интересующим запросам, выход в топ и динамике установок.

Два месяца с момента запуска:

Read more

Android: background 2.0

Для одного из наших приложений "Говорящие вещи" потребовалось сделать яркий, жизнерадостный, но не отвлекающий фон. Мы перебирали несколько разных вариантов с deviantart (где средний фон - 500кб, OMG), но почему-то смотрелось не очень внушающе(растяжки, отвлекающие цвета).

В интернетах наткнулся на пост товарища @gobozov: Android. Tiled background with diagonal lines, как говорится, inspired by .. :). В котором был пример стильного фона (stripes + полупрозрачный градиент). Выглядит - круто.

В его варианте используется tile background как фон Layout + ImageView с градиентом. Я попытался чуть-чуть упростить и уменьшить количество файлов.

Read more

HTC Desire: прошивка моей мечты

"Ребята, прошивка здоровенная!! Здоровеннная!"

UPD: самая здоровенная прошивка моей мечты тут

Полтора года мой HTC Desire радовал буквально всем, кроме батарейки(что свойственно всем андроидам) и объёмом внутренней памяти.

Сначала я терпел, стараясь выбирать только самые нужные мне программы, чистил кеш приложений по утрам, а субботними вечерами удалял приложения, которыми не часто пользуюсь. Время шло, потребности в количестве установленных приложений стали увеличиваться(во многом из за андроид-разработки), а уже установленные приложения даже не думали худеть, напротив - разбухали с каждым апдейтом. К слову, максимально откладывал приходящие обновления.

Хватит это терпеть! (ц)

Read more

Android: живые зимние обои 2012

Зима вроде на улице. Как и полагается все - от муниципальных органов до ларьков создают зимнее/новогоднее настроение своими вывесками, акциями, украшениями и рекламой.

Решил поучаствовать  в этом безумии - сделал зимние обои для андроида. Была цель - быстро и просто сделать вброс и посмотреть как на него отреагируют юзеры.

Так и получилось - первый релиз сделал за полтора дня (порядка 8 часов ушло от начала разработки, прямо в маршрутке, до паблишинга в маркете). Потом ещё ушло порядка 8 часов на всякие улучшательства.

Read more

Проект: GeoChat


Долгое время я со своей некогда командой разрабатывал несколько геолокационных приложений. Ага, это были стартапы. Сейчас не хочу даваться в подробности провала, по крайней мере покачто. Ближнее окружение в курсе, а остальным не очень то и нужно знать :)

Read more