🔥 В поисках Senior Mobile App Developer
Стек: Kotlin, Swift
Формат работы: удаленка (работа из РФ и Беларуси невозможна)
Требование: опыт работы от 5 лет, English B1+
💡 Вы будете играть решающую роль в разработке и поддержке мобильных приложений на платформах Android и iOS, уделяя особое внимание интеграции веб-контента через WebView и работе с различными SDK сторонних разработчиков.
👉 Подробнее о вакансии по ссылке
❗️ Для отклика на вакансию пишите @Irina_HRD с указанием от Android Broadcast
#вакансия
Стек: Kotlin, Swift
Формат работы: удаленка (работа из РФ и Беларуси невозможна)
Требование: опыт работы от 5 лет, English B1+
💡 Вы будете играть решающую роль в разработке и поддержке мобильных приложений на платформах Android и iOS, уделяя особое внимание интеграции веб-контента через WebView и работе с различными SDK сторонних разработчиков.
👉 Подробнее о вакансии по ссылке
❗️ Для отклика на вакансию пишите @Irina_HRD с указанием от Android Broadcast
#вакансия
Forwarded from Kotlin Multiplatform Broadcast
В Kotlin 2.1.20 несовместим со свежей версий XCode, поддержка будет в Kotlin 2.1.21. Отложите обновление!
#kotlin #kmp #xcode
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассказывается в чем сложность с обработкой одноразовых событий, которые надо передать из ViewModel в UI.
Автор рассматривает способ через callback интерфейс в конструкторе ViewModel
@HiltViewModel
class MyViewModel @Inject constructor(
// inject the interface
private val toastMessages: ToastMessages,
) : ViewModel() {
fun doSomething() {
viewModelScope.launch {
try {
// execute async operation here
} catch (e: CustomException) {
// initiate a one-off event
toastMessages.showToast(e.localizedMessage)
}
}
}
}
🔗 Альтернативная ссылка на статью
#android #viewmodel #dagger #hilt
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья с рассказом истории написания файлового менеджера для WearOS
🛒 Приложение в Google Play
🐱 Исходный код на GitHub
#android #wearos #opensource
#android #wearos #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
Исходный код не доступен, но автор осветил архитектуру приложения, модуляризацию, публикацию, решение проблем, локализацию
#opensource #media3 #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from AvitoTech
Секунду… Это что, новый курс от команды разработчиков? 🚀
Так точно! Наш бэкенд-инженер Юра Афанасьев создал обучающий курс по паттернам и практикам написания кода. В нём он разбирает порождающие, структурные и поведенческие паттерны, историю их создания и методы в основе.
Ещё из плюсов: простая и понятная подача, короткие и насыщенные информацией материалы, курс подходит как начинающим инженерам, так и миддлам.
Кратко о Юре:
⚡️ Больше 15 лет в коммерческой разработке;
⚡️ Больше 6 лет в Авито (сейчас в департаменте монетизации);
⚡️ 12 лет писал на Php и 4 — на Golang;
⚡️ Организатор внутреннего коммьюнити в Авито.
В первой части — про историю создания паттернов. Выбирайте удобный формат и смотрите:
📺 YouTube
🔵 VK Видео
💻 Rutube
#backend
Так точно! Наш бэкенд-инженер Юра Афанасьев создал обучающий курс по паттернам и практикам написания кода. В нём он разбирает порождающие, структурные и поведенческие паттерны, историю их создания и методы в основе.
Ещё из плюсов: простая и понятная подача, короткие и насыщенные информацией материалы, курс подходит как начинающим инженерам, так и миддлам.
Кратко о Юре:
В первой части — про историю создания паттернов. Выбирайте удобный формат и смотрите:
#backend
Please open Telegram to view this post
VIEW IN TELEGRAM
Отключите эти настройки 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
В 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 #безопасность
В коде 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
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
Как найти неиспользуемые зависимости в 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
Разработчик на простом примере показывается как сделать чистую архитектуру в Android проекте, подробно описывая каждый шаг. Полезно будет для новичков. Читайте тут (12м)
#android #архитектура
#android #архитектура
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
Обзор(EN,7М) как оценивать время выполнения Gradle тасков в разных условиях для Android проектов. Если коротко - используйте Gradle Profiler и правильно настраивайте сценарий
🔗 Альтернативная ссылка
#android #gradle #производительность
🔗 Альтернативная ссылка
#android #gradle #производительность
Forwarded from AvitoTech
Продолжаем разбираться в паттернах! На очереди — порождающие 🚀
В новом выпуске рассмотрим первые два Builder (Строитель) и Factory Method (Фабричный метод) — паттерны, задача которых скрывать детали создания объектов в абстракциях.
🔍 В выпуске рассказали про подводные камни использования, их назначение, плюсы и минусы. А ещё объяснили, откуда взялся паттерн фабрика и почему паттерны — не аксиомы:
📺 YouTube
🔵 VK Видео
💻 Rutube
#backend
В новом выпуске рассмотрим первые два Builder (Строитель) и Factory Method (Фабричный метод) — паттерны, задача которых скрывать детали создания объектов в абстракциях.
#backend
Please open Telegram to view this post
VIEW IN TELEGRAM
Сканер доступен всем, у кого есть доступ к 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
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
В 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