Dagger 2 + Android + Kotlin. Mini HOWTO

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

Поддержка клавиатур, мышей и джойстиков

Android поддерживает USB клавиатуры, мыши и джойстики. Статья содержит небольшое исследование возможностей Android и описание работы с такими устройствами.

Использование adb через WiFi

Подключение по adb к устройству возможо не только через USB, но и по локальной сети. Это позволяет не путаться в проводах, а также использовать USB на телефоне для других устройств. В статье описаны простые шаги, чтобы воспользоваться этой возможностью.

Android 6.0 Marshmallow (презентация из архива)

В последнее время приходится обращаться к материалу, собранному к выступлению про Android Marshmallow (6.0). Поэтому выкладываю презентацию на сайт. 

ProGuard. Часть 1. 95% граблей

ProGuard — утилита, которая удаляет из скомпилированного кода неиспользуемые фрагменты и изменяет имена переменных и методов для усложнения реверс-инжиниринга приложения. В разработке под Android эта утилита необходима в первую очередь для уменьшения размера загружаемых на устройство файлов.

В статье я расскажу о добавлении ProGuard в проект и дам несколько советов, которые с вероятностью 95% решат вашу задачу.

Рутуем устройство и залезаем в БД приложения

Разработчику нередко нужно изучить данные, которые приложение сохраняет в процессе работы. Я расскажу о том, как на настоящем устройстве посмотреть, что приложение записало в свою базу SQLite. Для этого потребуется «рутовать» устройство и поставить command-line клиент для SQLite. Также расскажу, что делать, если это невозможно.

Маленькие окна

Заметка о том, как сделать Activity вашего приложения меньше, чем во весь экран.

Dagger 2, часть 3. Использование в тестах. Тестируем View

В этой заметке я продолжу рассказ о том, как писать тесты в приложении с MVP и DI. В этот раз мы будем тестировать View из тройки Model-View-Presenter.

Dagger 2, часть 2. MVP. Тесты

В этой заметке мы рассмотрим, как принцип инверсии зависимостей (dependency inversion principle, DIP) может сделать код более структурированным. Разберем это на примере приложения из прошлой заметки: реализуем принцип инверсии зависимостей и напишем юнит-тесты.

MVP и Mosby

MVP, Model-View-Presenter — шаблон проектирования, используемый при создании пользовательского интерфейса. Использование этого паттерна при создании приложений под Android позволяет писать более ясный и понятный код. Код приложения, написанного с использованием MVP, достаточно легко покрыть юнит-тестами.

Поиск утечек памяти с помощью LeakCanary

Утечки памяти (memory leaks) ловить трудно, особенно если они проявляются на опубликованном приложении у клиентов. Stacktrace, который приходит в отчёте о падении, даёт мало информации о том, что же действительно утекло. Компания Square создала библиотеку LeakCanary — удобный инструмент для обнаружения утечек.

RxJava и жизненный цикл Activity

В этой заметке я расскажу о том, как учитывать жизненный цикл Activity при использовании RxJava.

RxJava — Subject

Subject — это расширение Observable, реализующее интерфейс Observer. В некоторых случаях использование Subject позволяет писать простой немногословный код. В этой заметке я расскажу о нескольких различных реализациях Subject и покажу пример использования.

Observable и Transformer

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

RxBinding

В этой заметке я покажу несколько идей, как можно использовать RxJava в программировании под Android, и зачем нужна библиотека RxBinding.

Data Binding Library как замена findViewById() и ButterKnife

Data Binding Library — мощный и достаточно заманчивый инструмент для программирования UI, о котором нужно рассказывать отдельно и много. В заметке я хочу показать самое простое применение этой библиотеки: как избавиться не только от бесчисленных вызовов findViewById(R.id.login), но и от не менее бесчисленных описаний @Binding(R.id.login) EditText login;

RxJava и Retrofit

Retrofit — популярная библиотека для взаимодействия с серверами. Одной из возможностей Retrofit является поддержка RxJava.

RxJava — Hello World

Мир ReactiveX состоит из двух частей: источники данных — Observable, и потребители — Subscriber. В этой заметке мы рассмотрим несколько простых действий, которые можно с ними сделать.

Подключение RxJava/RxAndroid и Retrolambda

Первая часть цикла заметок о том, что такое ReactiveX и как его использовать в программировании под Android. Обсуждаем подключение к проекту библиотек RxJava, RxAndroid и Retrolambda.

Percent Support Library

Percent Support Library — библиотека, позволяющая при создании пользовательских интерфейсов указывать размеры не в пикселях, а в процентах.

Сенсоры

Сенсоры — это встроенные в Android измерительные приборы, которые определяют движение, расположение в пространстве, параметры окружающей среды. Приложение может получать данные этих сенсоров.

Property Animation. Вращение

Property Animation — появившаяся в Android 3.0 система анимации свойств любых объектов. Эта история о том, как с помощью Property Animation показать поворот карточки тыльной стороной к зрителю и обратно.

Dependency Injection. Dagger 2, часть 1

Dependency Injection — это паттерн, реализующий принцип объектно
-ориентированного программирования Inversion of Control. Эта история о том, как с помощью Dagger 2 реализовать этот паттерн.