Forwarded from Surf Mobile Team
Хабр
Как оживает смартфон: Android на старте
Наши с вами телефоны включались бессчётное количество раз. Возможно, вы прямо сейчас запустили смартфон, чтобы прочитать эту статью. Ну а для тех, кто занимается разработкой, процесс включения...
Как оживает смартфон: Android на старте 🚀📱
Когда ты включаешь телефон, задумывался ли ты, что происходит внутри? Давай заглянем за кулисы и вместе с Артёмом, Android-разработчиком разберёмся, как запускается система и что скрывается под её капотом.
Для тех, кто работает с мобильными технологиями, этот процесс — не просто рутина. Какие этапы преодолевает система от нажатия кнопки включения до появления интерфейса? И как устройство готовится к полноценной работе? Понимание этого процесса критически важно для оптимизации приложений и повышения их производительности.
🔎 Читай статью от сёрфера и узнай:
🟢 Как Boot ROM подготавливает устройство к загрузке
🟢 Как ядро Linux управляет системой и влияет на её стабильность
🟢 Почему Zygote и System Server так важны для Android
Статья уже на Хабре! А насколько важны эти знания для каждого, кто работает с мобильными платформами — обсудим в комментариях 👇
#Surf #Android #Разработка
Когда ты включаешь телефон, задумывался ли ты, что происходит внутри? Давай заглянем за кулисы и вместе с Артёмом, Android-разработчиком разберёмся, как запускается система и что скрывается под её капотом.
Для тех, кто работает с мобильными технологиями, этот процесс — не просто рутина. Какие этапы преодолевает система от нажатия кнопки включения до появления интерфейса? И как устройство готовится к полноценной работе? Понимание этого процесса критически важно для оптимизации приложений и повышения их производительности.
🔎 Читай статью от сёрфера и узнай:
Статья уже на Хабре! А насколько важны эти знания для каждого, кто работает с мобильными платформами — обсудим в комментариях 👇
#Surf #Android #Разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27👎8🔥6
🔥 Автоматическая загрузка JVM для Gradle Daemon: теперь Gradle может автоматически загружать необходимую версию JVM для работы Daemon, если подходящая версия не найдена локально.
👉 В Scala-плагине появилась возможность явно задавать версию Scala через расширение scala.
👉 Точные временные метки в JUnit XML: временные метки в отчетах JUnit XML теперь имеют миллисекундную точность, что улучшает детализацию отчетов.
🛠 Более 700 мелких исправлений и улучшений
Кроме того, добавлены улучшения для авторов сборок и разработчиков плагинов, включая улучшенный доступ к директории настроек в скриптах сборки, новый отчет о преобразовании артефактов, возможность создания пользовательских отчетов о тестировании и новый плагин distribution-base - сборка ZIP или TAR с необходимыми артефактами из проекта
#gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36👎5
В AndroidX Lifecycle 2.9.0 появилось новое API для тестирования ViewModel - ViewModelScenario. Для использования этого API необходимо подключить артефакт "androidx.lifecycle:lifecycle-viewmodel-testing".
Пример использования:
class JetpackViewModelTest {
@Test
fun testStateRestoration() = runTest { // this = TestScope
viewModelScenario { // this = CreationExtras
SampleViewModel(
scope = this@runTest,
saveStateHandle = createSavedStateHandle(),
)
}.use { scenario: ViewModelScenario ->
scenario.state.data = "testValue"
scenario.recreate()
assertEquals("testValue", scenario.state.data)
}
}
}
class SampleViewModel(
scope: CoroutineScope,
private val saveStateHandle: SavedStateHandle,
) : ViewModel(scope) {
companion object {
private const val STATE_KEY = "state_key"
}
var data: String?
get() = saveStateHandle.get<String>(STATE_KEY)
set(value) {
saveStateHandle.set(STATE_KEY, value)
}
}
#android #kmp #тестирование #jetpackupdate
Please open Telegram to view this post
VIEW IN TELEGRAM
👍47👎7
Однажды пятничным вечером Александр и его коллега задумались над вопросом: где живут корутины, когда запустивший их coroutineScope героически погибает в жерновах GC? Субботнее утро было проведено за чтением статей и исходников.
Вот так и родилась идея доклада. В нем — ответы на вопросы об устройстве и работе корутин для самых любознательных.
#kotlin #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
❤30👍6👎6
Десять лет назад Espresso привнес в тестирование Android одно из своих ключевых понятий – idling resource. Этот механизм ждал, пока приложение выполнит фоновую работу, прежде чем тест мог продолжиться. Square выпустили RxIdler и okhttp-idling-resource для мониторинга RxJava и OkHttp. Сегодня пришло время отправить их в архив.
❌ Что не так с idling resource?
Idling resource привязывает тесты к внутренней реализации приложения, а не к пользовательскому взаимодействию. Настоящий пользователь не ждет, пока OkHttp станет “idle” – он смотрит на UI. Если кнопка “Продолжить” загорелась зеленым – значит, можно нажимать.
💡 Как теперь тестировать ожидания?
Google обновил рекомендации, и теперь Compose предлагает встроенные API для ожидания условий. Для View-based интерфейсов можно написать кастомный ViewAction, который зацикливается на проверке условия, пока оно не выполнится.
Deprecated статус не значит что библиотеки больше не рабоают. Вы можете их продолжать использовать, они стабильны, но подход больше не рекомендуется к использованию.
#android #compose #okhttp #rxjava #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Kotlin Multiplatform Broadcast
Есть ли функции на Server Driven UI (SDUI, он же BDUI) в вашем приложении?
Anonymous Poll
33%
Да
51%
Нет
7%
Не знаю
2%
Не занимаюсь разработкой
8%
Не участвую в опросе
👎20👍7
👉 Что такое Server Drive UI (SDUI), он же BDUI
👉 Зачем его применяют
👉 Каким приложениям будет полезен подход
#android #sdui
Please open Telegram to view this post
VIEW IN TELEGRAM
👎34🔥25 6👍4😢1
Forwarded from 💎 Афиша мероприятий Карьерного Цеха aka Набока отжигает
Белорусское комьюнити, вы там как?
Именно такой вопрос возникает после просмотра нового выпуска подкаста с Лесей Набока, Глебом Кудрявцевым и Кириллом Розовым.
🙊 Кирилл, мобильный разработчик, андроид-эксперт и блогер, рассказал, как живет белорусский IT-рынок. Что случилось с конференциями и почему местные айтишники не готовы к рынку работодателей.
Смотрите выпуск и отвечайте на главный вопрос Глеба про Липецк 😁
Для удобства подгрузили подкаст на площадки:
📺 YouTube
📺 Rutube
🎵 Яндекс.Музыка
💙 VK
Именно такой вопрос возникает после просмотра нового выпуска подкаста с Лесей Набока, Глебом Кудрявцевым и Кириллом Розовым.
🙊 Кирилл, мобильный разработчик, андроид-эксперт и блогер, рассказал, как живет белорусский IT-рынок. Что случилось с конференциями и почему местные айтишники не готовы к рынку работодателей.
Смотрите выпуск и отвечайте на главный вопрос Глеба про Липецк 😁
Для удобства подгрузили подкаст на площадки:
Please open Telegram to view this post
VIEW IN TELEGRAM
👎41👍18🔥2 2
В новой версии добавили поддержку управления клавишами, исправили баги и доабвили новые примеры
#android #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👎5 3
Вышел Room 2.7.0-rc01 где исправили баг Room, который приводил к крешу KSP процессора на iOS с Kotlin 2.1
#android #jetpack #kmp #sqlite
#android #jetpack #kmp #sqlite
👍24👎7🤯2
AndroidX представил первую стабильную версию библиотеки core-viewtree, которая вводит новое понятие — disjoint parent для View, дополнительно к уже существующему View.parent
🔍 Что это значит?
Теперь View может иметь родителя, который есть у View, но не задан через View.parent. Это полезно в случаях, когда элемент находится вне стандартной иерархии, например: ViewOverlay, попапы, диалоги.
Такой подход позволяет гибко управлять связями между View, особенно в анимациях и сложных UI-компонентах.
Пример использования
class CustomOverlayView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null
) : View(context, attrs) {
fun attachToOverlay(overlayView: View) {
// Устанавливаем overlayView как разобщённого родителя
ViewTreeDisjointParent.set(this, overlayView)
}
}
Где используется
AndroidX автоматически задаёт disjoint parent для ViewOverlay, начиная с Transition 1.6.0-alpha01. Также разработчики могут самостоятельно назначать такие связи.
Будете использовать в своих проектах? Делитесь мыслями в комментариях! 👇
#android #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👎28👍14🤯5 3
🔥 Ищем инженера по разработке и кастомизации Android OS
💡 Проект связан с разработкой ретро-модели телефона, сочетающей современные технологии и минималистичный интерфейс. Устройство основано на Android 14 Go Edition, требует кастомизации системы, оптимизации работы с ограниченными ресурсами и интеграции ключевых функций, включая VoLTE, GPS, камеру, музыкальный плеер и NFC.
👉 Подробнее о вакансии по ссылке
❗️ Для отклика на вакансию пишите @Irina_HRD с указанием от Android Broadcast
#вакансия
💡 Проект связан с разработкой ретро-модели телефона, сочетающей современные технологии и минималистичный интерфейс. Устройство основано на Android 14 Go Edition, требует кастомизации системы, оптимизации работы с ограниченными ресурсами и интеграции ключевых функций, включая VoLTE, GPS, камеру, музыкальный плеер и NFC.
👉 Подробнее о вакансии по ссылке
❗️ Для отклика на вакансию пишите @Irina_HRD с указанием от Android Broadcast
#вакансия
🔥17👎12👍2 2
Я поговорил с мобильным архитектором Александром Бильчуком из AvitoTech о том, как работают архитектурные команды в одной из крупнейших IT-компаний.
📌 В выпуске:
👉 Какие задачи решает отдел мобильной архитектуры
👉 Влияние Jetpack Compose, SwiftUI, AI на архитектуру
👉 Как посчитать пользу архитектурных решений?
👉 Как стать мобильным архитектором?
Если хотите глубже понять, как принимаются архитектурные решения в масштабных продуктах – обязательно к просмотру!
#AndroidBroadcast #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35👎21🔥11 9❤4
Forwarded from AvitoTech
Итак, обо всём по порядку. С 29 по 30 марта проведём марафон Avito TeamLead для опытных лидов в команды:
Всего будет три этапа:
А после, если случится мэтч, оффер!
Ждём тех, кто уже имеет опыт в разработке от 5 лет, управлении командой от года и владеет DevOps-практиками.
Узнали себя? Тогда оставляйте заявку на странице марафона. И до встречи 29 марта!
#management_avitotech
Please open Telegram to view this post
VIEW IN TELEGRAM
👎29 8🔥4🤯1
Есть в ли в вашем проекте com.android.dynamic-feature Gradle модули ?
Anonymous Poll
8%
Да
68%
Нет
18%
Что это
1%
Не пишу вовсе или нативно под Android
5%
Не участвую в опросе
👍6👎5 1
Ссылка без VPN
#android #jetpack #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24👎8❤2🔥2
Каким образом распространяете тестовые сборки мобильных приложений внутри компании?
Anonymous Poll
7%
Microsoft AppCenter
25%
Firebase App Distribution
0%
Emerge Build Distribution
14%
Google Play
13%
Apple Test Flight
35%
Через артефакты CI/CD
20%
Своё хранилище
26%
Загружаем сборки в мессенджер
1%
Другой способ распространения (пиши в комментариях)
12%
Не участвую в опросе
👎11👍10❤3 2
Как мы ускорили работу с базой данных в Android-приложении (11м)
Разработчик поделился опытом, какие практики применялись для ускорения работы с SQLite в Android: неоптимальные обращения к БД в циклах и их последствия. Также не стоит хранить JSON-объекты в виде строк в БД (это кажется слишком очевидным).
Команда столкнулась с этими проблемами, объяснила, почему это плохо, и как можно исправить ситуацию, чтобы производительность приложения не снижалась из-за обращений к БД.
#android #sqlite #производительность
Разработчик поделился опытом, какие практики применялись для ускорения работы с SQLite в Android: неоптимальные обращения к БД в циклах и их последствия. Также не стоит хранить JSON-объекты в виде строк в БД (это кажется слишком очевидным).
Команда столкнулась с этими проблемами, объяснила, почему это плохо, и как можно исправить ситуацию, чтобы производительность приложения не снижалась из-за обращений к БД.
#android #sqlite #производительность
👍18👎10🤯1 1
Media is too big
VIEW IN TELEGRAM
Анонсировали новый эпизод TheAndroidShow, который пройдет 13 марта в 20:00 (GMT+3)
#android #google #theandroidshow
#android #google #theandroidshow
👍17👎10 8
Media is too big
VIEW IN TELEGRAM
#android #compose #производительность #AndroidDevelopersBackstage
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👎8 5👍4❤1