HttpUrlConnect страдает от некоторых багов. Okhttp решает эти проблемы. Анонс.
На локальные файлы aar можно ссылаться, как показано ниже:
Для удобной работы с логами можно использовать Pidcat
Делайте коммиты с помощью систем контроля версий (VCS) вроде Git
Программа ClassyShark
Это возможность проверить Android APK и получить необходимую информацию о методах, полях, зависимостях etc. Анализирует файлы aar, class, jar, so, apk.
Библиотека Stetho
Использование библиотеки позволяет дебажить программы с помощью Chrome Dev Tools. Включает такие инструменты, как Network Monitor, SharedPreference и т. д.
Приложение Battery Historian
Анализирует состояние батареи.
Используйте константы при работе с зависимостями (например, «1.2.0»)
Избегайте знака + при указании версий зависимостей.
- Так можно избежать ошибок, несмотря на изменение API.
- Устраняется необходимость всякий раз во время сборки осуществлять онлайн-проверку последних версий для каждой зависимости.
Отложите TimerTask и используйте Handler
Для публикации приложений (например, на GitHub) не стоит использовать основную электронную почту
Векторы вместо PNG
Если же это PNG, постарайтесь сжать файлы, используя TinyPNG.
Качественное программирование под Android подразумевает использование proguard
Используйте shrinkResources
Следуйте приведенному ниже правилу для ускорения сборки gradle:
Разделите свой apk, используя gradle и нативный код
Не объединяйте все вместе, потому что потом придется долго разбираться в исходниках.
Узнайте больше об архитектурах MVP и Clean
Попытайтесь понять и использовать TDD (Test Driven Development)
Для принудительной повторной загрузки зависимостей:
Исключение выполнения определенной задачи из gradle
Предположим, необходимо убрать задачу javaDoc. Просто используйте в команде -x, а затем имя задачи. В нашем случае это javaDoc:
Чтобы каждое имя подпроекта совпадало с именем проекта
Добавьте эту строку в settings.gradle:
Больше трюков с gradle вы найдете здесь.
Следуйте принципу Do not Repeat Yourself (DRY)
Пакеты по функциям, а не по слоям
Изучите механизм Dependency Resolution
Со скоростью обновления Android-зависимостей рано или поздно вы столкнетесь с конфликтом зависимостей в приложении. Для этого используется Dependency Resolution. Официальный ресурс.
Используйте разные имена пакетов в случае дебаг-сборок:
Нужно уметь найти и остановить утечку памяти в Android-приложении
Если вы создаете градиент в xml с полностью прозрачной частью, будьте очень осторожны в использовании @android:color/transparent
Следуйте стандартным правилам в отношении имен для ваших ресурсов
Используйте специальные задачи gradle в ваших файлах build.gradle
Android использует Gradle в качестве системы сборки, что на самом деле упрощает реализацию многих вещей, автоматизируя процесс. Этот пост на reddit содержит много полезных gradle-скриптов.
Используйте подходящий .gitignore в проектах Android.
Используйте LeakCanary для обнаружения утечек памяти в приложении
Программирование под Android предусматривает использование таких библиотек, как эта. Именно они упрощают кодинг и делают приложение «шустрее».
Ускорьте сборку gradle в Android Studio 2.3+
- Перейдите к версии 3.4.1.
- Выполните команду в директории проекта, чтобы проапдейтить gradle wrapper:
- Установите необходимые свойства в глобальном файле gradle.properties:
Остановите сборку посредством gradle:
Настройте gradle для загрузки отсутствующих элементов android sdk в автоматическом режиме
- Установите необходимые свойства в глобальном файле gradle.properties:
Это экспериментальный вариант, и он загружает только инструменты и платформы для сборки, но фактически не обновляет репозитории Google или Support.
Не подключайте jcenter() и mavenCentral() вместе в файле build.gradle
MavenCentral и так входит в JCenter.
Очистите кэш gradle, если считаете, что библиотеки support и google play services несовместимы в android sdk
- Перейдите в
Настройте удобные алиасы adb для терминала
Добавьте указанные ниже алиасы в файл
/.zshrc, сохраните и перезапустите терминал. После сохранения используйте их как показано в столбце «Применить»:
Настройте Android Studio на сбой сборки, если код содержит //STOPSHIP.
Чтобы добавить проверку на //STOPSHIP в lint, включите в build.gradle следующий код:
Если в коде есть комментарий //STOPSHIP, это вызовет ошибку при создании apk-версии.
Вы можете включить подсветку //STOPSHIP в Android Studio (по умолчанию подсветка выключена). Это делается через Preferences → Editor → Code Style → Inspections. Найдите STOPSHIP, чтобы применить настройку.
Используйте alfi, чтобы найти оператор зависимостей gradle для библиотеки
Это консольная версия web-приложения Gradle, Please.
- Запуск:
- Копирование нужной библиотеки.
- Вставка в build.gradle.
Вывод результатов юнит-тестов в консоль
Сделайте сборку быстрее, используя офлайн режим
Программирование под Android нуждается в:
- Быстрой сборке:
- Быстрых юнит-тестах:
Использовать абсрактный класс Logger
Если нужно инициализировать свою библиотеку автоматически, обратите внимание на Content Provider
Уменьшите размера установленного приложения с помощью “android:extractNativeLibs:false” в
Селективная сборка для конкретного метода в Android Studio
Используйте возможности Java 8, добавив sourceCompatibility & targetCompatibility в файл build.gradle:
Задайте gradle-задачу для архивирования файлов apk и proguard при сборке с целью резервного копирования:
Движение
Программирование под Android включает много составляющих. Например, в Material Design в качестве базиса используется физика реального мира. В реальности объекты не двигаются линейно. Это движение по искривленным дорожкам, с ускорением и замедлением в соответствии со свойствами движения.
Таким образом, движение должно также использовать данные свойства и анимировать объекты с сохранением естественности.
Например, автомобиль, покидающий экран, начинает движение медленно, а затем ускоряется, пока полностью не выйдет из кадра. Точно так же представления должны быть интерполированы с использованием классов AccelerateInterpolator, FastOutSlowInInterpolator, etc. Подробнее.
Оформление
Хотя пользовательские шрифты и могут использоваться для брендинга, лучше придерживаться стандартных Noto и Roboto из-за их узнаваемости. Особенно это касается основного текста.
Roboto охватывает латинские, греческие и кириллические символы, а Noto подходит для других языков.
Балансировка – важный аспект оформления, фундаментальная концепция которого заключается в том, что чем больше шрифт, тем менее жирным он должен быть.
Текст должен выравниваться по сетке с ячейками 4dp.
Лучшая длина текста для больших текстовых блоков составляет 40-60 символов в одной строке. Другие варианты вносят дисбаланс.
Иконки
Необходимый размер для иконок – 48dp с краями 1dp:
- 48px x 48px – mdpi
- 72px x 72px – hdpi
- 96px x 96px – xhdpi
- 144px x 144px – xxhdpi
- 192px x 192px – xxxhdpi
Дополнительная иконка 512px x 512px должна быть для Google Play. Значки материалов должны содержать следующие важные элементы:
- 1dp тонированный край наверху
- 1dp затененный край внизу
- мягкая тень вокруг всех краев поднятых элементов
- мягкий оттенок для обеспечения поверхностного свечения
Ripple
Для Ripple эффекта вместо ?android:attr используется ?attr/selectableItemBackground.
Для кнопки реализация должна включать:
Выходящий за края Ripple реализуется с помощью:
Программирование под Android требует знаний, а это также необходимость читать литературу, слушать подкасты, смотреть краткие интервью с опытными разработчиками и время от времени проверять новые Android-библиотеки.