#Kotlin #Binary #Compatibility #Library
Бинарная совместимость Reaktive: как мы её обеспечиваем
Разработка библиотек - не самое простое занятие. Ты не можешь получить отчет об ошибке в Crashlytics, твои пользователи (программисты) не всегда могут оставить внятный фидбек, а еще тебе надо обеспечивать обратную совместимость.
Обратную совместимость обычно разделяют на 2 вида: API и Binary. Первая довольная проста - все что написано на старой версии библиотеки, должно запускаться и на новой.
С Binary совместимость все сложнее. В статье один из авторов библиотеки Reaktive разбирает, что именно такое Binary совместимость и как ее обеспечивают на примере этой библиотеки.
Бинарная совместимость Reaktive: как мы её обеспечиваем
Разработка библиотек - не самое простое занятие. Ты не можешь получить отчет об ошибке в Crashlytics, твои пользователи (программисты) не всегда могут оставить внятный фидбек, а еще тебе надо обеспечивать обратную совместимость.
Обратную совместимость обычно разделяют на 2 вида: API и Binary. Первая довольная проста - все что написано на старой версии библиотеки, должно запускаться и на новой.
С Binary совместимость все сложнее. В статье один из авторов библиотеки Reaktive разбирает, что именно такое Binary совместимость и как ее обеспечивают на примере этой библиотеки.
Хабр
Бинарная совместимость Reaktive: как мы её обеспечиваем
Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и принимаю участие в создании библиотеки Reaktive — Reactive Extensions на чистом Kotlin. Любая библиотека должна по...
#Internship #НеРеклама
Летняя стажировка в Яндекс
Стартовал набор на летнюю стажировку в Яндекс. Направлений стажировки много:
👉 мобильная разработка (Android, iOS)
👉 бэкенд-разработка
👉 фронтенд-разработка
👉 машинное обучение
👉 аналитика
Участников ждут:
👉 от трёх до шести месяцев оплачиваемой работы бок о бок с ментором,
👉 только реальные задачи по улучшению продукта,
👉 приятное место, где работают увлеченные люди и проходят интересные мероприятия
Прием заявок заканчивается 31 мая 2020. Пройти стажировку можно в разных локациях или вам оплатят дорогу и проживание в хостеле
Ответы на популярные вопросы о стажировке здесь
Рекомендую всем попробовать попасть в программу Яндекс. Я помню как устроился на работу в Яндекс в Минске и мой уровень пошел в гору невероятными темпами, потому что я работал с очень сильными специалистами, у которых я учился изо дня в день.
Летняя стажировка в Яндекс
Стартовал набор на летнюю стажировку в Яндекс. Направлений стажировки много:
👉 мобильная разработка (Android, iOS)
👉 бэкенд-разработка
👉 фронтенд-разработка
👉 машинное обучение
👉 аналитика
Участников ждут:
👉 от трёх до шести месяцев оплачиваемой работы бок о бок с ментором,
👉 только реальные задачи по улучшению продукта,
👉 приятное место, где работают увлеченные люди и проходят интересные мероприятия
Прием заявок заканчивается 31 мая 2020. Пройти стажировку можно в разных локациях или вам оплатят дорогу и проживание в хостеле
Ответы на популярные вопросы о стажировке здесь
Рекомендую всем попробовать попасть в программу Яндекс. Я помню как устроился на работу в Яндекс в Минске и мой уровень пошел в гору невероятными темпами, потому что я работал с очень сильными специалистами, у которых я учился изо дня в день.
Young&&Yandex ― старт карьеры в Яндексе
Экосистема стажировок и образовательных проектов — можно попробовать себя в IT, прокачать навыки и начать работать в Яндексе
#Kotlin #Kronos
Kronos-Android: Easy NTP
Библиотека для получения реального времени с сервера и его синхронизацией. Позволит избежать ситуаций, когда пользователь меняет время на устройстве для получения бонусов 😁
Kronos-Android: Easy NTP
Библиотека для получения реального времени с сервера и его синхронизацией. Позволит избежать ситуаций, когда пользователь меняет время на устройстве для получения бонусов 😁
Medium
Kronos-Android: Easy NTP
A Kotlin open source library for sane time
Используете ли вы Espresso Test Recorder?
Final Results
4%
Да
37%
Не пишу UI тесты
28%
Знаю о ней и не использую
18%
Что это?
14%
Покажите результаты
#Kotlin
Расширения в Kotlin. Опасный атавизм или полезный инструмент?
Kotlin привнёс множество новинок и удобств для Android разработчиков после долгого застоя в Java. И как любой реформатор есть, те кто отнеся положительно, и отрицательно к нему.
В статье разбирается почему Extension Function в Kotlin. По мнению автора проблемы заключаются в том, что:
👉 Расширения на DTO — нарушение шаблона Data Transfer Object
👉 Расширения специфичны и трудно понять какая функция обычная, а какая расширение
👉 Расширения разбросаны по всему проекту, образуя помойку
👉 Не замокать функции расширения при юнит-тестировании
👉 Есть вероятность перекрытия функции расширения одноименной функцией, размещенной внутри расширенного класса
👉 Расширение привязано к классу, а не к объекту, и это может вызвать путаницу
Расширения в Kotlin. Опасный атавизм или полезный инструмент?
Kotlin привнёс множество новинок и удобств для Android разработчиков после долгого застоя в Java. И как любой реформатор есть, те кто отнеся положительно, и отрицательно к нему.
В статье разбирается почему Extension Function в Kotlin. По мнению автора проблемы заключаются в том, что:
👉 Расширения на DTO — нарушение шаблона Data Transfer Object
👉 Расширения специфичны и трудно понять какая функция обычная, а какая расширение
👉 Расширения разбросаны по всему проекту, образуя помойку
👉 Не замокать функции расширения при юнит-тестировании
👉 Есть вероятность перекрытия функции расширения одноименной функцией, размещенной внутри расширенного класса
👉 Расширение привязано к классу, а не к объекту, и это может вызвать путаницу
Хабр
Расширения в Kotlin. Опасный атавизм или полезный инструмент?
Kotlin — еще молодой язык, но уже стремительно ворвался в нашу жизнь. Из-за этого не всегда понятно, каким образом правильно реализовать тот или иной функциона...
#Podcast #Flutter
Android Broadcast Podcast #6: "Из Android во Flutter" с Евгением Сатуровым
Flutter - один из самых бурно развивающихся кроссплатформенных фреймворков для создания мобильных приложений под Android и iOS. Его популярность дала новую жизнь Dart - языку программирования, который используется в Flutter. Разработчики под Android обратили внимание на новинку от любимой компании Google. Гость выпуска, Женя Сатуров, поделился тем, как он после нескольких лет в нативной Android разработке, ушел в Flutter и почувствовал новое вдохновение.
Сравнили удобство разработки под Android и Flutter:
- Kotlin и Dart
- Android Studio для Android и для Flutter, и конечно же Visual Studio Code
- Каково было привыкать на Flutter без стандартного набора Android разработки
- Архитектурные подходы
Немного о госте Жене Сатурове. Был Android разработчиком (4.5 года опыта за плечами). Год назад его поглатил Flutter. Основатель и ведущий soundcloud.com/flutterdevpodcast. Член программного комитета Mobius, Lead GDG Воронеж и частый спикер на конференциях.
Полезные ссылки:
👉 Flutter Dev Podcast
👉 Flutter Dev Podcast в Telegram
👉 То место, откуда начинается Flutter - flutter.dev
👉 Краткий экскурс во Flutter
👉 Доклад от Жени Сатурова "Flutter in action: how to stop considering and hit the road"
Отдельное спасибо Антону Рожкову за помощь в монтаже выпуска
Android Broadcast Podcast #6: "Из Android во Flutter" с Евгением Сатуровым
Flutter - один из самых бурно развивающихся кроссплатформенных фреймворков для создания мобильных приложений под Android и iOS. Его популярность дала новую жизнь Dart - языку программирования, который используется в Flutter. Разработчики под Android обратили внимание на новинку от любимой компании Google. Гость выпуска, Женя Сатуров, поделился тем, как он после нескольких лет в нативной Android разработке, ушел в Flutter и почувствовал новое вдохновение.
Сравнили удобство разработки под Android и Flutter:
- Kotlin и Dart
- Android Studio для Android и для Flutter, и конечно же Visual Studio Code
- Каково было привыкать на Flutter без стандартного набора Android разработки
- Архитектурные подходы
Немного о госте Жене Сатурове. Был Android разработчиком (4.5 года опыта за плечами). Год назад его поглатил Flutter. Основатель и ведущий soundcloud.com/flutterdevpodcast. Член программного комитета Mobius, Lead GDG Воронеж и частый спикер на конференциях.
Полезные ссылки:
👉 Flutter Dev Podcast
👉 Flutter Dev Podcast в Telegram
👉 То место, откуда начинается Flutter - flutter.dev
👉 Краткий экскурс во Flutter
👉 Доклад от Жени Сатурова "Flutter in action: how to stop considering and hit the road"
Отдельное спасибо Антону Рожкову за помощь в монтаже выпуска
YouTube
"Из Android во Flutter" с Евгением Сатуровым
Flutter - один из самых бурно развивающихся кроссплатформенных фреймворков для создания мобильных приложений под Android и iOS. Его популярность дала новую жизнь Dart - языку программирования, который используется в Flutter. Разработчики под Android обратили…
#JetpackCompose #Animation
Intro to animations with Jetpack Compose
Много говорить про Jetpack Compose пока не хочу, так как все сыро и будет еще меняться перед бета и альфа. В статье найдёте взгляд на анимации в новом декларативном подходе.
Intro to animations with Jetpack Compose
Много говорить про Jetpack Compose пока не хочу, так как все сыро и будет еще меняться перед бета и альфа. В статье найдёте взгляд на анимации в новом декларативном подходе.
Medium
Intro to animations with Jetpack Compose
Canvas transformations and transitions
Инженеры Avito решили открыть исходники своих наработок для Android проектов: библиотеки для приложений и тестовых фреймворков, Gradle плагины.
Обратной совместимости пока не гарантируется, но может появится если будут желающие использовать библиотеки и у себя в проектах.
Обратной совместимости пока не гарантируется, но может появится если будут желающие использовать библиотеки и у себя в проектах.
#Fragment #Animation
Android Fragments: FragmentContainerView
В AndroidX Fragment 1.2.0 появилась специальная ViewGroup, которую надо использовать для добавления Fragment, - FragmentContainerView. В статье разбираются особенности нового контейнера.
Android Fragments: FragmentContainerView
В AndroidX Fragment 1.2.0 появилась специальная ViewGroup, которую надо использовать для добавления Fragment, - FragmentContainerView. В статье разбираются особенности нового контейнера.
Medium
Android Fragments: FragmentContainerView
Using FragmentContainerView to host fragments
#Material #UI
Вышла Material Design 1.1.0
Вышло обновление библиотеки Material Design для Android, которое привнесло:
👉 Многие компоненты приведены в соответствии с новой спецификацей Material Design
👉 Использование новой Material Shape System большинством компонентов
👉 Улучшена поддержка "Edge-to-Edge" дизайна и навигации жестами из Android 10
👉 Исправлено поведения компонентов на Android до 5.0
👉 Поддержка темной темы всем компонентами библиотеки
👉 Date Picker
👉 Extended Floating Action Button
👉 Улучшения в Accessibility
👉 Исправление багов и улучшения
Вышла Material Design 1.1.0
Вышло обновление библиотеки Material Design для Android, которое привнесло:
👉 Многие компоненты приведены в соответствии с новой спецификацей Material Design
👉 Использование новой Material Shape System большинством компонентов
👉 Улучшена поддержка "Edge-to-Edge" дизайна и навигации жестами из Android 10
👉 Исправлено поведения компонентов на Android до 5.0
👉 Поддержка темной темы всем компонентами библиотеки
👉 Date Picker
👉 Extended Floating Action Button
👉 Улучшения в Accessibility
👉 Исправление багов и улучшения
GitHub
Release 1.1.0 · material-components/material-components-android
What's New Since 1.0.0?
Material Dark Theme for all components
New Date Picker with range functionality and accessibility improvements
Badging for Tabs and Bottom Navigation
Extended Floating ...
Material Dark Theme for all components
New Date Picker with range functionality and accessibility improvements
Badging for Tabs and Bottom Navigation
Extended Floating ...
Tips & Tricks #2 от Readmadrobot
В новом выпуске советов вы найдете:
👨🏻🔧 как проще всего загрузить и показать пользователю PDF файл
🧐 решение проблемы с названиями месяцев в русской локали
💪 отличная библиотека для отображения календаря с возможностью полной кастомизации
👻 BottomSheetDialog и исчезнувшие инсеты
💄 тинтинг Drawable в рантайме
🙅🏽♀️ глобальный PlaceHolder при использовании Glide
В новом выпуске советов вы найдете:
👨🏻🔧 как проще всего загрузить и показать пользователю PDF файл
🧐 решение проблемы с названиями месяцев в русской локали
💪 отличная библиотека для отображения календаря с возможностью полной кастомизации
👻 BottomSheetDialog и исчезнувшие инсеты
💄 тинтинг Drawable в рантайме
🙅🏽♀️ глобальный PlaceHolder при использовании Glide
YouTube
Tips and Tricks #2
Встречайте второй выпуск советов и приемов!
Как и раньше целых шесть тем:
- как проще всего загрузить и показать пользователю PDF файл?
- решение проблемы с названиями месяцев в русской локали
- отличная библиотека для отображения календаря с возможностью…
Как и раньше целых шесть тем:
- как проще всего загрузить и показать пользователю PDF файл?
- решение проблемы с названиями месяцев в русской локали
- отличная библиотека для отображения календаря с возможностью…
#Dx #D8
The path to DX deprecation
Google объявила о 3 фазах миграции с Dx на D8, причем в фазу 2 мы уже успели войти. Во второй фазе Dx остаётся доступным, но помечается как deprecated. Баги в нем больше исправляться не будут. Пора переходить на D8.
Третья фаза начнется 1 февраля 2021 - полное удаление Dx из Android Studio и всех других инструментов сборки.
Справка: Dx и D8 - это компиляторы Java байт кода в Dex, формат байт кода для ART
The path to DX deprecation
Google объявила о 3 фазах миграции с Dx на D8, причем в фазу 2 мы уже успели войти. Во второй фазе Dx остаётся доступным, но помечается как deprecated. Баги в нем больше исправляться не будут. Пора переходить на D8.
Третья фаза начнется 1 февраля 2021 - полное удаление Dx из Android Studio и всех других инструментов сборки.
Справка: Dx и D8 - это компиляторы Java байт кода в Dex, формат байт кода для ART
Android Developers Blog
The path to DX deprecation
Posted by Leo Sei, Product Manager on Android Back in 2017, we released D8, a new faster dexing compiler to replace DX, producing s...
#UI
Android Styling: Themes vs Styles
Возможности кастомизации UI в Android огромны и реализуются они с помощью стилей и темы. Понимать разницу между ними и как работает механизм атрибутов View поможет вам постичь дзена и легко поддерживать разные темы в приложениях
Android Styling: Themes vs Styles
Возможности кастомизации UI в Android огромны и реализуются они с помощью стилей и темы. Понимать разницу между ними и как работает механизм атрибутов View поможет вам постичь дзена и легко поддерживать разные темы в приложениях
Medium
Android styling: themes vs styles
The Android styling system offers a powerful way to specify your app’s visual design, but it can be easy to misuse. Proper use of it can…
#UI
Android Styling: Common Theme Attributes
Продолжение серии статей про стили в Android. В новой части рассказывается про
👉 основные атрибуты Material темы
👉 сравнивается разница между
👉 объявление собственных атрибутов
Android Styling: Common Theme Attributes
Продолжение серии статей про стили в Android. В новой части рассказывается про
👉 основные атрибуты Material темы
👉 сравнивается разница между
app
и android
namespace👉 объявление собственных атрибутов
Medium
Android styling: common theme attributes
In the previous article in this series on Android styling, we looked at the difference between themes and styles and how themes allow you…
#NFC
NFC Token & Credit Card reader
Всем кому интересна работа с NFC для считывания данных с карточек и чтения/записи на NFC токены рекомендую посмотреть на исходный код приложения
NFC Peerbits
NFC Token & Credit Card reader
Всем кому интересна работа с NFC для считывания данных с карточек и чтения/записи на NFC токены рекомендую посмотреть на исходный код приложения
NFC Peerbits
GitHub
GitHub - Peerbits/Android-NFC: Read/Write with NFC. Read NFC CreditCard
Read/Write with NFC. Read NFC CreditCard . Contribute to Peerbits/Android-NFC development by creating an account on GitHub.
Android Broadcast
Используете ли вы Espresso Test Recorder?
Что-то не пошло у Google с их решение для записи тестов через клики по экрану - Espresso Test Recorder. Возможно разработчики любят писать код сами? Может потому что не генериться Kotlin код? Пишите свои идеи почему вышло так в @android_broadcast_discussions
#Jetpack #Biometric
AndroidX Biometric library code review
Немного о том как Google забивает на фикс проблем с утечками памяти в своих библиотеках и выкатывает стабильный релиз, когда проблемы так и не исправлены.
AndroidX Biometric library code review
Немного о том как Google забивает на фикс проблем с утечками памяти в своих библиотеках и выкатывает стабильный релиз, когда проблемы так и не исправлены.
Medium
Androidx Biometric library code review
I’m following the development of androidx.biometric since version alpha04 (April 3, 2019).
#MotionLayout #Animation #Coroutines
Complex UI/Animations on Android — featuring MotionLayout
Чем ближе Android Studio 4.0 и стабильный релиз Motion Layout, тем больше интересных статей что можно сделать с новым инструментом для создания анимаций на Android.
В статье разбирается пример + очень узкие кейсы работы анимаций в MotionLayout, а также как можно работать с AnimationSet с помощью Kotlin Coroutine
Complex UI/Animations on Android — featuring MotionLayout
Чем ближе Android Studio 4.0 и стабильный релиз Motion Layout, тем больше интересных статей что можно сделать с новым инструментом для создания анимаций на Android.
В статье разбирается пример + очень узкие кейсы работы анимаций в MotionLayout, а также как можно работать с AnimationSet с помощью Kotlin Coroutine
Medium
Complex UI/Animations on Android — featuring MotionLayout
Exploring complex multi-step animations with MotionLayout (and Coroutines).
#RxJava #Coroutines #Backpressure
From RxJava to Kotlin Flow: Backpressure
Сравнение работы с Backpressure в RxJava 2 и Coroutines Flow:
👉 Как решается в Flow
👉 Flowable
👉 Операторы для работы с Backpressure в RxJava
From RxJava to Kotlin Flow: Backpressure
Сравнение работы с Backpressure в RxJava 2 и Coroutines Flow:
👉 Как решается в Flow
👉 Flowable
👉 Операторы для работы с Backpressure в RxJava
Medium
From RxJava to Kotlin Flow: Backpressure
Quick comparison between backpressure solutions in RxJava and Kotlin Flow