#Multiplatform #Kotlin #CI #CD
Continuous delivery для вашей Kotlin Multiplatform библиотеки
Уже сейчас любому Android разработчику, использующему Kotlin, можно легко заглянуть в будущее языка и узнать как шарить код и с какими проблемами сталкиваются разработчики, которые пишут реальные проекты и выпускаются open source библиотеки.
В статье вы найдёте опыт ребят из Badoo по выстраиванию инфраструктуры CI и CD для сборки и публикации библиотеки Reaktive.
Continuous delivery для вашей Kotlin Multiplatform библиотеки
Kotlin MPP
сейчас одно из самых многообещающих решений для шаринга кода между платформами (мнение лично моё). Да есть Flutter и я жду интересной битвы в будущем.Уже сейчас любому Android разработчику, использующему Kotlin, можно легко заглянуть в будущее языка и узнать как шарить код и с какими проблемами сталкиваются разработчики, которые пишут реальные проекты и выпускаются open source библиотеки.
В статье вы найдёте опыт ребят из Badoo по выстраиванию инфраструктуры CI и CD для сборки и публикации библиотеки Reaktive.
Хабр
Continuous delivery для вашей Kotlin Multiplatform библиотеки
Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и принимаю участие в создании библиотеки Reaktive — Reactive Extensions на чистом Kotlin. В...
#Emulator #CI #Docker
Continuous testing with new Android emulator tools
Google открывает доступ к своим скриптам для Docker Container-ов c Android эмулятором, чтобы помочь разработчикам упростить тестирование последних изменений.
Помимо этого Google предоставила следующее:
👉 Скрипт для загрузки эмуляторов (AOSP и Google Play Services)
👉 Генератор Docker образов с Android эмулятором
👉 Поддержка работы по ADB с эмулятором в контейнере
👉 Remote streaming: возможность подключения к эмулятору из контейнера через браузер и видеть что происходит, а также взаимодействовать с ним
Пока образ работает только на Linux, но работы по поддержке macOS и Windows ведутся.
Continuous testing with new Android emulator tools
Google открывает доступ к своим скриптам для Docker Container-ов c Android эмулятором, чтобы помочь разработчикам упростить тестирование последних изменений.
Помимо этого Google предоставила следующее:
👉 Скрипт для загрузки эмуляторов (AOSP и Google Play Services)
👉 Генератор Docker образов с Android эмулятором
👉 Поддержка работы по ADB с эмулятором в контейнере
👉 Remote streaming: возможность подключения к эмулятору из контейнера через браузер и видеть что происходит, а также взаимодействовать с ним
Пока образ работает только на Linux, но работы по поддержке macOS и Windows ведутся.
Android Developers Blog
Continuous testing with new Android emulator tools
Posted by Lingfeng Yang, Android Studio team Developers often use the Android Emulator during their day-to-day development to quickly t...
#ChromeOS #LargeScreen
VLC optimizes its Android app for immersive video experiences on larger screens
VLC - самый популярный плеер, доступный на любой из современных платформ: Windows, macOS, Android, iOS. Команда приложения захотела сделать его еще более доступным и адаптировать своё Android приложение для корректно работы на Chrome OS. Что для этого надо было сделать:
👉 Поддержка экранов с большой диагональю
👉 Поддержка управления клавиатурой и мышкой
👉 Поддержка работы в плавающем окне
👉 Поддержка изменения размера окна
👉 VLC - это о видео и звуке, а поэтому надо поддержать нативный код для x86 и x86_64, которые популярны в Chromebook-ах
Будет классно услышать кого-то с опытом адаптации Android приложения для Chrome OS в @android_broadcast_discussions
VLC optimizes its Android app for immersive video experiences on larger screens
VLC - самый популярный плеер, доступный на любой из современных платформ: Windows, macOS, Android, iOS. Команда приложения захотела сделать его еще более доступным и адаптировать своё Android приложение для корректно работы на Chrome OS. Что для этого надо было сделать:
👉 Поддержка экранов с большой диагональю
👉 Поддержка управления клавиатурой и мышкой
👉 Поддержка работы в плавающем окне
👉 Поддержка изменения размера окна
👉 VLC - это о видео и звуке, а поэтому надо поддержать нативный код для x86 и x86_64, которые популярны в Chromebook-ах
Будет классно услышать кого-то с опытом адаптации Android приложения для Chrome OS в @android_broadcast_discussions
Android Developers
VLC optimizes its Android app for immersive video experiences on larger screens | Android Developers
This media is not supported in your browser
VIEW IN TELEGRAM
SurveyKit: Create beautiful surveys on Android
Любите делать опросы? Тогда вам пригодится библиотека SurveyKit
Любите делать опросы? Тогда вам пригодится библиотека SurveyKit
#AndroidX
Количество артефактов в Android огромное, чтобы посмотреть их можно полазить в документации либо зайти на maven.google.com. Сегодня сайт стал удобнее - на нем наконец-то появился поиск 🎉
Количество артефактов в Android огромное, чтобы посмотреть их можно полазить в документации либо зайти на maven.google.com. Сегодня сайт стал удобнее - на нем наконец-то появился поиск 🎉
#ConstraintLayout #AndroidX
Awesomeness of ConstraintLayout Flow
Мы уже давно ждем ConstrainLayout 2.0, а особенно MotionLayout + визуальный редактор анимаций в Android Studio! Но вот уже с Google I/O 2019 они весят в статусе beta 😞.
В статье рассматриваются новые элемент - Flow.
Awesomeness of ConstraintLayout Flow
Мы уже давно ждем ConstrainLayout 2.0, а особенно MotionLayout + визуальный редактор анимаций в Android Studio! Но вот уже с Google I/O 2019 они весят в статусе beta 😞.
В статье рассматриваются новые элемент - Flow.
Flow
позволяет улучшить расположение элементов, нечто подобное на Chain, но уже работает не в первом измерение а одновременно по горизонтали и вертикали.Medium
Awesomeness of ConstraintLayout Flow
Constraint Layout Flow
#Gradle #Bazel #Buck
Сборка Android-приложения. Задачка со звёздочкой
Сборка современного Android приложения - непростая задача . Множество библиотек, многомодульность, использование плагинов, процессоров аннотаций и др. Система сборки Gradle не радует своей скоростью.
Есть ли сборка на Android вне Gradle? В статье вы найдете сравнение стандартной системы сборки с Bazel и Buck
Сборка Android-приложения. Задачка со звёздочкой
Сборка современного Android приложения - непростая задача . Множество библиотек, многомодульность, использование плагинов, процессоров аннотаций и др. Система сборки Gradle не радует своей скоростью.
Есть ли сборка на Android вне Gradle? В статье вы найдете сравнение стандартной системы сборки с Bazel и Buck
Хабр
Сборка Android-приложения. Задачка со звёздочкой
Привет, Хабр! Летом я выступал на Summer Droid Meetup с докладом про сборку Android-приложения. Видеоверсию можно найти здесь: habr.com/ru/company/funcorp/blog...
#Material #UI
Material Components for Android 1.1.0 Beta 1
Google имеет странную особенность в плане Material Design - представлять его намного ранее чем готовы его компоненты для адаптации приложениями и в системе. Так было с первой версий дизайна и со второй. Поэтому сообщество активно начало представлять свои реализации компонентов.
Наконец-то Google подходит к первому значительному обновлению библиотеки Material Design 2.0 для Android:
👉 Поддержка темной темы
👉 Новый пикер для даты
👉 Табы и Bottom Navigation поддерживают Badge
👉 Добавлен Extended FAB
👉 Поддержка новой системой навигации из Android 10
👉 Поддержка Material Theming: Shape, Typography, Color
👉 MaterialAlertDialogBuilder - диалог в Material стиле
👉 Улучшение стабильности
👉 Улучшение accessibility
👉 Улучшение анимаций
Очень хочется чтобы обновление спецификации Material Design шло в ногу с библиотекой Material Component for Android
Material Components for Android 1.1.0 Beta 1
Google имеет странную особенность в плане Material Design - представлять его намного ранее чем готовы его компоненты для адаптации приложениями и в системе. Так было с первой версий дизайна и со второй. Поэтому сообщество активно начало представлять свои реализации компонентов.
Наконец-то Google подходит к первому значительному обновлению библиотеки Material Design 2.0 для Android:
👉 Поддержка темной темы
👉 Новый пикер для даты
👉 Табы и Bottom Navigation поддерживают Badge
👉 Добавлен Extended FAB
👉 Поддержка новой системой навигации из Android 10
👉 Поддержка Material Theming: Shape, Typography, Color
👉 MaterialAlertDialogBuilder - диалог в Material стиле
👉 Улучшение стабильности
👉 Улучшение accessibility
👉 Улучшение анимаций
Очень хочется чтобы обновление спецификации Material Design шло в ногу с библиотекой Material Component for Android
GitHub
Release 1.1.0-beta01 · material-components/material-components-android
Dependency Updates:
Dependency
Previous version
New version
appcompat
1.1.0-rc01
1.1.0
core
1.1.0-rc03
1.1.0
vectordrawable
1.1.0-rc01
1.1.0
viewpager2
1.0.0-beta03
1.0.0-beta04
Lib...
Dependency
Previous version
New version
appcompat
1.1.0-rc01
1.1.0
core
1.1.0-rc03
1.1.0
vectordrawable
1.1.0-rc01
1.1.0
viewpager2
1.0.0-beta03
1.0.0-beta04
Lib...
#Resources
Split layouts into sub-folders in Android Studio
Как много лежит у вас ресурсов в папках каждого типа (layout, drawable и пр)? У меня много XML в layout, и меня это все время огорчает. Возможно Jetpack Compose это исправить, но пока приходится делать хаки.
Split layouts into sub-folders in Android Studio
Как много лежит у вас ресурсов в папках каждого типа (layout, drawable и пр)? У меня много XML в layout, и меня это все время огорчает. Возможно Jetpack Compose это исправить, но пока приходится делать хаки.
Android Broadcast
Совсем недавно ребята из Android Dev Podcast организовали продажу своих фирменных маек. Но вот незадача, раздавать они их будут только на российских конференциях. Я решил устранить это досадную несправедливость - Android Broadcast организовал возможность получить…
Остается последняя возможность заказать футболку
#Kotlin #CodeQuality
Вышел Detekt 1.1.0
Вышла новая версия статического анализатора Kotlin кода
Вышел Detekt 1.1.0
Вышла новая версия статического анализатора Kotlin кода
Detekt
, в которую попали исправление багов, улучшение старых и новые правила.#Security #NDK
Securing API Keys using Android NDK
У Java байткода есть один минус - его легко декомпилировать и вытащить строки, а в строках разработчики обычно хранят различные ключи для доступа к сервисам.
В таких случаях злоумышлении могут воспользоваться этими ключами в своих приложениях, но не всегда. Некоторые сервисы еще производят верификацию по сертификату, которому подписано приложение.
Как вшить ключи в приложение и сделать это надежнее? Используйте нативный код. В статье вы найдете руководство как сохранять ключи в нативном коде и работать с ними из Java/Kotlin.
Securing API Keys using Android NDK
У Java байткода есть один минус - его легко декомпилировать и вытащить строки, а в строках разработчики обычно хранят различные ключи для доступа к сервисам.
В таких случаях злоумышлении могут воспользоваться этими ключами в своих приложениях, но не всегда. Некоторые сервисы еще производят верификацию по сертификату, которому подписано приложение.
Как вшить ключи в приложение и сделать это надежнее? Используйте нативный код. В статье вы найдете руководство как сохранять ключи в нативном коде и работать с ними из Java/Kotlin.
Mindorks
Securing API Keys using Android NDK (Native Development Kit)
In this blog, we will learn how to secure our API Keys that are used in Android applications using the Android NDK (Native Development Kit). We have created a detailed blog of securing the API Keys.
#Firebase #Coroutines
Using Firebase on Android with Kotlin Coroutines
Чем будет равно
Using Firebase on Android with Kotlin Coroutines
Kotlin + Android
= ❤️Kotlin + Coroutines
= ❤️Android + Firebase
= (вынужденное использование)Чем будет равно
Android + Kotlin + Coroutines + Firebase
и как начать? В статье вы найдете ответыJoe Birch
Using Firebase on Android with Kotlin Coroutines
Whilst recently working on a side project I ran into a situation where I needed to make use of the Android Firebase SDKs. This project of mine uses Kotlin Coroutines for all of the asynchronous task handling, so ideally I wanted to keep any Firebase calls…
Telegram имеет возможность "Instant View" (https://instantview.telegram.org). Используете ли вы эту фичу?
Final Results
42%
Постоянно когда доступна
21%
Иногда
11%
Нет
25%
Что это?
#ReactiveX #Kotlin #Multiplatform
Вышел Reaktive 1.0.0
Состоялся первый стабильный релиз библиотеки Reaktive. Это решение примечательно тем что это первый реализация любимого многими Rx на чистом Kotlin да причем еще с реализацией на Kotlin Multiplatform c поддержкой JVM, Android, iOS, JS и Linux.
Пал еще один из столпов - RxJava и проекты все больше становятся чисто-чисто Kotlin.
Вышел Reaktive 1.0.0
Состоялся первый стабильный релиз библиотеки Reaktive. Это решение примечательно тем что это первый реализация любимого многими Rx на чистом Kotlin да причем еще с реализацией на Kotlin Multiplatform c поддержкой JVM, Android, iOS, JS и Linux.
Пал еще один из столпов - RxJava и проекты все больше становятся чисто-чисто Kotlin.
GitHub
Release 1.0.0 · badoo/Reaktive
First stable release
New coroutines interop module - coroutines-interop
New RxJava3 interop module - rxjava3-interop
New utilities module - utils
Performance improvements
More operators
Bug fixes
New coroutines interop module - coroutines-interop
New RxJava3 interop module - rxjava3-interop
New utilities module - utils
Performance improvements
More operators
Bug fixes
#Meetup #Minsk
GDG Minsk Mobile Meetup
Сегодня, 8 октября, состоится митап сообщества GDG Minsk по Android. Митап сконцентрируется на Jetpack:
Android Navigation component спешит на помощь
Артем Нестеренко, Android developer, LWO (Light Well Organization)
Артем познакомит с Navigation component и расскажет как организовать навигацию в вашем приложение с его помощью, насколько удобен визуальный редактор, какие есть сложности и как можно их обойти.
Jetpack Compose
Евгений Ковалев, Senior Android Developer, Ciklum
Jetpack Compose - это самый ожидаемый проект от разработчиков из Google в мире Android. Декларативный UI очень удобное решение и большинство уже дали свой ответ, посмотрим что нам уже обещает сделать Google.
Участник бесплатное по предварительной регистрации.
Дата: 8 октября 19.00 (начало регистрации в 18.30)
Место: SPACE (ул. Октябрьская 16/4).
GDG Minsk Mobile Meetup
Сегодня, 8 октября, состоится митап сообщества GDG Minsk по Android. Митап сконцентрируется на Jetpack:
Android Navigation component спешит на помощь
Артем Нестеренко, Android developer, LWO (Light Well Organization)
Артем познакомит с Navigation component и расскажет как организовать навигацию в вашем приложение с его помощью, насколько удобен визуальный редактор, какие есть сложности и как можно их обойти.
Jetpack Compose
Евгений Ковалев, Senior Android Developer, Ciklum
Jetpack Compose - это самый ожидаемый проект от разработчиков из Google в мире Android. Декларативный UI очень удобное решение и большинство уже дали свой ответ, посмотрим что нам уже обещает сделать Google.
Участник бесплатное по предварительной регистрации.
Дата: 8 октября 19.00 (начало регистрации в 18.30)
Место: SPACE (ул. Октябрьская 16/4).
#Fragment
TransactionTooLargeException and a Bridge to Safety — Part 1
TransactionTooLargeException - это ошибка которая возникает в случае, когда ваше приложение пытается осуществить
Чтобы обойти эту проблему вы можете использовать библиотеку Bridge
TransactionTooLargeException and a Bridge to Safety — Part 1
TransactionTooLargeException - это ошибка которая возникает в случае, когда ваше приложение пытается осуществить
Binder
транзакцию с более чем 1 Мб данных. Самый распространённый случай возникновения этой ошибки - сохранение слишком большого объёма данных в Activity.onSavedInstanceState(Bundle)
.Чтобы обойти эту проблему вы можете использовать библиотеку Bridge
Medium
TransactionTooLargeException and a Bridge to Safety — Part 1
TL;DR : Stop worrying about TransactionTooLargeException; use Bridge.
#RecyclerView #NestedScrolling
RecyclerView SmoothScrollToPosition Not Working within NestedScrollView Solution
История того как заводили RecyclerView.smoothScrollToPosition(int position) с Nested Scroll
RecyclerView SmoothScrollToPosition Not Working within NestedScrollView Solution
История того как заводили RecyclerView.smoothScrollToPosition(int position) с Nested Scroll
Medium
📃RecyclerView SmoothScrollToPosition Not Working within NestedScrollView Solution— Android.✔
Scroll your recycler view within a Nested scroll view easily
Android Broadcast
Telegram имеет возможность "Instant View" (https://instantview.telegram.org). Используете ли вы эту фичу?
Спасибо всем кто ответил на опрос. Думал улучшить визуальный формат постов, но пришлось бы в жертву принести "Instant View". Результаты показали мне что этого делать не стоит