Android Broadcast – Telegram
Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
Google объвила об отказе разработки Relay - инструмента для генерации Compose кода на основе макетов в Figma. Срок закрытия поддержки - 30 апреля 2025.

Причина закрытия проекта - появление Figma Code Connect с поддержкой Compose

#compose #figma
🤯34👍16
Media is too big
VIEW IN TELEGRAM
📹 Обзор Beta версии Figma Code Connect

Сам не знал что это за зверь такой и буду изучать

UPD. Понял почему не знал - у меня нет денег на такую лицензию 😂

#figma
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27
Существенный минус Code Connect - фича доступна только на планах Organization и Enterprise, которые стоят 45$ и 75$ в месяц за Full Seat или 25$ и 35$ в месяц за место с Dev Mode 🤯

Обязательно надо купить не меньше чем 3 Full Seat, оплата сразу за год и выходит минимум 1620$ в год 🤯 за Organization план

По итогу Code Connect будет доступен только большим компаниям, которые готовы столько потратить на Figma. А я думал попробовать её при разработке своего личного проекта - FrameIO 😔 Простым смертным, да и большинству разработчиков в компаниях придется всё дальше писать ручками.

Я думаю, что Google всетаки делает ставку именно на AI генерацию на основе макетов. Это уже показывали на Google IO при помощи Gemini

#figma
👍10🤯54
Media is too big
VIEW IN TELEGRAM
📹 Демонстрация как Gemini 1.5 в Android Studio может сгенерировать код

Запрос, который ввел разработчик
Act as an Android app developer, analyze the project provided, generate an updated Profile.kt file for this project so that the Compose Preview is as close to the provided image as possible. Make sure to Include imports. Use Jetpack Compose and Kotlin. Use as many components as possible from the project. Don't omit code, provide the full solution. Do not include any previous responses as context.
@project

#android #compose #gemini #androidstudio
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥47👍5
Google напомнила про возможность настройки Firebase AppCheck на основе Play Integrity API в вашем приложении, чтобы убедиться, что доступ к бэку происходит из авторизованного приложения и на Android устройстве, которому можно доверять

#android #безопасность
👍23
Вышел Coil 3.1.0 - популярный загрузчик картинок с поддержкой KMP

👉 Улучшили производительность AsyncImage: скорость работы стала лучше на 25-40%, а потребление памяти - на 35-48%
👉 FakeImage теперь deprecated
👉 Появился ColorImage - полезен для возвращения фейковых значений в тестах и для Compose превью
👉 coil-compose-core больше не зависит от Dispatchers.Main.immedate, что позволило исправить баги в работе Paparazzi и Roborazzi
🛠 Множество других исправлений и улучшений API

#kmp #android #compose
🔥48👍8
Коротко описал ключевые изменения в ViewBindingPropertyDelegate 2.0 через статью (EN,3м) и вот альтернативная ссылка

#android #viewbinding
👍154🔥3
🤯 Не нужно делать инжект всех зависимостей в конструктор

Встретил код в проекте:
class MyViewModel(
...
private val sendDataUseCase: SendDataUseCase,
...
): ViewModel() {

// Вызывается, когда пользователь в UI нажмёт на "Send"
fun onSendClicked(...) {
viewModelScope.launch {
sendDataUseCase.invoke(...) // либо sendDataUseCase(...)
}
}
}


sendDataUseCase не нужен сразу при создании объекта, а нужен только если пользователь нажмёт на кнопку "Send" в UI, что может и не произойти. Так как эта зависимость нужна в конструкторе, то при получении в DI будет сразу происходить создание этой зависимости, что приводит к ненужной нагрузке.

Я рекомендую делать отложенное получение зависимостей с помощью механизма Provider или Lazy. Первый будет ходить за зависимостью в граф каждый раз, а второй - при первом обращении и сохранит её.
// При использовании Dagger или Hilt
class MyViewModel(
...
private val sendDataUseCase: javax.inject.Provider<SendDataUseCase>, // или dagger.Lazy
...
): ViewModel() {

fun onSendClicked(...) {
viewModelScope.launch {
sendDataUseCase.get()
.invoke(...)
}
}
}


Если вы используете Koin на момент написания поста (актуальная версия 4.0), делать отложенный инжект в конструктор возможности нет:
// При использовании Koin
class MyViewModel(): ViewModel() {

// отложенное получение зависимости в Koin
private val sendDataUseCase: SendDataUseCase by inject()

fun onSendClicked(...) {
viewModelScope.launch {
// аналог Provider - получение зависимости каждый раз из графа
val sendDataUseCase: SendDataUseCase = getKoin().get()
sendDataUseCase.invoke(...)
}
}
}


Результат оптимизации
более быстрый старт экранов (зависит от сложности графов)
уменьшение расхода памяти
KOIN потеря явной зависимости в конструкторе. Мне бы очень хотелось увидеть аналог Provider и Lazy в Koin через конструктор, но пока приходится делать свои обертки 😔

#dagger #di #лучшиепрактики
🔥65👍214
🏆 Хотите чтобы я провел анализ вашего проекта и дал подробный отчет? Делаю ревью проектов для компаний так и по персональным запросом с различным уровнем подробности. Пишите мне в личку @kirill_broadcast с подробностями вашего запроса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🎉6🤯3👏1
Согласитесь на снижение зарплаты на 25%, но рабочая неделя станет 4 дня, а не 5 ?
Anonymous Poll
18%
Да
68%
Нет
8%
На других условиях (пишите в комментариях)
1%
Не работаю в найме
5%
Не участвую в опросе
7👍3
Forwarded from AvitoTech
This media is not supported in your browser
VIEW IN TELEGRAM
Тимлиды, техлиды и все те, кто руководит IT-командами, — ждём вас на Avito TeamLead Drinkup #3⚡️

Поэтому скорее бронируйте в календарях вечер 26 февраля. Встретимся в неформальной обстановке, понетворкаем и обсудим:
— взлом интервью и накрутку опыта у кандидатов;
— ИИ в процессе разработки и управлении командой;
— как смириться с тем, что ты не самый сильный по хардам, и начать жить;
— OKR, планирование и стратегия.

И другие темы, которые «болят» или, наоборот, радуют каждого тимлида. Не забудьте зарегистрироваться и отправить этот пост коллегам (за это + в управленческую карму).

🗂Avito TeamLead Drinkup #3, 26 февраля, Москва.

#management_avitotech
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥71
This media is not supported in your browser
VIEW IN TELEGRAM
В Android Studio вскоре будет новый терминал. Там появится подсветка и автодополнение. Пока можно попробовать, но когда-то он останется единственным доступным.

Ряды тех, кто ностальгирует по старому UI в IDEA/Android Studio, прибавилось 😁

#androidstudio
🔥36👍123
Что самое сложное в собеседовании для разработчиков?

Это не задачи на алгоритмы и не вопросы про фреймворки. Самое сложное — понять, чего от вас ждут.

Я решил помочь разобраться в этом и собрал плейлист с МОК собеседованиями.

Здесь вы найдете:
🔍 Разборы задач с объяснением логики
💡 Советы, как показать свои сильные стороны
🚀 Примеры вопросов, которые задают в топовых компаниях
👉 Посмотреть плейлист можно на YouTube 📹 и VK Video 📹

Какой вопрос на собеседовании поставил вас в тупик? Делитесь в комментариях!

#AndroidBroadcast #собес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥367👍2
Если вы хотите провести собеседование, чтобы показать как оно устроено в вашей компании, а может наоборот устроить душное невыносимое собеседование - пишите @kirill_broadcast. Найду подходящего кандидата для вас!
🤯185👍4
Chrome на Android получит поддержку сторонних менеджеров паролей

Ранее стало известно, что в Beta-версии все менеджеры паролей для Android начнут работать с Chrome. Google на основе обратной связи добавила полезные возможности:

1️⃣ Узнать любому приложению, используется ли в Chrome сторонний менеджер паролей

2️⃣ Добавили Deep Link для открытия настройки выбора сервиса автозаполнения в Chrome
val autofillSettingsIntent = Intent(Intent.ACTION_APPLICATION_PREFERENCES).apply {
addCategory(Intent.CATEGORY_DEFAULT)
addCategory(Intent.CATEGORY_APP_BROWSER)
addCategory(Intent.CATEGORY_PREFERENCE)
}

val chooser = Intent.createChooser(autofillSettingsIntent, "Pick Chrome Channel")
startActivity(chooser)


Chrome 135 выйдет в релиз 1 апреля 2025

#android #autofill #chrome
Please open Telegram to view this post
VIEW IN TELEGRAM
👏17👍4🤯3🎉3
Waydroid - решение на основе контейнеров для запуска Android приложения в GNU/Linux системах, используй Wayland

Если любите Linux, то Waydroid даст вам возможность запуска Android приложений и сделать их интеграцию в систему как нативные приложения.

#linux
👍293
Руководитель отдела "Platforms & Devices" объявил о программе добровольного выхода для сотрудников группы из США. Новое подразделение было создано в результате объединения Android, ChromeOS и отдела разработки устройств Pixel.

Заявление:
Команда Platforms & Devices предлагает программу добровольного выхода, которая предоставляет работающим в этой команде сотрудникам Google из США возможность добровольно покинуть компанию с выходным пособием. Это произошло после объединения двух крупных организаций в прошлом году. В этой команде наблюдается огромный импульс, и учитывая множество важной работы впереди, мы хотим, чтобы каждый был глубоко предан нашей миссии и сосредоточен на создании отличных продуктов быстро и эффективно.


Не веришь в светлую миссию - уходи с выходным пособием

Источник 9TO5Google

#google
👍112