#Security #BestPractices
App Security Best Practices от d.android.com
И добавка - серия статей о базовых советах по безопасности Android приложений от Google !
App Security Best Practices от d.android.com
И добавка - серия статей о базовых советах по безопасности Android приложений от Google !
#Activity #LaunchMode
The Android Launch Mode Animated CheatSheet от Todd Greenberg
Визуализация различного поведения Activity при запуске, если начнете играться с launch mode будет вам в помощь. Все сделано в анимашках и как минимум человек заслуживает 👏 в посте на Medium!
The Android Launch Mode Animated CheatSheet от Todd Greenberg
Визуализация различного поведения Activity при запуске, если начнете играться с launch mode будет вам в помощь. Все сделано в анимашках и как минимум человек заслуживает 👏 в посте на Medium!
Medium
The Android Launch Mode Animated CheatSheet
Before API 11, we used activities show every new page on the screen. Now with Fragments and the navigation tools in API 28, it’s totally…
#Library #image
Stfalcon ImageViewer
Библиотека для просмотра изображений во весь экран. Из главных особенностей:
👉 Поддержка жестов
👉 Поддержка Transition
👉 Используйте что вам больше нравится для загрузки картинок: Glide или Picasso или что-то собственное
Stfalcon ImageViewer
Библиотека для просмотра изображений во весь экран. Из главных особенностей:
👉 Поддержка жестов
👉 Поддержка Transition
👉 Используйте что вам больше нравится для загрузки картинок: Glide или Picasso или что-то собственное
GitHub
GitHub - stfalcon-studio/StfalconImageViewer: A simple and customizable Android full-screen image viewer with shared image transition…
A simple and customizable Android full-screen image viewer with shared image transition support, "pinch to zoom" and "swipe to dismiss" gestures - stfalcon-studi...
#Optimizatiion #Performance
Комфортная работа с Android Studio от advance
Современная Android разработка требует хорошего железа:
👉 Intel Core I3/5/7/9 с 4 физическими ядрами и более
👉 16 Гб оперативы
👉 SSD
Не у всех есть возможности приобрести такое железо, а кто-то просто фанат AMD и влюбился в Ryzen процессоры 😍.
В статье вы найдете советы по тому как оптимизировать настройки вашей ОС для более быстрой сборки.
Мне на слабеньком железе помогало следующее:
👉 Отключение индексирования в поиске
👉 Отключить антивируса
👉 Отключение шифрования диска
👉 Отключать параллельную сборку в Gradle и Daemon
👉 Поиграйтесь c настройками выделяемой памяти для Android Studio
👉 Отключайте неиспользуемые плагины в Android Studio
👉 Используйте реальные устройства, а не эмуляторы.
👉 Не открывать миллион вкладок в браузере одновременно
Учтите что на слабой машине все оптимизации которые я описал и вы найдете в статье - это компромиссы. Что-то станет работать медленнее, что-то лучше, а Android Studio хотя бы сможет завестись и давать вам работать.
Ребята из Google пообещали в Android Studio 3.4 и 3.5 потрудиться над фиксом багов, потреблением памяти и оптимизацией IDE в рамках Project Merbel.
Комфортная работа с Android Studio от advance
Современная Android разработка требует хорошего железа:
👉 Intel Core I3/5/7/9 с 4 физическими ядрами и более
👉 16 Гб оперативы
👉 SSD
Не у всех есть возможности приобрести такое железо, а кто-то просто фанат AMD и влюбился в Ryzen процессоры 😍.
В статье вы найдете советы по тому как оптимизировать настройки вашей ОС для более быстрой сборки.
Мне на слабеньком железе помогало следующее:
👉 Отключение индексирования в поиске
👉 Отключить антивируса
👉 Отключение шифрования диска
👉 Отключать параллельную сборку в Gradle и Daemon
👉 Поиграйтесь c настройками выделяемой памяти для Android Studio
👉 Отключайте неиспользуемые плагины в Android Studio
👉 Используйте реальные устройства, а не эмуляторы.
👉 Не открывать миллион вкладок в браузере одновременно
Учтите что на слабой машине все оптимизации которые я описал и вы найдете в статье - это компромиссы. Что-то станет работать медленнее, что-то лучше, а Android Studio хотя бы сможет завестись и давать вам работать.
Ребята из Google пообещали в Android Studio 3.4 и 3.5 потрудиться над фиксом багов, потреблением памяти и оптимизацией IDE в рамках Project Merbel.
Хабр
Комфортная работа с Android Studio
Всем доброго времени суток! Насколько производительно работает Android Studio? Считаете ли Вы, что она работает шустро на Вашем ПК или Mac? Или, иногда, сталкив...
#CodeQuality #AndroidLint
Letting Android Lint fix your code от Niklas Baudy
Android Lint - очень полезная тулза, которая позволяет анализировать ваш код и выводить отчет с описанием найденных в нем проблем и способов фиксов. Я уверен, что все вы с ней сталкивались внутри Android Studio, так как именно с помощью ее подсвечиваются различные ошибки в коде.
Для себя я недавно открыл, что Android Lint может не только находить ошибки, но и исправлять их самостоятельно 😮. Для этого есть специальный Gradle task - lintFix. Авторы собственных правил могут интегрироваться с этим API. В статье вы найдете все подробности.
Letting Android Lint fix your code от Niklas Baudy
Android Lint - очень полезная тулза, которая позволяет анализировать ваш код и выводить отчет с описанием найденных в нем проблем и способов фиксов. Я уверен, что все вы с ней сталкивались внутри Android Studio, так как именно с помощью ее подсвечиваются различные ошибки в коде.
Для себя я недавно открыл, что Android Lint может не только находить ошибки, но и исправлять их самостоятельно 😮. Для этого есть специальный Gradle task - lintFix. Авторы собственных правил могут интегрироваться с этим API. В статье вы найдете все подробности.
Medium
Letting Android Lint fix your code
Android Lint is deeply integrated into Android Studio. Issues that are reported will be highlighted either as warnings or errors.
#Kotlin #VisibilityModifiers
Kotlin for Android Developers: Visibility Modifiers от Pablo Costa
Kotlin старается собрать в себе все лучшие практики от опыта разработчиков в Java и других языков. Например множество принципов из книги "Effective Java" от Joshua Bloch были сразу заложены в архитектуре языка.
Одно из важных изменений в Kotlin - модификаторы видимости, заменившие собой модификаторы доступа из Java (access modifiers).
Для всех кто хочет узнать подробнее о них рекомендую читать статью!
Kotlin for Android Developers: Visibility Modifiers от Pablo Costa
Kotlin старается собрать в себе все лучшие практики от опыта разработчиков в Java и других языков. Например множество принципов из книги "Effective Java" от Joshua Bloch были сразу заложены в архитектуре языка.
Одно из важных изменений в Kotlin - модификаторы видимости, заменившие собой модификаторы доступа из Java (access modifiers).
Для всех кто хочет узнать подробнее о них рекомендую читать статью!
Medium
Kotlin for Android Developers: Visibility Modifiers
From Java to Kotlin
#Kotlin #DSL #Architecture
Creating Kotlin DSLs от Wolfram Rittmeyer
DSL довольно удобный формат для описания конфигурация. Kotlin также дает возможность построения своего DSL, так что вы можете интегрировать его себе в свой код, Я решал с помощью DSL задачи по откажу от Builder: диалоги, NotificationCompat.Builder. В статье вы найдете как сделать свой DSL и стоит ли овчинка выделки.
Creating Kotlin DSLs от Wolfram Rittmeyer
DSL довольно удобный формат для описания конфигурация. Kotlin также дает возможность построения своего DSL, так что вы можете интегрировать его себе в свой код, Я решал с помощью DSL задачи по откажу от Builder: диалоги, NotificationCompat.Builder. В статье вы найдете как сделать свой DSL и стоит ли овчинка выделки.
Grokking Android
Creating Kotlin DSLs
With Kotlin DSLs you can write clear and understandable code. This post details of what Kotlin concepts they are made of and shows how to design them.
#BestPractices #Media
The Decalogue of a Pro Media App от Marcin Adamczewski
Для всех тех, кто пишет приложения, связанные с медиа: аудио и видео плееры и пр., и тем кто этим не занимается рекомендую ознакомиться с лучшими практиками при разработке такого рода приложений. Основные из них:
1️⃣ Необходимо поддерживать AudioFocus
2️⃣ Обрабатывайте Broadcast AudioManager.ACTION_AUDIO_BECOMING_NOISY
3️⃣ Android Media Session содержит множество информации которую стоит обрабатывать
4️⃣ Показывайте уведомление о Media. Для этого лучше использовать Notification.MediaStyle, чтобы уведомление выглядело в нативном стиле системы.
5️⃣ Media также показывается и на экране блокировки, поэтому проверяйте ее отображение: фоновую полноэкранную картинку, доступные действия для управления и пр.
6️⃣ Проигрывание медиа часто должно продолжаться и в фоне, поэтому вам стоит использовать Foreground Service для вашего плеера.
7️⃣ Чтобы ваш телефон не выключил процессор когда отключится экран важно использовать WakeLock. Для плееров, воспроизводящих онлайн контент, очень важно не дать отключиться WiFi. Сделать это можно с помощью WifiManager.WifiLock.
8️⃣ Видео всегда должно быть на экране, поэтому не даем ему погаснуть с помощью атрибута android:keepScreenOn=”true” в layout.
9️⃣ AudioTrack имеет ограничения в Android, и не стоит забывать о них!
🔟 Добавляйте поддержку Chromecast для аудио/видео сервисов, это позволит вашим пользователям наслаждаться конвентом на различных устройствах. Смотрите Google Cast SDK
The Decalogue of a Pro Media App от Marcin Adamczewski
Для всех тех, кто пишет приложения, связанные с медиа: аудио и видео плееры и пр., и тем кто этим не занимается рекомендую ознакомиться с лучшими практиками при разработке такого рода приложений. Основные из них:
1️⃣ Необходимо поддерживать AudioFocus
2️⃣ Обрабатывайте Broadcast AudioManager.ACTION_AUDIO_BECOMING_NOISY
3️⃣ Android Media Session содержит множество информации которую стоит обрабатывать
4️⃣ Показывайте уведомление о Media. Для этого лучше использовать Notification.MediaStyle, чтобы уведомление выглядело в нативном стиле системы.
5️⃣ Media также показывается и на экране блокировки, поэтому проверяйте ее отображение: фоновую полноэкранную картинку, доступные действия для управления и пр.
6️⃣ Проигрывание медиа часто должно продолжаться и в фоне, поэтому вам стоит использовать Foreground Service для вашего плеера.
7️⃣ Чтобы ваш телефон не выключил процессор когда отключится экран важно использовать WakeLock. Для плееров, воспроизводящих онлайн контент, очень важно не дать отключиться WiFi. Сделать это можно с помощью WifiManager.WifiLock.
8️⃣ Видео всегда должно быть на экране, поэтому не даем ему погаснуть с помощью атрибута android:keepScreenOn=”true” в layout.
9️⃣ AudioTrack имеет ограничения в Android, и не стоит забывать о них!
🔟 Добавляйте поддержку Chromecast для аудио/видео сервисов, это позволит вашим пользователям наслаждаться конвентом на различных устройствах. Смотрите Google Cast SDK
Medium
The Decalogue of a Pro Media App
In this short article, I’d like to reveal the 10 ancient commandments that will help you create a pro media application. I’ll present…
#Service #Background
Pitfalls of a foreground Service lifecycle от Maciej Witowski
Android 8.0 ввел новые правила для приложений - по максимум показывать пользователю активность в фоне и управлению по ее запуску отдавать системе (JobScheduler). Также ужесточением политики было необходимость в этом году всем приложением поддерживать minSdk = Android 8.0.
Одним из больших изменений, которые пришлось делать разработчикам при адаптации своих приложений - уход от обычных Service в сторону Foreground Service либо JobScheduler.
Основные правила при работе с Foreground Service:
1️⃣ Не вызывайте Service.startForeground() слишком рано
2️⃣ Вызывайте Service.stopSelf() после startForeground()
3️⃣ Останавливайте Service только из него самого
Нарушение правил карается падением приложения по принципам работы на Android 8.0+ 😢
Соблюдение этих правил сводиться к тому, что запуск Context.startForegroundService() всегда должен сводиться в обязательному наличию вызова Service.startForeground().
Pitfalls of a foreground Service lifecycle от Maciej Witowski
Android 8.0 ввел новые правила для приложений - по максимум показывать пользователю активность в фоне и управлению по ее запуску отдавать системе (JobScheduler). Также ужесточением политики было необходимость в этом году всем приложением поддерживать minSdk = Android 8.0.
Одним из больших изменений, которые пришлось делать разработчикам при адаптации своих приложений - уход от обычных Service в сторону Foreground Service либо JobScheduler.
Основные правила при работе с Foreground Service:
1️⃣ Не вызывайте Service.startForeground() слишком рано
2️⃣ Вызывайте Service.stopSelf() после startForeground()
3️⃣ Останавливайте Service только из него самого
Нарушение правил карается падением приложения по принципам работы на Android 8.0+ 😢
Соблюдение этих правил сводиться к тому, что запуск Context.startForegroundService() всегда должен сводиться в обязательному наличию вызова Service.startForeground().
Medium
Pitfalls of a foreground Service lifecycle
As part of Google Play’s target API level requirement existing apps need to target at least Android 8.0. One of the migration steps is…
#Flutter
Flutter for Android developers
Хорошая выборка информации по тому как преходить с Android разработки на Flutter. В репозитории вы найдете описание аналогов основных концепций из мира Android во Flutter, также прилагаются популярные паттерны: Dependency Injection, Rx, сетевые запросы, система сборки и пр.
Flutter for Android developers
Хорошая выборка информации по тому как преходить с Android разработки на Flutter. В репозитории вы найдете описание аналогов основных концепций из мира Android во Flutter, также прилагаются популярные паттерны: Dependency Injection, Rx, сетевые запросы, система сборки и пр.
По традиции все подводят итоги в последнем посте года, но мой канал совсем ещё маленький и только начинает свой рост. Одно я знаю наверняка - я хочу выразить всем вам спасибо за поддержку в развитие этого канала. Ваш интерес и положительные отзывы стимулируют делать больше и лучше.
В следующем году я хочу реализовать множество планов: осваивать новые форматы, улучшать интерактивность и создавать собственный контент.
Вам же хочу пожелать в следующем году быстрого профессионального роста, легкой модуляризации ваших проектов, интересных приложений
В следующем году я хочу реализовать множество планов: осваивать новые форматы, улучшать интерактивность и создавать собственный контент.
Вам же хочу пожелать в следующем году быстрого профессионального роста, легкой модуляризации ваших проектов, интересных приложений
#Gradle
Gradle 5.1 Release Notes
Вышла новая версия Gradle 5.1. В этом обновление сделано следующее:
👉 Задание репозитория для зависимостей. Теперь с помощью регулярного выражения можно задать какие зависимости можно брать из репозитория. Подробнее смотреть здесь.
👉 Configuration avoidance для Task-ов теперь стабильно. Теперь все гайды будут основываться на этом API. Подробнее читайте здесь.
👉 Gradle Kotlin DSL 1.1. Обновления в апдейтe DSL.
👉 Авторы Gradle плагинов обратите внимание на улучшения в API.
👉 Gradle Tooling API, которое используется Android Studio для интеграции с Gradle, теперь лучше сможет отображать прогресс выполнения задач. Ждем поддержки этого в Android Studio 3.4 😀
👉 Прочие мелкие улучшения
👉 Исправлено 30 багов
Gradle 5.1 Release Notes
Вышла новая версия Gradle 5.1. В этом обновление сделано следующее:
👉 Задание репозитория для зависимостей. Теперь с помощью регулярного выражения можно задать какие зависимости можно брать из репозитория. Подробнее смотреть здесь.
👉 Configuration avoidance для Task-ов теперь стабильно. Теперь все гайды будут основываться на этом API. Подробнее читайте здесь.
👉 Gradle Kotlin DSL 1.1. Обновления в апдейтe DSL.
👉 Авторы Gradle плагинов обратите внимание на улучшения в API.
👉 Gradle Tooling API, которое используется Android Studio для интеграции с Gradle, теперь лучше сможет отображать прогресс выполнения задач. Ждем поддержки этого в Android Studio 3.4 😀
👉 Прочие мелкие улучшения
👉 Исправлено 30 багов
GitHub
Release 1.1.0 · gradle/kotlin-dsl-samples
Gradle Kotlin DSL 1.1.0 Release Notes
Gradle Kotlin DSL 1.1.0 brings Kotlin 1.3.11, support for Kotlin lambdas in the Gradle APIs, multiple fixes and enhancements for a better behavior in IntelliJ ...
Gradle Kotlin DSL 1.1.0 brings Kotlin 1.3.11, support for Kotlin lambdas in the Gradle APIs, multiple fixes and enhancements for a better behavior in IntelliJ ...
#UI #UX
10 Android UI/UX Tips & Tricks от Gaurav
Советы по UI/UX для вашего приложения:
1️⃣ Не забывайте о эффект при нажатии на элементы UI Используйте ?android:attr:selectableItemBackground для получения Drawable из темы для фона кнопки, которая корректно показывает нажатие.
2️⃣ Используйте стандартные компоненты View и стилизацию их из темы
Этот позволяет всем вашим виджетам выглядеть консистентно платформе. Для кастомизации цветов используйте tint.
3️⃣ Тень под компонентами
4️⃣ Используйте tools:parentTag в <merge>
Это позволяет LayoutEditor понимать как отображать ваш UI в предпросмотре.
5️⃣ Отложенные парсинг layout XML с помощью ViewStub
Если часть вашего UI показывается опционально, то не стоит ее парсить сразу и делать, visibility="gone". Используйте ViewStub. Подробнее модно почитать здесь.
6️⃣ Старайтесь не использовать фиксированные разрешения
Фиксированные разрешения должны использоваться только в редких случаях когда вы знаете что размер должен быть строго такой и не может быть гибким. Например, ImageView с аватаром пользователя имеет размер 48x48dp. Просите дизайнера делать дизайн под большие и маленькие устройства, либо комментировать как должны адаптироваться элементы.
7️⃣ Размер текста: dp или sp?
Извечная дилемма. Я выбираю sp так как это делает приложение более удобным, потому что позволяет менять размер текста пользователем и приятно работать.
8️⃣ Используйте анимации при переходах
Наличие анимации позволяет пользователю понимать какой происходит переход и упрощает понимание работы приложения. Современный Android имеет множество средств и упрощений для работы с анимацией. Ждем Navigation и CoordinatorLayout, чтобы упростить это еще больше!
Также рекомендую освежать в памяти и почитывать гайды по Material Design. В них можно найти много полезного и вдохновится идеями для вашего приложения.
10 Android UI/UX Tips & Tricks от Gaurav
Советы по UI/UX для вашего приложения:
1️⃣ Не забывайте о эффект при нажатии на элементы UI Используйте ?android:attr:selectableItemBackground для получения Drawable из темы для фона кнопки, которая корректно показывает нажатие.
2️⃣ Используйте стандартные компоненты View и стилизацию их из темы
Этот позволяет всем вашим виджетам выглядеть консистентно платформе. Для кастомизации цветов используйте tint.
3️⃣ Тень под компонентами
4️⃣ Используйте tools:parentTag в <merge>
Это позволяет LayoutEditor понимать как отображать ваш UI в предпросмотре.
5️⃣ Отложенные парсинг layout XML с помощью ViewStub
Если часть вашего UI показывается опционально, то не стоит ее парсить сразу и делать, visibility="gone". Используйте ViewStub. Подробнее модно почитать здесь.
6️⃣ Старайтесь не использовать фиксированные разрешения
Фиксированные разрешения должны использоваться только в редких случаях когда вы знаете что размер должен быть строго такой и не может быть гибким. Например, ImageView с аватаром пользователя имеет размер 48x48dp. Просите дизайнера делать дизайн под большие и маленькие устройства, либо комментировать как должны адаптироваться элементы.
7️⃣ Размер текста: dp или sp?
Извечная дилемма. Я выбираю sp так как это делает приложение более удобным, потому что позволяет менять размер текста пользователем и приятно работать.
8️⃣ Используйте анимации при переходах
Наличие анимации позволяет пользователю понимать какой происходит переход и упрощает понимание работы приложения. Современный Android имеет множество средств и упрощений для работы с анимацией. Ждем Navigation и CoordinatorLayout, чтобы упростить это еще больше!
Также рекомендую освежать в памяти и почитывать гайды по Material Design. В них можно найти много полезного и вдохновится идеями для вашего приложения.
Medium
Android UI/UX Tips & Tricks
Most of the times we developers do 99% of the the Job and push it in users hand. The last 1% is a small number but really important. That…
#LibUpdates #ButterKnife #AndroidX
Butterknife 9 & 10 от Jake Wharton
Butterknife - это библиотека, избавившая нас от findViewById. Для тех кто использует Kotlin есть решение в виде Kotter Knife, которое не требует использование annotation процессора и делает код более Kotlin идиоматичным.
Butter Knife 9 привнес важные изменения по улучшению работы:
👉 Добавлена поддержка AndroidX (опционально)
👉 Выделен артефакт butterknife-runtime из butterknife, который содержит API, необходимое для сгенерированного кода, но не позволяет достучаться к сгенерированному коду через рефлексию. Это улучшает работу с R8/ProGuard
👉 Экспериментальный артефакт butterknife-reflect. Он заменяет собой annotation процессинг и позволяет ускорить сборку проекта. Подробнее читайте в README
👉 Android Lint проверки теперь работают в Kotlin.
👉 Добавлена поддержка Android Gradle Plugin 3.3
👉 Переход на Java 8 для всех артефактов
👉 Исправление багов
👉 Удалены deprecated методы из Butter Knife 8
👉 Binding шрифтов теперь работает на API ранее 26
Также вышел Butter Knife 10. Отличия минимальны:
👉 Полный переход на AndroidX
👉 Удалены deprecated методы из Butter Knife 9
Butterknife 9 & 10 от Jake Wharton
Butterknife - это библиотека, избавившая нас от findViewById. Для тех кто использует Kotlin есть решение в виде Kotter Knife, которое не требует использование annotation процессора и делает код более Kotlin идиоматичным.
Butter Knife 9 привнес важные изменения по улучшению работы:
👉 Добавлена поддержка AndroidX (опционально)
👉 Выделен артефакт butterknife-runtime из butterknife, который содержит API, необходимое для сгенерированного кода, но не позволяет достучаться к сгенерированному коду через рефлексию. Это улучшает работу с R8/ProGuard
👉 Экспериментальный артефакт butterknife-reflect. Он заменяет собой annotation процессинг и позволяет ускорить сборку проекта. Подробнее читайте в README
👉 Android Lint проверки теперь работают в Kotlin.
👉 Добавлена поддержка Android Gradle Plugin 3.3
👉 Переход на Java 8 для всех артефактов
👉 Исправление багов
👉 Удалены deprecated методы из Butter Knife 8
👉 Binding шрифтов теперь работает на API ранее 26
Также вышел Butter Knife 10. Отличия минимальны:
👉 Полный переход на AndroidX
👉 Удалены deprecated методы из Butter Knife 9
GitHub
butterknife/CHANGELOG.md at master · JakeWharton/butterknife
Bind Android views and callbacks to fields and methods. - JakeWharton/butterknife
Испольуйте ли вы Butter Knife в проекте?
Final Results
9%
Использую в Kotlin проект
25%
Использую в Java проекте
11%
Использую другие решения
52%
Не использую
2%
Не знал про эту библиотеку
#Fuchsia #ART
Google’s Fuchsia OS confirmed to have Android app support via Android Runtime от 9to5google.com
Обновления в AOSP позволяют сказать, что Fuchsia будет поддерживать Android приложения, имея специальную версию ART у себя на борту. Аналогично Chrome OS позволяет запускать Android приложения.
Пока строим догадки и ждем Google I/O для новостей
Google’s Fuchsia OS confirmed to have Android app support via Android Runtime от 9to5google.com
Обновления в AOSP позволяют сказать, что Fuchsia будет поддерживать Android приложения, имея специальную версию ART у себя на борту. Аналогично Chrome OS позволяет запускать Android приложения.
Пока строим догадки и ждем Google I/O для новостей
9to5Google
Google’s Fuchsia OS confirmed to have Android app support via Android Runtime
We've long suspected that Fuchsia would be able to run Android apps. Now, we have full confirmation that Fuchsia will directly support the Android Runtime.
#Kotlin #InlineClass
Inline Classes and Autoboxing in Kotlin от Dave Leeds
Kotlin 1.3 представил новую экспериментальную функциональность - Inline классы. Суть классов сводится к тому, что в Kotlin вы работает с ними как с обычными классами: объявляете функции, свойства; передаете в функции и пр, но при компиляции они разворачиваются и в итоговом коде вставляется оборачиваемый тип.
Inline классы имеет ряд ограничений, но самое важно понимать что есть случаи когда они остаются обычными классами:
👉 Когда Inline класс передается как объект суперкласса или реализуемого интерфейса
👉 Некоторые случае при autoboxing
За всеми подробностями хитростей работы нового типа классов читайте статью.
Inline Classes and Autoboxing in Kotlin от Dave Leeds
Kotlin 1.3 представил новую экспериментальную функциональность - Inline классы. Суть классов сводится к тому, что в Kotlin вы работает с ними как с обычными классами: объявляете функции, свойства; передаете в функции и пр, но при компиляции они разворачиваются и в итоговом коде вставляется оборачиваемый тип.
Inline классы имеет ряд ограничений, но самое важно понимать что есть случаи когда они остаются обычными классами:
👉 Когда Inline класс передается как объект суперкласса или реализуемого интерфейса
👉 Некоторые случае при autoboxing
За всеми подробностями хитростей работы нового типа классов читайте статью.
Dave Leeds on Kotlin
Inline Classes and Autoboxing
Get the best performance out of Kotlin's Inline Classes feature by understanding when they're inlined and when they're autoboxed.
#Gradle #Kotlin #DSL
Gradle Kotlin DSL converter
Для тех кто хочет мигрировать на Kotlin DSL в Gradle советую обратить внимание на Gradle Kotlin DSL converter. Это скрипт, написанный на Kotlin который выполняет базовые шаги миграции. Результат его работы вам еще придется доделывать, но он уже помогает со многими аспектами миграции.
Gradle Kotlin DSL converter
Для тех кто хочет мигрировать на Kotlin DSL в Gradle советую обратить внимание на Gradle Kotlin DSL converter. Это скрипт, написанный на Kotlin который выполняет базовые шаги миграции. Результат его работы вам еще придется доделывать, но он уже помогает со многими аспектами миграции.
GitHub
GitHub - bernaferrari/GradleKotlinConverter: Convert from Groovy to Kotlin DSL for Gradle, focused on Android.
Convert from Groovy to Kotlin DSL for Gradle, focused on Android. - GitHub - bernaferrari/GradleKotlinConverter: Convert from Groovy to Kotlin DSL for Gradle, focused on Android.
Everything you need in your app for 2019 от Adrian Devezin
Что будет трендами в Android разработки и надо использовать разработчикам, чтобы на любом собесе быть героем 😀 ?
Все тренды 2019 связаны с 3 векторами развития Android:
👉 телефоны становятся сильнее с большими вытянутыми экранами
👉 cледующий миллиард пользователей - это развивающиеся страны: Индия, страны Африки и Южной Америки, устройства на которых слабые
👉 приложения обрастают архитектурами, добавляются новые библиотеки, поддерживается множество версий Android и размеров экранов. Все это ведет к увеличению размеров APK
В статье вы найдете технологии, которые стоит применять:
👉 Android Architecture Components
👉 MVVM архитектура
👉 WorkManager
👉 Fastlane
👉 Layout для больших экранов, поддержка больших экранов, Chrome OS, складные телефоны
👉 ConstraintLayout
👉 Неблокирующий UI
👉 Material Design
👉 Поддержка темной темы
👉 Kotlin
👉 Kotlin Coroutines
👉 Перемещение управления вниз экрана
👉 App Bundle
👉 Dynamic Features
👉 Модуляризация приложений в Gradle
👉 Android Go версии приложений
Знаете еще тренды? Давайте обсуждать их в @android_broadcast_discussions
Что будет трендами в Android разработки и надо использовать разработчикам, чтобы на любом собесе быть героем 😀 ?
Все тренды 2019 связаны с 3 векторами развития Android:
👉 телефоны становятся сильнее с большими вытянутыми экранами
👉 cледующий миллиард пользователей - это развивающиеся страны: Индия, страны Африки и Южной Америки, устройства на которых слабые
👉 приложения обрастают архитектурами, добавляются новые библиотеки, поддерживается множество версий Android и размеров экранов. Все это ведет к увеличению размеров APK
В статье вы найдете технологии, которые стоит применять:
👉 Android Architecture Components
👉 MVVM архитектура
👉 WorkManager
👉 Fastlane
👉 Layout для больших экранов, поддержка больших экранов, Chrome OS, складные телефоны
👉 ConstraintLayout
👉 Неблокирующий UI
👉 Material Design
👉 Поддержка темной темы
👉 Kotlin
👉 Kotlin Coroutines
👉 Перемещение управления вниз экрана
👉 App Bundle
👉 Dynamic Features
👉 Модуляризация приложений в Gradle
👉 Android Go версии приложений
Знаете еще тренды? Давайте обсуждать их в @android_broadcast_discussions
Medium
Everything you need in your app for 2019
2018 was a big year for Android Developers. Google solidified more SDK components, further endorsed Kotlin, and gave us a lot of new tools…