#Kotlin #UI #GoogleIO #JetpackCompose
Google I/O'19: Declarative UI Patterns
Google показала своё видение будущего написание UI в Android (видение совсем ранее) - Jetpack Compose. Особенности:
👉 Никакого XML
👉 Чистый Kotlin в декларативном стиле
👉 Никакого
👉 Обратная совместимость с View подходом
Авторы вдохновлялись реализацию описания UI в React, Vue.js, Flutter и Litho.
Проект находится на очень ранней стадии и разработчики ждут отзывы сообщества и предложения по улучшению. Чтобы попробовать Jetpack Compose вам надо скачать специальную сборку Android Studio.
Вопрос пока намного больше чем ответов:
👉 Что по поводу работы Layout Editor?
👉 Поддержка текущих виджетов?
👉 Как будет осуществляться описание UI под различные конфигурации и размеры экранов?
👉 Какова скорость компиляции?
👉 Что с Java проектами?
👉 Что с анимациями?
👉 Что со всем кодом, ранее написанным к старому написанию UI ?
Google I/O'19: Declarative UI Patterns
Google показала своё видение будущего написание UI в Android (видение совсем ранее) - Jetpack Compose. Особенности:
👉 Никакого XML
👉 Чистый Kotlin в декларативном стиле
👉 Никакого
findViewById() (это далеко не первая попытка решить эту сложность)👉 Обратная совместимость с View подходом
Авторы вдохновлялись реализацию описания UI в React, Vue.js, Flutter и Litho.
Проект находится на очень ранней стадии и разработчики ждут отзывы сообщества и предложения по улучшению. Чтобы попробовать Jetpack Compose вам надо скачать специальную сборку Android Studio.
Вопрос пока намного больше чем ответов:
👉 Что по поводу работы Layout Editor?
👉 Поддержка текущих виджетов?
👉 Как будет осуществляться описание UI под различные конфигурации и размеры экранов?
👉 Какова скорость компиляции?
👉 Что с Java проектами?
👉 Что с анимациями?
👉 Что со всем кодом, ранее написанным к старому написанию UI ?
YouTube
Declarative UI patterns (Google I/O'19)
Explore how reactive and declarative paradigms can be applied to Android UI development, making it easier for developers to integrate these patterns into their Android apps with Kotlin.
Watch more #io19 here:
Android & Play at Google I/O 2019 Playlist →…
Watch more #io19 here:
Android & Play at Google I/O 2019 Playlist →…
👍1
Forwarded from Mobile People Talks (Kirill Rozov)
#ReactNative
Пришла очередь Владимиру Иванову выступить в роли допрашиваемого, и отстаивать честь React Native. Вова отвечал на все колкие вопросы ведущих подкаста, приверженцев других мобильных фреймворков:
👉 В каких случаях стоит использовать React Native
👉 Какие есть преимущества по сравнению с Flutter,
👉 Когда же уже будет релиз? И будет ли он когда-нибудь?
👉 Что там с производительностью?
Подкаст уже доступен
🎧 SoundCloud
🎧 Apple Podcasts
Пришла очередь Владимиру Иванову выступить в роли допрашиваемого, и отстаивать честь React Native. Вова отвечал на все колкие вопросы ведущих подкаста, приверженцев других мобильных фреймворков:
👉 В каких случаях стоит использовать React Native
👉 Какие есть преимущества по сравнению с Flutter,
👉 Когда же уже будет релиз? И будет ли он когда-нибудь?
👉 Что там с производительностью?
Подкаст уже доступен
🎧 SoundCloud
🎧 Apple Podcasts
SoundCloud
быть или не быть
Пришла очередь Владимира выступить в роли допрашиваемого, а остальные ведущие без устали пытаются выяснить у него о React Native все, что можно! В каких случаях стоит использовать React Native, какие
👍1
#ConstraintLayout #MotionLayout #Animation
ConstraintLayout 2.0 Beta 1
Вышла первая beta версия ConstraintLayout. Что нового по сравнению с версией 1.X:
👉 Virtual Layout - позволяющий описывать правила размещения группы View. На текущий момент существует только одно стандартное - Flow, которая заменяет собой chain и добавляет новых возможностей.
👉 MotionLayout - теперь анимировать изменения layout становится значительно проще, описывайте все трансформации через специальный XML файл и наслаждайтесь как фреймворк все делает за вас
👉 ConstraintProperties - более просто способ обновления параметров ConstraintLayout
👉 Визуальный редактор MotionLayout. Попробовать его не получится, но сейчас все силы команду ConstraintLayout сконцентрированы на его доработки. Надеюсь увидеть его в Android Studio 3.6
Больше подробностей в видео
Пример использования новых ConstraintLayout и MotionLayout
ConstraintLayout 2.0 Beta 1
Вышла первая beta версия ConstraintLayout. Что нового по сравнению с версией 1.X:
👉 Virtual Layout - позволяющий описывать правила размещения группы View. На текущий момент существует только одно стандартное - Flow, которая заменяет собой chain и добавляет новых возможностей.
👉 MotionLayout - теперь анимировать изменения layout становится значительно проще, описывайте все трансформации через специальный XML файл и наслаждайтесь как фреймворк все делает за вас
👉 ConstraintProperties - более просто способ обновления параметров ConstraintLayout
👉 Визуальный редактор MotionLayout. Попробовать его не получится, но сейчас все силы команду ConstraintLayout сконцентрированы на его доработки. Надеюсь увидеть его в Android Studio 3.6
Больше подробностей в видео
Пример использования новых ConstraintLayout и MotionLayout
YouTube
What's new in ConstraintLayout (Google I/O'19)
Learn the capabilities of ConstraintLayout, a popular library for UI development on Android, which addresses common pitfalls of and solutions to UI patterns, performance aspects, integrating motion, and how to best take advantage of the library in your own…
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Редактор #MotionLayout в Android Studio (пока нет возможности его опробовать)
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Пример анимации, построенной на основе #MotionLayout
👍1
#Kotlin #Coroutines #GoogleIO #KotlinFirst
First Class Coroutines Support
🎉Kotlin Coroutine теперь официально рекомендуемый и поддерживаемый подход для асинхронных операций на Android 🎉
First Class Coroutines Support
🎉Kotlin Coroutine теперь официально рекомендуемый и поддерживаемый подход для асинхронных операций на Android 🎉
👍1
#GoogleIO #Kotlin #Coroutines #AndroidX
Understand Kotlin Coroutines on Android
Очень хороший доклад по Coroutines, в котором освещаются
👉 базовые моменты работы корутин
👉 Чем Coroutines они отличаются от блокирующего подхода
👉 поддержка корутин в библиотеках: WorkManager, Room, ViewModel, LiveData, Lifecycle
👉 Тестирование Coroutines
Из доклада видно как активно добавляется поддержка Kotlin Coroutines в библиотеки #AndroidX и это показывает в действие Kotlin First в Android.
Understand Kotlin Coroutines on Android
Очень хороший доклад по Coroutines, в котором освещаются
👉 базовые моменты работы корутин
👉 Чем Coroutines они отличаются от блокирующего подхода
👉 поддержка корутин в библиотеках: WorkManager, Room, ViewModel, LiveData, Lifecycle
👉 Тестирование Coroutines
Из доклада видно как активно добавляется поддержка Kotlin Coroutines в библиотеки #AndroidX и это показывает в действие Kotlin First в Android.
YouTube
Understand Kotlin Coroutines on Android (Google I/O'19)
Coroutines are a feature of Kotlin that help convert callback-based code into sequential code, making code easier to read, write, and understand. This session will show you how to use coroutines on Android, and how the new androidx-concurrent library makes…
👍1
#Coroutines #AndroidX
Use Kotlin coroutines with Architecture components
В AndroidX для поддержки Coroutines добавили следующее:
👉 CoroutineWorker для WorkManager, позволяющий выполнять задачу при помощи корутин
👉 Поддержка suspend функций в Room. Пока нет возможности наблюдать за изменениями с помощью Channel и Flow, но их поддержка уже в работе
👉 Поддержка Coroutine в LiveData
👉 ViewModel.viewModelScope
👉 LifecycleScope - CoroutineScope, связанный с Lifecycle
👉 Lifecycle-aware Coroutines:
Замечание: Множество из нового функционала доступны в следующих версиях библиотек, которые еще на в релизе
Use Kotlin coroutines with Architecture components
В AndroidX для поддержки Coroutines добавили следующее:
👉 CoroutineWorker для WorkManager, позволяющий выполнять задачу при помощи корутин
👉 Поддержка suspend функций в Room. Пока нет возможности наблюдать за изменениями с помощью Channel и Flow, но их поддержка уже в работе
👉 Поддержка Coroutine в LiveData
👉 ViewModel.viewModelScope
👉 LifecycleScope - CoroutineScope, связанный с Lifecycle
👉 Lifecycle-aware Coroutines:
whenCreated, whenStarted, whenResumed, которые запустятся в соотвествующий момент жизненного циклаЗамечание: Множество из нового функционала доступны в следующих версиях библиотек, которые еще на в релизе
👍1
Kotlin официально стал основном языком для Android разработки, Coroutine - рекомендуемый подход, представлен Jetpack Compose. Рады ли вы таким переменам?
Final Results
74%
Да, уже давно пишу на Kotlin
20%
Я за равноправие Java и Kotlin
1%
Писал на Java и буду писать
3%
Пишу на других языках
3%
Другой (пишите в чатике @android_broadcast_discussions)
👍1
#GoogleIO #Security #Android #AndroidX #ProjectMainline
What’s New in Android Q Security
В новой версии Android Google сконцентрировались на безопасности:
👉 Улучшенная система разрешений
👉 Project Mainline - новый способ доставки и установки обновление безопасности, не требующих OTA обновления от производителя, а установка их напрямую из Google Play и убирает привязку к OEM. Подробнее "Fresher OS with Projects Treble and Mainline"
👉 Поддержка TLS 1.3
👉 Adiantum - шифрование данных, не требующих специального железа и достаточно нетребовательное к ресурсам, что позволяет им работать от умных часов и до IoT устройств
👉 Для всех устройств на Android Q+ теперь шифрование данных будет обязательным
👉 Изолированная песочница для софтовых кодеков
👉 Ограничение доступа к системному API
👉 Рандомизация MAC адреса при подключение к Wi-FI
👉 Улучшения в BiometricPrompt API
👉 Библиотека AndroidX Security, которая упрощает шифрование файлов и SharedPreferences
👉 Приложения в фоне не могут запустить Activity
👉 Scoped Storage, который был отложен на Android R
👉 Google Assistant сможет работать на устройстве без необходимости обращения к серверам
👉 Больше проверок в LLVM: BoundSan, улучшение IntSan, Shadow Call Stack (SCS), eXecute-Only Memory, Scudo Hardened Allocator. Больше подробностей "Queue the Hardening Enhancements"
Работы по безопасности продолжаются: в Google активно работают над поддержкой Electronic ID для мобильных приложений, что позволит использовать мобильных приложения в качеств удостоверений, например водительских прав.
What’s New in Android Q Security
В новой версии Android Google сконцентрировались на безопасности:
👉 Улучшенная система разрешений
👉 Project Mainline - новый способ доставки и установки обновление безопасности, не требующих OTA обновления от производителя, а установка их напрямую из Google Play и убирает привязку к OEM. Подробнее "Fresher OS with Projects Treble and Mainline"
👉 Поддержка TLS 1.3
👉 Adiantum - шифрование данных, не требующих специального железа и достаточно нетребовательное к ресурсам, что позволяет им работать от умных часов и до IoT устройств
👉 Для всех устройств на Android Q+ теперь шифрование данных будет обязательным
👉 Изолированная песочница для софтовых кодеков
👉 Ограничение доступа к системному API
👉 Рандомизация MAC адреса при подключение к Wi-FI
👉 Улучшения в BiometricPrompt API
👉 Библиотека AndroidX Security, которая упрощает шифрование файлов и SharedPreferences
👉 Приложения в фоне не могут запустить Activity
👉 Scoped Storage, который был отложен на Android R
👉 Google Assistant сможет работать на устройстве без необходимости обращения к серверам
👉 Больше проверок в LLVM: BoundSan, улучшение IntSan, Shadow Call Stack (SCS), eXecute-Only Memory, Scudo Hardened Allocator. Больше подробностей "Queue the Hardening Enhancements"
Работы по безопасности продолжаются: в Google активно работают над поддержкой Electronic ID для мобильных приложений, что позволит использовать мобильных приложения в качеств удостоверений, например водительских прав.
Android Developers Blog
What’s New in Android Q Security
Today at Google I/O we lifted the curtain on all the new security features being integrated into Android Q. We plan to go deeper on each feature in the coming weeks and months, but first wanted to share a quick summary of all the security goodness we’re adding…
👍1
#GoogleIO #Kotlin #UnderTheHood
Google I/O'19: Kotlin Under the Hood: Understand the Internals
Продолжительность: 40:45
Доклад в котором рассматривается цена фичей на пример Kotlin/JVM, за которые мы любим Kotlin:
👉 Null safety
👉 when expression
👉 lazy{} делегат
👉 Unsigned числа (experimental)
👉 Ranges
👉 Inline классы (experimental)
👉 Создание массивов
👉 Лямбда
👉 Вызов Extenstion функций
👉 Значения параметров метода по умолчанию
👉 State машина Coroutine
Главное что стоит помнить при использование различных фичей Kotlin - они имеют свою цену, так как реализуются поверх другой технологии (JVM, Native, JS) и для работы функций в конечной среде выполнения, их нужно реализовывать на поддерживаемых средой технологиях.
За это приходиться платить цену, например в Kotlin/JVM эта цена запись от стандартной библиотеки, дополнительный генерируемый байткод и выделение объектов
Google I/O'19: Kotlin Under the Hood: Understand the Internals
Продолжительность: 40:45
Доклад в котором рассматривается цена фичей на пример Kotlin/JVM, за которые мы любим Kotlin:
👉 Null safety
👉 when expression
👉 lazy{} делегат
👉 Unsigned числа (experimental)
👉 Ranges
👉 Inline классы (experimental)
👉 Создание массивов
👉 Лямбда
👉 Вызов Extenstion функций
👉 Значения параметров метода по умолчанию
👉 State машина Coroutine
Главное что стоит помнить при использование различных фичей Kotlin - они имеют свою цену, так как реализуются поверх другой технологии (JVM, Native, JS) и для работы функций в конечной среде выполнения, их нужно реализовывать на поддерживаемых средой технологиях.
За это приходиться платить цену, например в Kotlin/JVM эта цена запись от стандартной библиотеки, дополнительный генерируемый байткод и выделение объектов
YouTube
Kotlin under the hood: Understand the internals (Google I/O'19)
Kotlin offers great, modern language features and a rich set of extensions. But it's not always obvious to the developer what's happening under the hood. This session will help you understand better what these features and extensions are doing internally.…
👍1
#ProGuard #Gson #Java8
Вышел ProGuard 6.1
Пока Google активно разрабатывает R8 и готовиться заменить им #ProGuard в Android, разработчики последнего трудятся над новыми функциями:
👉 Поддержка Java 10, 11 и 12
👉 Бекпорт кода, использующего Java 8 Collection Stream API и Date Time API. Использование этого API автоматически заменяется на библиотеки, потрирующие этот функционал. Особенно актуально для Android проектов
👉 Оптимизация для Gson
👉 Добавлена опция
Вышел ProGuard 6.1
Пока Google активно разрабатывает R8 и готовиться заменить им #ProGuard в Android, разработчики последнего трудятся над новыми функциями:
👉 Поддержка Java 10, 11 и 12
👉 Бекпорт кода, использующего Java 8 Collection Stream API и Date Time API. Использование этого API автоматически заменяется на библиотеки, потрирующие этот функционал. Особенно актуально для Android проектов
👉 Оптимизация для Gson
👉 Добавлена опция
-assumevalues, которая позволяет указать, что метод или поле возвращают определенное значение. Это полезно для #AndroidX библиотек, которые содержат код для старых версий ОС, неподдериживаемые вашим приложением. Укажите Build.VERSION.SDK_INT = minSdk вашего проекта и код удалиться.Guardsquare
ProGuard 6.1 released | Guardsquare
ProGuard 6.1 supports Java versions 10, 11, 12 and offers important enhancements, such as the optimization of Gson serialization.
👍1
Какую утилиту для обфускации/оптимизации кода вы используете?
Final Results
61%
ProGuard
17%
R8
14%
Не использую
8%
Не знаю что это такое
👍1
#OkHttp #Kotlin
Metrics for OkHttp’s Kotlin Upgrade
OkHttp мигрирует на Kotlin 🎉в версии 4.0. Работа по миграции только начата, и ее результаты мы сможем увидеть в середине лета.
Еще думаете на чем писать код в Android❓
Metrics for OkHttp’s Kotlin Upgrade
OkHttp мигрирует на Kotlin 🎉в версии 4.0. Работа по миграции только начата, и ее результаты мы сможем увидеть в середине лета.
Еще думаете на чем писать код в Android❓
👍1
#Firebase #Fabric
Fabric анонсировала мажорное обновление в roadmap и график миграции
Больше 2 лет назад Google поглотила #Fabric, который стал частью #Firebase. Сервисы постепенно интегрировались и теперь объявлена дата окончания работы Fabric - 31 марта 2020 года.
Не всем сервисам еще готова замена, например Crashlytics Beta, использующийся для распространения тестовых сборок приложения. На его замену приходит новый сервис - Firebase App Distribution, доступный в альфа. Для участия в тестировании нового сервиса надо подать заявку. Сервис планируется выйти в Beta в течение нескольких месяцев.
Одна из долгожданных функций - поддержка нативных крешей (Android NDK)
Fabric анонсировала мажорное обновление в roadmap и график миграции
Больше 2 лет назад Google поглотила #Fabric, который стал частью #Firebase. Сервисы постепенно интегрировались и теперь объявлена дата окончания работы Fabric - 31 марта 2020 года.
Не всем сервисам еще готова замена, например Crashlytics Beta, использующийся для распространения тестовых сборок приложения. На его замену приходит новый сервис - Firebase App Distribution, доступный в альфа. Для участия в тестировании нового сервиса надо подать заявку. Сервис планируется выйти в Beta в течение нескольких месяцев.
Одна из долгожданных функций - поддержка нативных крешей (Android NDK)
Firebase
Firebase is Google's mobile platform that helps you quickly develop high-quality apps and grow your business.
👍1
#GooglePlay #InAppUpdate
Разбор in-app updates на Android
Для всех тех кто решил встроить новую библиотеку для обновлений приложений к себе рекомендую ознакомиться с подробным обзором библиотеки
Разбор in-app updates на Android
Для всех тех кто решил встроить новую библиотеку для обновлений приложений к себе рекомендую ознакомиться с подробным обзором библиотеки
Joe Birch
Exploring in-app updates on Android
I'm sure there has often been a time when you've needed to send out an app update that has some form of urgency - maybe there's a security issue or some bug which is causing a lot of issues for users. Previously, we've needed to roll out a new update on the…
👍1