Lib файлы для android

Содержание
  1. Библиотеки
  2. Описания популярных библиотек
  3. Библиотеки для загрузки изображений с котиками
  4. Графики и диаграммы
  5. Как устроен билд APK файла внутри
  6. Процесс создания APK и компиляции кода
  7. Рассматриваемые темы
  8. Архитектура процессоров и зачем нужна виртуальная машина
  9. Понимание Java виртуальной машины
  10. Андроид виртуальная машина
  11. Комплияция в .dex файл
  12. ART против Dalvik
  13. Каждый этап описанного процесса
  14. Source Code (Исходный код)
  15. Resource Files
  16. AIDL Files
  17. Library Modules
  18. AAR Libraries
  19. JAR Libraries
  20. Android Asset Packaging Tool
  21. resources.arsc
  22. D8 и R8
  23. Dex and Multidex
  24. 30 Android-библиотек и инструментов, которые не должны пройти мимо вас в 2018 году
  25. 1. LayoutManagerGroup
  26. 2. Creative View Pager
  27. 3. Instabug
  28. 4. CheckableChipView
  29. 5. CrunchyCalendar
  30. 6. InboxRecyclerView
  31. 7. SlideBack
  32. 8. DrawableToolbox
  33. 9. ColorPicker
  34. 10. MvRx
  35. 11. RxRedux
  36. 12. Emoji Slider
  37. 13. Covert
  38. 14. PixelShot
  39. 15. WiseFy
  40. 16. MVICore
  41. 17. DialerLoading
  42. 18. HtmlRecycler
  43. 19. Android Clean Architecture Components Boilerplate
  44. 20. Splitties
  45. 21. AndroidWM
  46. 22. Android components
  47. 23. RxBiometric
  48. 24. EnhancedNavigationView
  49. 25. livedata-ktx
  50. 26. Tumbleweed
  51. 27. Stylist
  52. 28. RxkPrefs
  53. 29. Philology
  54. 30. Scarlet
  55. Заключение

Библиотеки

Java-библиотеки позволяют хранить код для какой-то задачи в одном месте и использовать в разных проекта, просто подключая её.

В Android Studio библиотека подключается через Gradle. Просто добавляем строку в блок с зависимостями и студия сама скачает и установит библиотеку.

Описания популярных библиотек

Библиотека EventBus — рассылаем и реагируем на события.

joda-time-android — Популярная библиотека Joda-Time для Android, позволяющая работать с датой и временем.

AndroidSlidingUpPanel — выдвигающая панель сверху или снизу.

Rebound — библиотека для создания анимационных эффектов у компонентов

GSON — библиотека для работы с JSON.

Moshi — современная библиотека для работы с JSON.

Card Library — интересная библиотека для создания карточек. Автор библиотеки рассказывает о ней на своей странице. А на ГитХабе сама библиотека в исходных кодах. Сам ещё не использовал, но демо библиотеки мне понравилось.

svg-android — работа с векторными изображениями SVG

Android-Query (AQuery) — простой способ использования асинхронных задач и управления UI-элементами

Библиотека Okio для операций ввода/вывода

Библиотеки для загрузки изображений с котиками

Picasso — библиотека для загрузки изображений с разнообразным функционалом.

Glide — похожа по синтаксису и функционалу на Picasso. Библиотека поддерживает анимированные GIF-файлы.

Universal Image Loader — библиотека для загрузки изображений из сети или локальных носителей

koush/ion — и ещё одна популярная библиотека для асинхронных соединений и загрузок изображений.

Fresco | An image management library — Facebook тоже решил внести свою лепту в создании библиотеки для загрузки изображений.

Coil — относительно новая библиотека на Kotlin с корутинами.

Графики и диаграммы

AChartEngine — библиотека для рисования графиков

GraphView — ещё одна библиотека для графиков. Доступны два вида. Встраивается в разметку активности через код.

HoloGraphLibrary — Ещё одна библиотека для рисования графиков.

blackfizz/EazeGraph — и ещё одна библиотека с разными типами графиков.

Источник

Как устроен билд APK файла внутри

Процесс создания APK и компиляции кода

Рассматриваемые темы

  • Архитектура процессоров и необходимость для виртуальной машины
  • Понимание Java виртуальной машины
  • Компиляция исходного кода
  • Виртуальная машина Андроид
  • Процесс компиляции в .dex файл
  • ART против Dalvik
  • Описание каждой части билд процесса
  • Исходный код
  • Файлы ресурсов
  • AIDL файлы
  • Модули библиотек
  • AAR библиотеки
  • JAR библиотеки
  • Android Asset Packaging Tool
  • resources.arsc
  • D8 и R8
  • Dex и Multidex
  • Подписывание APK файла
  • Ссылки

Понимание флоу процесса билда APK файла, среда исполнения и компиляция кода
Этот пост нацелен быть отправной точкой для разработчиков, чтобы они ближе познакомились с билд процессом и созданием APK файла.

Архитектура процессоров и зачем нужна виртуальная машина

Андроид после того как вышел в 2007 году претерпел множество изменений связанный с билд процессом, средой исполнения и улучшениями производительности.

У андроида много удивительных характеристик и одна из них разные архитектуры процессоров такие как ARM64 и x86

Невозможно скомпилировать код, который поддерживает каждую архитектуру. Вот именно поэтому используется Java виртуальная машина.

Понимание Java виртуальной машины

JVM это виртуальная машина, позволяющая устройству запускать код, который скомпилирован в Java байткод

Используя JVM, вы избавляетесь от проблемы с разной архитектурой процессоров.

JVM предоставляет переносимость и она позволяет запускать Java код в виртуальной среде, вместо того, чтобы запускать его сразу «на железе»

Но JVM была создана для систем с большими мощностями по ресурсам, а наш андроид имеет сравнительно мало памяти и заряда батареи.

По этой причине Google создал адаптированную под андроид виртуальную машину, которая называется Dalvik.

Компилируем исходный код

Наш исходный Java код для андроида компилируется в класс файл .class с байткодом с помощью javac компилятора и запускается на JVM

Для котлина есть kotlinc компилятор, который делает совместимый с Java байткод.

Байткод — это набор инструкций, который выполняется на целевом устройстве.

Java байткод — это набор инструкций для Java виртуальной машины.

Андроид виртуальная машина

Каждое андроид приложение работает на своей виртуальной машине. С версий 1.0 до 4.4, это был Dalvik. В андроид 4.4, вместе с Dalvik, Google представил в качестве эксперимента новый андроид runtime, который назывался ART

Сгенерированный класс файл .class содержит JVM Java байткод.

Но у андроида есть свой собственный оптимизированный формат байткода, который называется Dalvik bytecode — это просто инструкции машинного кода для процессора также как и JVM байткод.

Комплияция в .dex файл

Во время компиляции происходит конвертация .class класс файл и .jar библиотеки в один classes.dex файл, который содержит Dalvik байткод.

Команда dx превращает все .class и .jar файлы в один classes.dex файл, который написан с форматом Dalvik байткода.

Dex — это аббревиатура с английского — Dalvik Executable.

ART против Dalvik

C версии 4.4 андроид мигрировал на ART. ART также работает с .dex файлом.

Преимущество ART над Dalvik проявляется в том, что приложения запускаются быстрее, потому что весь DEX байткод транслируется в машинный код во время установки, не нужно дополнительного времени на компиляцию в рантайме.

Читайте также:  Архивные чаты ватсап андроид

ART и Dalvik совместимы, так что приложения разработанные для Dalvik должны работать и на ART.

Компиляция Dalvik (JIT- just in time) имела такие минусы как — быстрая трата батареи, лаги в приложениях и плохой перформанс. В Dalvik трансляция происходит только когда это нужно. Мы открываем новый экран и только в этот момент происходит трансляция, за счет этого установка происходит быстрее, но при этом проседает перформанс.

Это причина по которой Google сделал Android Runtime (ART).

ART — основан на AOT (ahead of time) компиляции, она происходит до того как приложение запустится.

В ART компиляция происходит во время установки приложения. Это ведет к более долгому времени установки, но уменьшает трату батареи и избавляет от лагов, которые были на Dalvik.

Несмотря на то, что Dalvik был заменен на ART, .dex формат файлов еще используется

В андроид 7.0 JIT вернулся. Гибридная среда сочетает фичи как от JIT компиляции так и
от ART

Среда запуска байткода это очень важная часть андроида и она вовлечена в процесс запуска и установки приложения

Каждый этап описанного процесса

Source Code (Исходный код)

Это Java и Kotlin файлы в src пакете.

Resource Files

Файлы находящиеся в директории с ресурсами

AIDL Files

AIDL — аббревиатура Android Interface Definition Language, позволяет вам описать интерфейс межпроцессорного взаимодействия.

AIDL — может использоваться между любыми процессами в андроиде.

Library Modules

Модули библиотек содержат Java или Kotlin классы, компоненты андроида и ресурсы.

Код и ресурсы бибилотеки компилируются и пакуются вместе с приложением.

Поэтому модуль библиотеки может считаться компайл тайм артефактом.

AAR Libraries

Андроид библиотеки компилируются в AAR — android archive файл, который вы можете использовать как зависимость для вашего android app модуля.

AAR файлы могут содержать андроид ресурсы и файл манифеста, что позволяет вам упаковать туда общие ресурсы такие как layouts и drawables в дополнение к Java или Kotlin классам и методам.

JAR Libraries

JAR это Java библиотека и в отличие от AAR она не может содержать андроид ресурсы и манифесты.

Android Asset Packaging Tool

AAPT2 — аббревиатура (Android Asset Packaging Tool) — компилирует манифест и файлы ресурсов в один APK.

Этот процесс разделен на два шага компиляцию и линковку Это улучшает производительность так как если вы поменяете один файл, вам нужно компилировать только его и прилинковать к остальным файлам командой ‘link’

AAPT2 может компилировать все типы андроид ресурсов, таких как drawables и XML файлы.

При вызове AAPT2 для компиляции, туда передается по одному ресурсному файлу на каждый вызов

Затем APPT2 парсит файл и генерирует промежуточный бинарный файл с расширением .flat

Фаза линковки склеивает все промежуточные файлы сгенерированные в фазе компиляции и дает нам на выход один .apk файл. Вы также можете сгенерировать R.java файл и правила для proguard в это же время.

resources.arsc

Полученный на выходе .apk файл не включает в себя DEX файл, APK не подписан и не может быть запущен на устройстве.

APK содержит AndroidManifest, бинарные XML файлы и resources.arsc

resource.arsc содержит всю мета информацию о ресурсах, такую как индексы всех ресурсов в пакете

Это бинарный файл и APK который может быть запущен. APK который вы обычно создаете и запускаете не сжат и может быть использован просто посредством размещения в памяти.

R.java файл это выходной файл вместе с APK ему назначен уникальный id, который позволяет Java коду использовать ресурсы во время компиляции.

arsc это индекс ресурса который используется во время запуска приложения

D8 и R8

Начиная с андроид студии 3.1 и далее, D8 был сделан дефолтным компилятором.

D8 производит более маленькие dex файлы с лучшей производительностью, если сравнивать со старым dx.

R8 используется для компиляции кода. R8 это оптимизированная версия D8

D8 играет роль конвертера класс файлов в Dex файлы, а также производит дешугаринг функций из Java 8 в байткод, который может быть запущен на андроиде

R8 оптимизирует dex байткод. Он предоставляет такие фичи как оптимизация, обфускация, удаление ненужных классов.

Обфускация уменьшает размер вашего приложения укорачивая названия классов, методов и полей.

Обфускация имеет и другие преимущества для предотвращения реверс инжиниринга, но основная цель уменьшить размер.

Оптимизация уменьшает размер Dex файла путем переписывания ненужных частей кода и инлайнинга.

С помощью дешугаринга мы можем использовать удобные фичи языка Java 8 на андроиде.

Dex and Multidex

R8 дает на выходе один DEX файл, который называется classes.dex

Если количество методов приложения переваливает за 65,536, включая подключенные библиотеки, то произойдет ошибка при билде

Источник

30 Android-библиотек и инструментов, которые не должны пройти мимо вас в 2018 году

В течение лета 2018 года было разработано и обновлено множество отличных Android-библиотек и инструментов.

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

Надеюсь, вам понравится. Давайте начнём!

1. LayoutManagerGroup

Это библиотека, которая предлагает набор LayoutManagers для RecyclerView, которые помогут достичь таких эффектов, как на gif ниже.

Эти LayoutManagers в основном расширяют RecyclerView.LayoutManager или просто LinearLayoutManager и добавляют к ним дополнительную функциональность.

У этой библиотеки весьма лаконичная документация, но код говорит сам за себя. Лучший способ разобраться в библиотеке — это посмотреть пример приложения и увидеть в нём реализацию Activities и Fragments .

Библиотека выпущена под лицензией Apache 2.0, и на неё действительно стоит обратить внимание.

2. Creative View Pager

Creative View Pager — это интересная реализация ViewPager , в который добавляется список заголовков, плавно прокручивающийся вместе с содержимым страниц.

Документация исчерпывающая и объясняет, как использовать библиотеку. Выпущена под лицензией Apache 2.0 и написана практически полностью на Kotlin.

3. Instabug

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

Читайте также:  Навител для андроид установка ключа

В ходе недавнего обновления было исправлено множество ошибок. Подробнее об этих изменениях вы можете почитать здесь. Таким образом, Instabug даёт возможность:

  • сообщать об ошибках и сбоях;
  • проводить опросы прямо в приложениях;
  • запрашивать функциональность, которую хотелось бы видеть в приложении;
  • контролировать производительность сети;
  • включать автозапись экрана.

Я использую Instabug с 2016 года, когда я искал инструмент, который помог бы моей команде и нашим пользователям. Настоятельно рекомендую его и вам.

4. CheckableChipView

Это check-виджет для Android на основе EventFilterView из приложения, написанного специально для Google I/O 2018. Для него требуется minSdkVersion 21.

Хороший README позволяет быстро начать работать с виджетом. Первоначальную реализацию разработали Ник Батчер и Хосе Алькеррека из Google.

Виджет выпущен под лицензией Apache 2.0 и написан на Kotlin.

5. CrunchyCalendar

Это лёгкий, мощный и простой в использовании календарь.

Он предлагает ряд полезных функций:

  • бесконечная вертикальная прокрутка в обоих направлениях;
  • установка временных рамок для ограничения прокрутки внутри определенного периода;
  • выбор одной даты, нескольких дат или временных диапазонов;
  • предустановка выбранных дат;
  • цветовые настройки;
  • отображение цветовых индикаторов;
  • установка собственных ItemDecoration ;
  • являясь наследником класса View , может быть использован где угодно: в Activity , Fragment , Dialog , или может быть интегрирован в другой пользовательский View -компонент.

Замечательная документация с множеством примеров. Также есть пример приложения на Github и Google Play.

Этот проект выпущен под лицензией MIT.

6. InboxRecyclerView

Это библиотека для создания динамической навигации в приложении, вдохновлённая Google Inbox и Reply.

InboxRecyclerView можно спокойно добавить в любой существующий проект. Можете взглянуть на пример приложения и загрузить его APK, чтобы посмотреть на своём телефоне.

Автор также написал действительно хорошую статью о библиотеке. Она определённо достойна вашего внимания. Выпущена под лицензией Apache 2.0.

7. SlideBack

Это небольшая, но интересная библиотека, которая предлагает вам использовать SlideBackView внутри Activity . Чтобы понять, что это вообще такое, взгляните на gif ниже.

К сожалению, документация довольно скудная и написана на китайском языке. Я бы не использовал её в своём проекте, а только лишь поэкспериментировал с ней. Тем не менее, вы можете изучить приложение и саму библиотеку. Она выпущена под лицензией MIT.

8. DrawableToolbox

Эта библиотека создаёт drawables программно и избавляет от повторяющихся файлов drawable.xml .

Выпущена под лицензией Apache 2.0. Есть полноценная документация и работает с API 14 и выше.

9. ColorPicker

Это библиотека написана тем же разработчиком, который написал DrawableToolbox. Это просто ещё один виджет для выбора цвета.

Эта библиотека предоставляет неплохую документацию. Выпущена под лицензией Apache 2.0 и работает с API 14 и выше. Если вам нужна функциональность выбора цвета в вашем приложении, то это отличный вариант.

10. MvRx

Библиотека просто огромна. MvRx (произносится «мэйврикс» (англ. mavericks)) — это Android-фреймворк от Airbnb, который они используют практически для всех своих продуктов.

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

Основная цель заключалась в том, чтобы создавать приложения быстрее и с меньшими усилиями. MvRx использует следующие технологии и концепции:

  • Kotlin;
  • Архитектурные компоненты Android;
  • RxJava;
  • React (концепция);
  • Epoxy (рекомендуется).

Фреймворк выпущен под лицензией Apache 2.0. Документация и wiki просто великолепны. В wiki есть версия tl;dr , а есть и обычная, со всеми объяснениями, необходимым для понимания концепции.

11. RxRedux

Если вы слышали о Redux, его основных концепциях и трех принципах, вы, вероятно, сразу поймёте, о чём эта библиотека.

RxRedux — это реализация, основанная на RxJava (вдохновленная redux-observable), которая помогает нейтрализовать побочные эффекты (побочный эффект — это функция типа (Observable , StateAccessor ) -> Observable ).

RxRedux является некой заменой оператора .scan() в RxJava. README написан хорошо и отлично дополнен этой статьей. Библиотека выпущена под лицензией Apache 2.0.

12. Emoji Slider

Это кастомный SeekBar , вдохновленный эмоджи-слайдером от Instagram.

В проекте есть очень хорошая документация и пример приложения. Выпущен под лицензией Apache 2.0.

13. Covert

Это библиотека, которая помогает реализовывать Material Swipe Actions в RecyclerView. Естественно, она написана в соответствии с принципами Material Design.

Благодаря хорошей документации её легко насторить. Проект выпущен под лицензией MIT.

14. PixelShot

Это библиотека, которая может сохранять любой View -компонент или SurfaceView в виде изображения в форматах: JPG/PNG/nomedia . Библиотека работает в фоновом потоке, обрабатывая ошибки ввода-вывода и управляя распределением памяти.

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

Она довольно проста в использовании, а существующей документации вполне достаточно для начала. Она выпущена под лицензией Apache 2.0 и поддерживает API 19 и выше.

15. WiseFy

WiseFy — это оболочка для WifiManager и ConnectivityManager для Android. Она добавляет лёгкие высокоуровневые настройки, например:

  • добавление и удаление сетей;
  • проверка подключения устройства;
  • проверка текущей сети;
  • включение и выключение Wi-Fi и многое другое.

Это не новая библиотека, но недавно в ней произошёл огромный рефакторинг, и она была полностью переписана на Kotlin.

Документация хорошая и подробная. Лицензия: Apache 2.0.

16. MVICore

MVICore — это современный MVI-фреймворк от Badoo Tech, который включает в себя:

  • 100% Kotlin: простой способ реализовывать свои бизнес-функции в реактивном режиме;
  • Масштабирование: вы можете работать с единственным Reducer-компонентом, но при необходимости сможете добавить их столько, сколько нужно для обработки более сложных случаев;
  • Обработка событий: есть решение для обработки событий, состояние которые вы не хотите хранить;
  • Связывание реактивных компонентов: очень простой API для связки ваших реактивных компонентов вместе с автоматическим управлением жизненным циклом;
  • Логгер из коробки;
  • Временной отладчик: для всех ваших реактивных компонентов (а не только для переменных среды) вы сможете записать их состояние во времени и затем просмотреть его.
Читайте также:  Как управлять андроидом с помощью голоса

У фреймворка действительно хорошая документация. Если вы хотите переписать свое приложение в стиле MVI, то вам стоит обратить внимание на это решение.

17. DialerLoading

Эта библиотека может быть полезна при разработке собственных View -компонентов. Например, такой вот крутящийся телефонный диск может использоваться в качестве замены индикатора загрузки.

В проекте есть короткий README. А выпущен он под лицензией Apache 2.0. Написан полностью на Kotlin.

18. HtmlRecycler

Это интересная библиотека, которая преобразует простую HTML-страницу в RecyclerView из нативных Android-виджетов, основанная на Jsoup library и вдохновленная Medium Textview.

Эта библиотека ещё находится на стадии разработки, поэтому с осторожностью используйте её в своих проектах. Документация хорошая и доступно объясняет, как использовать библиотеку. Выпущена под лицензией Apache 2.0.

19. Android Clean Architecture Components Boilerplate

Я неоднократно упоминал об этой библиотеке, но благодаря усилиям команды Buffer она всё ещё развивается. В настоящее время они показывают, как использовать Koin вместо Dagger для инжекции зависимостей.

Библиотека выпускается под лицензией MIT.

20. Splitties

Splitties — это коллекция небольших независимых Android-библиотек, цель которых — сделать разработку приложений и библиотек для Android простой и весёлой. Мне очень нравится эта идея.

Этот проект называется «Splitties», потому что он разделён на небольшие модули, распространяемые как независимые Android-библиотеки, поэтому вы можете добавлять к себе в проект только те, которые действительно нужны, что помогает уменьшить размер финального apk-файла.

Каждый модуль спроектирован так, чтобы при своём небольшом размере он был максимально эффективным.

Документация хорошая, проект выпущен под лицензией Apache 2.0.

21. AndroidWM

Это небольшая библиотека для водяных знаков на изображениях, которая в том числе поддерживает зашифрованные и невидимые водяные знаки.

Библиотека довольно мощная и предлагает создавать несколько водяных знаков, выбирать режим рисования и способ загрузки ресурсов (как текст, как View -компонент или как Android-ресурс). Документация хорошая, ещё есть пример приложения.

Библиотека выпущена под лицензией Apache 2.0.

22. Android components

Это вторая коллекция библиотек в этой статье. На этот раз от команды Mozilla, и она может быть полезна во время создания браузеров или приложений, похожих на браузер.

На приведенной ниже диаграмме показаны некоторые из доступных компонентов.

В проекте есть 4 примера приложений, демонстрирующих использование различных компонентов. В нём также хорошая документация, и выпущен он под лицензией MPL 2.0.

23. RxBiometric

Эта библиотека связывает RxJava и RxKotlin с Biometric Prompt (сканер отпечатков пальцев) на Android (добавлен в Android 9 Pie, API 28+).

Согласно официальному блогу Android-разработчиков, если в вашем приложении вы используете собственные механизмы авторизации через отпечатки пальцев, то вы должны как можно скорее переключиться на использование BiometricPrompt API.

RxBiometric поможет вам сделать это через поток RxJava. В ней есть надежная документация с примерами использования. Выпущена под лицензией Apache 2.0.

24. EnhancedNavigationView

Это библиотека, которая расширяет BottomNavigationView от Google и позволяет взглянуть на него под весьма интересным углом.

Проект написан на Kotlin. Выпущен под лицензией Apache 2.0, и в нём есть пример приложения с использованием библиотеки.

25. livedata-ktx

Это расширение LiveData на Kotlin, превращающее код в цепочки вызовов, как RxJava, от команды Shopify. Если вы используете LiveData из архитектурных компонентов Android, то вы легко можете заменить его на LiveData KTX и создавать такие цепочки, как показано на примере ниже:

Проект разрабатывается четырьмя разработчиками и выпущен под лицензией MIT.

26. Tumbleweed

Tumbleweed — это ответвление от Universal-Tween-Engine, которое позволяет создавать плавные интерполяции для каждого атрибута каждого объекта в ваших проектах.

Tumbleweed отличается от исходного проекта несколькими особенностями:

  • уменьшено изменение Tweens и Timelines (разделено объявление и реализация Tweens );
  • интерполяция инкапсулирована путём создания определённого типа ( TweenType );
  • удалён пул (постоянный источник неожиданного поведения) и многое другое.

Содержит исчерпывающую документацию и выпущена под лицензией Apache 2.0. В ней также есть пример приложения.

27. Stylist

Stylist — это проект, созданный разработчиками Uber. Это Gradle-плагин, написанный на Kotlin, который генерирует базовый набор Android-тем. Например, если вы хотите определить размер текста в тёмной и светлой темах приложения, вы создадите следующий класс:

И вы получите сгенерированные XML-темы:

Проект выпущен под лицензией Apache 2.0.

28. RxkPrefs

Это небольшая библиотека, которая предоставляет реактивные shared preferences. Она разработана специально для использования вместе с Kotlin.

Используя экземпляр RxkPrefs , вы можете получить preferences. Но это будет не сырое значение preference, а экземпляр интерфейса Pref , который предоставляет больше функциональности.

Библиотека выпущена под лицензией Apache 2.0.

29. Philology

Эта библиотека предлагает простой способ динамической замены строковых ресурсов вашего приложения или добавления новых языков без необходимости публикации новой версии в Google Play. Как это работает?

Philology не изменяет способ использования ресурсов при разработке приложения. Вместо этого происходит внедрение в этот процесс: перехватывается значение, возвращаемое из ваших файлов внутри приложения, и проверяется, есть ли на сервере более новое значение. Это позволяет устранять опечатки, улучшать формулировки или даже добавлять новый язык. Всё в режиме реального времени, без необходимости выпуска новой версии приложения.

Это действительно хорошая идея. Библиотека выпущенна под лицензией Apache 2.0. Проект содержит пример приложения, а также действительно полную документацию.

30. Scarlet

Это вдохновлённый Retrofit WebSocket -клиент для Kotlin и Java от команды Tinder. Библиотека хорошо задокументирована и описана в этой статье.

Вы также можете посмотреть её использование в приложении для проверки курса Биткойна в реальном времени.

Scarlet управляется при помощи StateMachine, также разработанной командой Tinder.

Проект выпущен под лицензией BSD 3-Clause.

Заключение

Вот и всё! Надеюсь, вам понравился этот список, и некоторые проекты вдохновили вас. Если вы знаете ещё какую-нибудь большую библиотеку, которая была выпущена за последние 5 месяцев, и я не упоминул об этом, пожалуйста, дайте мне знать в комментариях.

Источник

Оцените статью