Forwarded from AvitoTech
Секунду… Это что, новый курс от команды разработчиков? 🚀
Так точно! Наш бэкенд-инженер Юра Афанасьев создал обучающий курс по паттернам и практикам написания кода. В нём он разбирает порождающие, структурные и поведенческие паттерны, историю их создания и методы в основе.
Ещё из плюсов: простая и понятная подача, короткие и насыщенные информацией материалы, курс подходит как начинающим инженерам, так и миддлам.
Кратко о Юре:
⚡️ Больше 15 лет в коммерческой разработке;
⚡️ Больше 6 лет в Авито (сейчас в департаменте монетизации);
⚡️ 12 лет писал на Php и 4 — на Golang;
⚡️ Организатор внутреннего коммьюнити в Авито.
В первой части — про историю создания паттернов. Выбирайте удобный формат и смотрите:
📺 YouTube
🔵 VK Видео
💻 Rutube
#backend
Так точно! Наш бэкенд-инженер Юра Афанасьев создал обучающий курс по паттернам и практикам написания кода. В нём он разбирает порождающие, структурные и поведенческие паттерны, историю их создания и методы в основе.
Ещё из плюсов: простая и понятная подача, короткие и насыщенные информацией материалы, курс подходит как начинающим инженерам, так и миддлам.
Кратко о Юре:
В первой части — про историю создания паттернов. Выбирайте удобный формат и смотрите:
#backend
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍21
Отключите эти настройки Android в Gradle для ускорения сборки
В Android Gradle Plugin есть настройка разных build feature для включения разных опций
Каждая из них отвечает за определенную опцию, но вот значение каждой опции будет зависеть от версии.
Я предпочитаю явно выключить все опции по умолчанию и в каждом модуле включать их только при необходимости в модуле в build.gradle.kts. Сделать это можно через gradle.properties
‼️ Больше полезных советов и статей в Базе Знаний Android разработчика
#android #gradle #лучшиепрактики
В Android Gradle Plugin есть настройка разных build feature для включения разных опций
// Часть флагов могут быть доступны только в определнных типах модулей
// Указаны знгачения по умолчанию в Android Gradle Plugin 8.10.0
android {
buildFeatures {
// Включить/выключить Android ресурсы для библиотечных модулй
androidResources = true
aidl = false
buildConfig = false
compose = false
dataBinding = false
mlModelBinding = false
prefab = false
renderScript = false
// Генерация ресурсов из Gradle файла
resValues = true
shaders = true
viewBinding = false
}
}
Каждая из них отвечает за определенную опцию, но вот значение каждой опции будет зависеть от версии.
Я предпочитаю явно выключить все опции по умолчанию и в каждом модуле включать их только при необходимости в модуле в build.gradle.kts. Сделать это можно через gradle.properties
# Отключение ресурсов для Android Library модулей
android.library.defaults.buildfeatures.androidresources=false
android.defaults.buildfeatures.aidl=false
android.defaults.buildfeatures.resvalues=false
android.defaults.buildfeatures.databinding=false
android.defaults.buildfeatures.mlmodelbinding=false
android.defaults.buildfeatures.shaders=false
android.defaults.buildfeatures.prefabPublishing=false
android.defaults.buildfeatures.viewbinding=false
#android #gradle #лучшиепрактики
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54
В Android 16 появится возможность работать только с проверенными и публично доступными SSL сертификатами
В XML реcурсе с Network Security Config надо сделать
Источник - @nek_12_personal
#android16 #безопасность
В XML реcурсе с Network Security Config надо сделать
<network-security-config>
<base-config cleartextTrafficPermitted="false">
<certificateTransparency enabled="true" />
</base-config>
</network-security-config>
Источник - @nek_12_personal
#android16 #безопасность
👍23
В коде Android 16 обнаружили возможность компиляции dex в ota код в облаке, а не на устройстве. Возможность рассчитана на слабые устройства для ускорения установки и экономии энергии.
#android16 #art
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍61
Media is too big
VIEW IN TELEGRAM
Не так давно я поменял Pixel 7 на 9. Кажется, что всё в рамках одной экосистемы идет, но как много приложений заставили меня снова логиниться и проводить настройку. Приятным исключением стал VK, как раз так авторизация перенеслась и всё работало!
Разработчик этой фичи, Артур Илькаев, в VK ID сделал доклад на Mobius, где рассказал все подробности решения, а также как много денег это смогло сэкономить бизнесу, а сам Артур смог получить благодаря этому миллионный бонус за год потому что сэкономил бизнесу намного больше и в долгий срок!
0:00 Про что будет доклад
2:32 Начало доклада
39:41 Обсуждение
#android #backup #mobius
Please open Telegram to view this post
VIEW IN TELEGRAM
👍37❤1
Как найти неиспользуемые зависимости в Dagger Component (EN,11м)
С помощью Dagger SPI автор написал анализатор графа Dagger c целью поиска неиспользуемых зависимостей и описал подход в статье. Также подход можно использовать для визуализации графа зависимостей, считать разные метрики графа и пр.
🐱 Исходный код на GitHub
🔗 Альтернативная ссылка
#dagger #di #opensource
С помощью Dagger SPI автор написал анализатор графа Dagger c целью поиска неиспользуемых зависимостей и описал подход в статье. Также подход можно использовать для визуализации графа зависимостей, считать разные метрики графа и пр.
🔗 Альтернативная ссылка
#dagger #di #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍25
Разработчик на простом примере показывается как сделать чистую архитектуру в Android проекте, подробно описывая каждый шаг. Полезно будет для новичков. Читайте тут (12м)
#android #архитектура
#android #архитектура
👍18
Forwarded from Kotlin Multiplatform Broadcast
Metro - Новый DI фреймворк на чистом Kotlin (ещё в разработке)
#kotlin #di #ksp
@DependencyGraph
interface AppGraph {
val httpClient: HttpClient
@Provides
private fun provideFileSystem(): FileSystem = FileSystem.SYSTEM
}
@Inject
class HttpClient(private val fileSystem: FileSystem)
@Inject
@Composable
fun App(circuit: Circuit)
#kotlin #di #ksp
👍20
Обзор(EN,7М) как оценивать время выполнения Gradle тасков в разных условиях для Android проектов. Если коротко - используйте Gradle Profiler и правильно настраивайте сценарий
🔗 Альтернативная ссылка
#android #gradle #производительность
🔗 Альтернативная ссылка
#android #gradle #производительность
👍14
Forwarded from AvitoTech
Продолжаем разбираться в паттернах! На очереди — порождающие 🚀
В новом выпуске рассмотрим первые два Builder (Строитель) и Factory Method (Фабричный метод) — паттерны, задача которых скрывать детали создания объектов в абстракциях.
🔍 В выпуске рассказали про подводные камни использования, их назначение, плюсы и минусы. А ещё объяснили, откуда взялся паттерн фабрика и почему паттерны — не аксиомы:
📺 YouTube
🔵 VK Видео
💻 Rutube
#backend
В новом выпуске рассмотрим первые два Builder (Строитель) и Factory Method (Фабричный метод) — паттерны, задача которых скрывать детали создания объектов в абстракциях.
#backend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29
Сканер доступен всем, у кого есть доступ к Google Pay API for Android. Для использования API не требуется разрешение на использование камеры в вашем приложении.
Для работы API также необходимы: Google аккаунт на устройстве, 1+ GB RAM, наличие задней камеры и Google Play Services, а также поддержка портретной ориентации.
#android #googleplay
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39
This media is not supported in your browser
VIEW IN TELEGRAM
Для работы необходимо оформить подписку Gemini Code Assist Standard (от 19$ в месяц) или Enterprise (от 45$ в месяц).
#android #androidstudio #ai #gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
В Android Studio Narwal 2025.1.1 добавили возможность тестирования бэкапа данных приложения и его восстановления
#android #androidstuido
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34
Генерация Composable Preview с помощью Gemini в Android Studio Narwhal 2025.1.1
#android #androidstudio #gemini #compose
#android #androidstudio #gemini #compose
👍41
Forwarded from Kotlin Multiplatform Broadcast
Вышел KSP 2.0, который теперь работает на KSP2 по умолчанию. Теперь работает на K2 и отдельный генератор исходников с большей гибкостью
#kotlin #ksp
#kotlin #ksp
👍27
Demeter хорош тем, что он не заменяет привычные инструменты анализа производительности, а дополняет собираемую информацию для лучшего понимания скорости работы кода приложения. Также всю информацию можно увидеть прямо на экране устройства.
Инструмент имеет плагинную архитектуру и открытый исходный код, что позволяет вам сделать собственные расширения. Из коробки доступны плагины:
• Замер времени выполнения методов и добавление большей информации для профайлера
• Подсчет количества рекомпозиций в Composable функциях
• Время инициализации зависимостей из Dagger графа
(предлагайте в комментариях, какие замеры было бы полезно сделать в ваших приложениях, а я буду делиться своими)
Demeter может работать через плагин Kotlin компилятора (только с исходным кодом в вашем проекте) и/или через модификацию байткода, где уже можно следить за кодом в подключённых библиотеках без исходного кода. Подробнее можно ознакомиться в статье.
Измерять производительность на дебаг билдах смысла не имеет, так как там много лишнего, а вот когда проходит регресс или через автотесты замерять, то как раз Demeter тут будет полезен, так как важна оценка в одинаковых условиях.
Задавайте свои вопросы по библиотеке, и ещё сделаем отдельное интервью про производительность приложений и тем как за ней постоянно следить, выдерживая заданную планку качества работы.
#android #производительность #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28
🔥 Главное нововведение этой версии Room — рефакторинг библиотеки для поддержки нескольких платформ через KMP: Android, iOS, JVM (Desktop), native Mac и native Linux. Документацию о том, как начать, можно найти здесь. В рамках поддержки KMP было выделено SQLiteDriver.
#android #kmp #jetpack #ios #desktop #mac #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33
Что нового:
👉 Возможность настройки AsyncLayoutFactory при инициализации AsyncLayoutInflater, что позволяет использовать AsyncAppCompatFactory для корректной работы с AppCompat view
👉 inflate метод теперь принимает Executor на котором будет вызван callback OnInflateFinishedListener
#android #jetpack #jetpackupdate
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15