TGINSIGHT CHAT
Android Broadcast
@android_broadcast
TechnologiesПодборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab#MQRZR
Posts récents
Page 18 sur 84 · 1,000 posts
Publié 28 nov.
🐱Kvaesitso - open source лаунчер для Android. Можно изучить исходники для понимания как строится современный лаунчер Скачать сборку можно тут #android#opensource#пример
Hashtags
Publié 28 nov.
🐱OpenCode - open source ИИ агент для написания кода из терминала без привязки к конкретной модели Ключевые возможности: 🔹Нативный Terminal UI - Современный, отзывчивый и кастомизируемый интерфейс прямо в терминале — выглядит как полноценный редактор. 🔹Поддержка LSP - Автоматически поднимает нужные LSP для контекста модели — агент лучше понимает проект и пишет более точный код. 🔹Параллельные сессии. Можно запустить несколько агентов на одном репозитории — например, один для рефакторинга, другой для тестов. 🔹Шаринг ссылок. Любую сессию можно поделиться ссылкой — удобно для ревью и отладки с коллегами. 🔹Поддержка Claude Pro / Max. Вход через Anthropic, если у вас есть подписка — OpenCode использует её напрямую. 🔹Любые модели. 75+ провайдеров через Models.dev, включая локальные LLM — можно выбрать от недорогих до крупных оффлайновых моделей. 🔹Любой редактор. OpenCode не привязан к IDE — работает в терминале и отлично дополняет Android Studio / IntelliJ / VS Code. Это один из самых быстроразвивающихся инструментов для работы с агентами локально. Подходит тем, кто активно пишет код, хочет меньше переключаться между окнами и предпочитает прозрачную архитектуру без вендор лока. #ии#ai#opensource
Hashtags
Publié 28 nov.
🤖Как обработать слишком быстрый ввод пользователя с помощью Coroutines Flow Если внимательно посмотреть на поведение людей в поисковых полях, становится понятно: пальцы работают быстрее, чем приложение успевает реагировать. Пользователь печатает «a», тут же «an», следом «and» — а приложение в панике пытается перестроить результаты после каждого шага. Поток начинает «стрелять» событиями, система перегружается, а интерфейс выглядит так, будто его кто-то перематывает на ускоренной перемотке. Главная проблема здесь не скорость человека — а то, что приложение воспринимает каждую мелочь как повод что-то пересчитать. Чтобы интерфейс работал предсказуемо, нужно научить поток реагировать не на каждое изменение, а на осмысленное завершение ввода. ⏳Зачем нужен debounce() Оператор debounce() работает как фильтр слишком быстрых изменений: - быстрые изменения подряд — игнорируются - устойчивое значение после паузы — двигаются по потоку дальше Поток перестаёт реагировать на каждую букву и начинает слушать устойчивые состояния строки. val results = queryFlow .debounce(300) // значение задержки можно менять .distinctUntilChanged() .map { term -> searchData(term) } .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), emptyList()) ------------ Помимо полезных символов, пользователь может случайно добавить пробел в конце или другой невидный символ. Фактически это тот же запрос — но без обработки поиск запустится повторно. В таких случаях можно определиться как оператор distinctUntilChanged() будет сранивать значения: queryFlow .debounce(300) .distinctUntilChanged { old, new -> old.trim() == new.trim() } Теперь оба состояния считаются одинаковыми, и поиск не перезапускается зря. #kotlin#coroutines#flow#android
Hashtags
Publié 27 nov.
🪙Разрабатываю Gradle плагин для Swift кода в Android сборке(2 ч) Не так давно разобрал как работает Swift для Android, но там совсем "на скорую руку" сделали интеграцию с Gradle билд системой. Решил показать как будет сделать нормальный плагин по лучшим практикам Gradle. Демонстрация разработки в новом видео. Если у вас есть проблемы с Boosty - пишите @ab_manager #AndroidBroadcast#Gradle#Swift#AndroidDev
Publié 26 nov.
🤯ИИ не спасёт экономику — и не заменит всех людей Нобелевский лауреат и «крёстный отец ИИ» Джеффри Хинтон заявил жёстко: инвестиции в ИИ не окупятся без массовой замены людей. Но проблема в другом: ИИ сегодня уже снижает производительность во многих компаниях, ошибается, требует постоянной перепроверки и не способен выполнять даже простые задачи стабильно. Отчёты MIT и Carnegie Mellon показывают: 👉 до 95% ИИ-проектов не дают роста эффективности 👉 «агентный ИИ» проваливает задачи в 70% случаев 👉 сотрудники тратят больше времени на исправление ИИ, чем экономят Ожидания руководства ≠ реальность специалистов. ✅ 96% топ-менеджеров верят в рост эффективности от ИИ. ❌ 77% обычных сотрудников говорят об обратном. Вывод простой: ✨ ИИ — это инструмент, а не замена людям 💣 Текущий AI-бум — больше инвестиционный пузырь, чем технологический прорыв 🧠 А главный риск — не в моделях, а в слепой вере в «магическую автоматизацию» Использовать ИИ нужно ❗️ Но разумно. И под контролем человека. #AI#ии#разработка
Hashtags
Publié 26 nov.
🤖Как в приложение Додо пиццы добавляли Live Update из Android 16: где макеты врут, a SDK ставит границы Я давно ждал, когда в Android появится аналог крутых Live Activities из iOS. И когда Google наконец-то представил Live Updates в Android 16, сразу же ждал когда она появится в приложениях доставки/такси, используемыми мною. Неудивительно но ДоДо Пицца оперативно это сделали. Оказалось, что за красивыми картинками из презентации скрывается целая история с ограничениями, которые не описаны в документации. Ребят из ДоДо прошли через боль дизайнеров, перерисовывавших макеты, и неожиданные сюрпризы от SDK и рассказывают про свой опыт. 🔑 Ключевые открытия и борьба с реальностью: 🤯 Макеты врут! Иконка (например, машинка) не может красиво «обрезать» сегмент прогресс-бара, как в дизайне. Она просто ложится сверху, и между ними всегда будет зазор. 🖌Цвета не сходятся. У прогресс-бара есть скрытый оверлей, поэтому подобрать идеально одинаковый цвет для иконки и бара — невозможно. 📱Эмулятор — не помощник. Ни чипсу в статус-баре, ни работу на Always-On-Display на эмуляторе не проверить. Только живой девайс! 🍎iOS vs Android: В iOS Live Activities — это мини-виджет с огромной свободой для брендинга. В Android — это жёсткий системный шаблон. Минус для дизайнеров, но плюс для единообразия опыта пользователя. ✅ Что в итоге? Несмотря на все ограничения, фича того стоит! Пользователи получают супер-наглядный и всегда видимый статус заказа, а мы — новый стандартизированный инструмент от Google. А вы уже видели Live Updates в действии? Что думаете о таком подходе Google? 👇 #Android#Android16#AlwaysOn
Hashtags
Publié 25 nov.
🤖 Отлаживайте фоновые задачи в Android Studio как профи: Background Task Inspector для WokrManager Работаете с WorkManager? Тогда вам точно пригодится встроенный в Android Studio инструмент — Background Task Inspector. Это ваш главный помощник для визуального мониторинга и отладки фоновых задач. Что вы видите в инспекторе: - Все WorkManager задачи в одном месте - Текущие статусы: Running, Enqueued, Failed, Succeeded - Детальную информацию о каждом воркере Особенно мощно инструмент работает с цепочками задач: // Например, у вас есть такая цепочка: val workA = OneTimeWorkRequestBuilder<CleanupWorker>().build() val workB = OneTimeWorkRequestBuilder<WaterColorFilterWorker>().build() val workC = OneTimeWorkRequestBuilder<BlurEffectFilterColor>().build() workManager .beginWith(workA) .then(workB) .then(workC) .enqueue() Визуализация графа выполнения покажет: - Какая задача завершилась успешно (Succeeded) - Какая упала (Failed) и почему - Как это повлияло на последующие задачи Типичный сценарий отладки: Видите статус «Enqueued»? Значит задача в очереди, но не запускается. Возможные причины: - Ограничения не выполняются (нет сети, не заряжается устройство) - Предыдущая задача в цепочке не завершилась - Достигнут лимит параллельных задач Преимущества использования: - Экономия времени на логирование и отладку - Наглядное представление сложных цепочек задач - Быстрая диагностика проблем с выполнением фоновых операций Инструмент уже ждет вас в Android Studio → View → Tool Windows → App Inspection → Background Task Inspector. #AndroidStudio#Android#AndroidDev
Publié 24 nov.
Вот бы классно чтобы все как Uber перешли на Credential Manager API и перенос аккаунтов стал проще для пользователей, а бизнесу дешевле Подробности в статье от разработчика #android
Hashtags
Publié 24 nov.
⚙️ Команда Compose добилась плавности скрола как в View на Android. Источник тут #compose
Hashtags
Publié 21 nov.
🚀Input MotionPrediction 1.0.0 — снижаем задержки ввода с предсказанием жестов Google выпустила первую стабильную версию Input MotionPrediction — библиотеку для уменьшения задержек при вводе за счет предсказания будущих MotionEvents. Что это решает? 👉 Уменьшает perceived latency (воспринимаемую задержку) при взаимодействии с UI 👉 Предсказывает будущие координаты касания для более плавного отклика 👉 Особенно полезно для рисования, игр и жестовой навигации // Создаем предсказатель val predictor = MotionEventPredictor() // Записываем полученные события predictor.record(motionEvent) // Получаем предсказанные события на N миллисекунд вперед val predictedEvents = predictor.predict(milliseconds) Ключевые особенности: 👉 Автоматически использует системные API предсказания если доступны 👉 Встроенный алгоритм предсказания 👉 Поддерживает ориентацию и наклон стилуса 👉 Оптимизирован по памяти и производительности ‼️ Кому будет полезна: - Приложения для рисования и скетчей - Игры с тач-управлением - Сложные жестовые интерфейсы - Любой UI, где важна мгновенная реакция на касания #Jetpack#Android#UI#Производительность
Publié 21 nov.
🤯Android QuickShare теперь может работать с Apple AirDrop Google самостоятельно сделали работу с AirDrop на всю линейку Pixel 10. Ждем когда раскатят дальше, либо Apple выкатит обновление и закроет возможность 😂 #android#pixel
Publié 21 nov.
🚀Navigation Event 1.0.0 — новая KMP-библиотека для обработки навигации на разных платформах Что дает библиотека 👉 Единый кроссплатформенный API для замены разрозненных решений 👉 Централизованная система управления всей навигацией в приложении 👉 Базовый слой для будущих навигационных решений Android Пример использования: val myHandler = object : NavigationEventHandler<NavigationEventInfo>( initialInfo = CurrentInfo, isBackEnabled = true ) { override fun onBackStarted(event: NavigationEvent) { // Подготовка к навигации } override fun onBackProgressed(event: NavigationEvent) { // Анимации на основе event.progress } override fun onBackCompleted() { // Завершение навигации } } 👉 Готовая интеграция с Compose val navEventState = rememberNavigationEventState( currentInfo = CurrentInfo, backInfo = PreviousInfo ) NavigationBackHandler( state = navEventState, isBackEnabled = true, onBackCompleted = { /* Действие при завершении */ } ) 👉 Диспетчеры могут образовывать родительско-дочерние цепочки: // Compose val childDispatcher = rememberNavigationEventDispatcher( parent = LocalNavigationEventDispatcherOwner .current .navigationEventDispatcher ) 👉 Нативная поддержка Predictive Back из Android 👉 Библиотека уже используется в Activity 1.12.0 как базовый слой #Jetpack#Navigation#Compose#KMP#PredictiveBack#Kotlin