Android разработка
Статистикавсе о Android разработке @itchannels_telegram - 🔥 лучшие it каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - ml 📚 @pythonlbooks -📚books
- Последний пост
- 6 авг.
- Последнее чтение
- 18:14
- Постов за неделю
- 0
- Всего постов
- 29
- Тип
- открытый
- Язык
- русский
- Категория
- Книги
- В каталоге с
- 12 авг.
- 1/24сутки в ленте
- 523
- 1/48двое суток
- 599
- 1/72трое суток
- 646
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
💡 Android/Kotlin: не перезапускайте `Flow` после каждого поворота экрана Частая ошибка в ViewModel: val uiState = repository.observeData() .stateIn( scope = viewModelScope, started = SharingStarted.WhileSubscribed(), initialValue = UiState.Loading ) У WhileSubscribed() тайм-аут по умолчанию равен нулю. Когда Activity пересоздаётся при повороте экрана, подписчик исчезает, upstream-поток сразу останавливается, а затем запускается заново. Это может повторно инициировать запросы, чтение базы или тяжёлые вычисления. Добавьте небольшой период ожидания: val uiState = repository.observeData() .stateIn( scope = viewModelScope, started = SharingStarted.WhileSubscribed(5_000), initialValue = UiState.Loading ) Теперь поток продолжит работать ещё пять секунд после исчезновения последнего подписчика. Этого обычно достаточно, чтобы новая Activity успела подключиться после изменения конфигурации. В Compose собирайте состояние с учётом жизненного цикла: val uiState by viewModel.uiState.collectAsStateWithLifecycle() Получается полезный баланс: - поворот экрана не перезапускает весь pipeline; - при реальном уходе со страницы поток остановится; - ViewModel не тратит ресурсы без активного интерфейса. 5_000 - не магическое значение. Для дорогого подключения его можно увеличить, а для быстрого локального потока - уменьшить. #Android #Kotlin #StateFlow #JetpackCompose
Лето, ИТ-Пикник и музыка известных артистов уже через несколько дней! 8 августа в Коломенском пройдет ИТ-Пикник. В программе — выступления проекта LAB Антона Беляева, IOWA, Cream Soda, Pompeya, мартина и Совы. А днем — научпоп-лекции, дискуссии об ИИ и больших языковых моделях, мастер-классы и интерактивы. Полезные знакомства и развлечения тоже будут. Зарегистрироваться и узнать подробности можно на сайте мероприятия. В билет входит +1 — можно позвать близких и друзей. До встречи в месте притяжения ИТ.
🔥 JetBrains открыла исходники KotlinLLM - Kotlin-код, который дописывает себя во время выполнения KotlinLLM - исследовательский плагин для IntelliJ IDEA, который позволяет делегировать часть логики приложения LLM прямо во время запуска. Пример: val apiUrl: String = asLlm( "JetBrains/kotlin", hint = "Верни URL для GitHub Issues API" ) val service: GithubService = mockLlm() Когда приложение сталкивается с новым сценарием, плагин: 1. получает runtime-значения и типы; 2. просит LLM сгенерировать обновление; 3. компилирует новый код; 4. горячо перезагружает класс; 5. повторно выполняет исходный вызов. Главная идея - модель не вызывается постоянно. Успешное решение сохраняется как обычный Kotlin-файл, который можно проверить, изменить, закоммитить и запускать дальше уже без LLM. Сейчас доступны два основных механизма: - asLlm<F, T>() - преобразует значение одного типа в другой; - mockLlm<T>() - генерирует реализацию интерфейса и развивает её по мере появления новых сценариев. Пока это исследовательский прототип для Kotlin/JVM. Проект распространяется по лицензии Apache 2.0. GitHub: https://github.com/JetBrains-Research/kotlinllm-plugin
Google убрала последний барьер для перехода с iPhone на Android 😐 В Android 17 переезд с iPhone сделали максимально бесшовным: новый смартфон сам подтягивает фотографии, видео, сообщения, контакты, сохранённые сети Wi-Fi и даже eSIM. Без отдельных приложений, без танцев с бубном и без традиционного «что-то точно не перенесётся». На первый взгляд — просто обновление. На практике — это ломает один из последних якорей, которые держали людей в экосистеме Apple. Кто с Pixel или новыми Samsung Z Flip8 / Z Fold8 — уже могут щупать. Остальным — подвезут позже.
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
⚡️ Локальные LLM стали серьёзнее: Bonsai 27B весит меньше 4 ГБ PrismML взяла модель класса 27B и сжала её через 1-bit quantization: с примерно 54 ГБ до 3.8–3.9 ГБ. Заявляют, что при таком сжатии модель сохраняет около 90% качества оригинала. Это уже размер, с которым можно думать не только про серверы, но и про ноутбуки, браузер и смартфоны. Есть и более качественная версия Ternary Bonsai 27B: около 5.9 ГБ и до 95% качества baseline. Модель поддерживает мультимодальность, reasoning, кодинг, tool calling и агентные сценарии. То есть это не просто локальный чат, а база для локальных AI-агентов. Для Bonsai уже сделали WebGPU demo: кастомные kernel’ы позволяют запускать модель прямо в браузере. По словам Xenova, часть WebGPU-кода помогали писать Fable 5 и GPT 5.6 Sol. HF collection: https://huggingface.co/collections/prism-ml/bonsai-27b WebGPU demo: https://huggingface.co/spaces/webml-community/bonsai-webgpu-kernels @ai_machinelearning_big_data #llm #ai #ml
Open-source IDE на Qt6 для реверс-инжиниринга Android APK. https://github.com/vaibhavpandeyvpz/apkstudio
Java и инкапсуляция без магии Публичные поля выглядят удобно ровно до первого бага. account.balance = new BigDecimal("-100"); Код скомпилировался, объект изменился, бизнес-правило сломалось. Никакой проверки, никакого контроля, никакой гарантии, что BankAccount остаётся в корректном состоянии. Поэтому поле баланса не должно быть частью публичного API. Наружу можно отдать чтение, а изменение проводить через методы, где явно описаны правила: private BigDecimal balance = BigDecimal.ZERO; public BigDecimal getBalance() { return balance; } public void withdraw(BigDecimal amount) { if (amount.signum() <= 0) { throw new IllegalArgumentException("amount must be positive"); } if (balance.compareTo(amount) < 0) { throw new IllegalStateException("insufficient funds"); } balance = balance.subtract(amount); } Геттеры и сеттеры нужны не для того, чтобы механически обернуть каждое поле методами. Смысл инкапсуляции в том, чтобы объект сам защищал свои инварианты: баланс не уходит в минус, сумма списания валидна, состояние нельзя сломать прямым присваиванием. Если значение можно менять только по правилам, это уже не просто структура данных, а нормальная доменная модель.
В библиотеку ANGLE, используемую в Chrome и Android, добавлена поддержка Wayland Разработчики Chromium реализовали поддержку протокола Wayland библиотеке ANGLE. Библиотека осуществляет трансляцию вызовов OpenGL ES в графические API OpenGL, Direct3D 9/11 и Vulkan, и применяется в Chrome в качестве бэкенда для WebGL, а в Android для реализации OpenGL ES поверх Vulkan. Упоминается, что изменение позволит реализовать поддержку Wayland во фреймворке CEF (Chromium Embedded Framework), предназначенном для встраивания браузерного движка Chromium в приложения. Среди прочего, отсутствие поддержки Wayland в CEF не позволяет реализовать Wayland-версию клиента Steam. Подробнее: https://opennet.ru/65541/ https://opennet.me/65541/
🖥 Китайский разработчик выложил в открытый доступ целую автомобильную ОС, которая превращает любой Android-смартфон в беспроводной адаптер CarPlay. Она называется OkcarOS. Это кастомная прошивка Android 13, которая напрямую общается с экраном автомобиля по протоколу CarPlay. → Подключение за 4 секунды → Видео 60 fps, битрейт 25 Мбит/с → Без потерь аудио PCM → Разрешение 1:1 с экраном в автомобиле 100% с открытым исходным кодом. https://github.com/okcar-os/android
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
Google показала Android 17 - систему, где Gemini встраивают почти в каждый слой Android 17 выглядит не как обычное обновление с новыми иконками, а как попытка превратить смартфон в полноценного AI-ассистента. Что обещают внутри: - ИИ сможет взаимодействовать с приложениями от имени пользователя - система будет собирать автоматизации под конкретные задачи - появятся кастомные AI-виджеты - голосовой ввод научат чистить от пауз, мусора и слов-паразитов - Gemini Intelligence станет частью повседневных сценариев, а не отдельной кнопкой в приложении Одна из самых заметных фич - Screen Reactions. Она позволит одновременно записывать экран и себя, а потом накладывать реакцию поверх видео, комментариев или другого контента. По сути, встроенный инструмент для реактов и коротких роликов без стороннего софта. Отдельно Google анонсировала Googlebook - премиальные компьютеры под ChromeOS и глубокую интеграцию Gemini Intelligence. Похоже, Google больше не продаёт просто Android и ChromeOS. Она собирает экосистему, где ИИ становится стандартным интерфейсом между пользователем, приложениями и устройством.
🔍📱 Doorr: Android интерфейс для поиска с Prowlarr и Jackett Doorr — это мобильное приложение для Android, которое упрощает поиск контента через Prowlarr и Jackett. Удобный интерфейс и функциональные возможности делают его отличным инструментом для пользователей. 🚀Основные моменты: - Интуитивно понятный интерфейс для поиска - Поддержка Prowlarr и Jackett - Легкий доступ к файлам и настройкам 📌 GitHub: https://github.com/Lifailon/doorr
видео или голосовое, без подписи
Tencent ужал переводчик до 440 мегабайт и сделал его умнее Google Translate Китайцы из Tencent выложили в открытый доступ модель Hy-MT1.5-1.8B-1.25bit, и это тот случай, когда длинное название скрывает по-настоящему любопытную штуку. Переводчик весит 440 мегабайт, целиком работает офлайн на телефоне, понимает 33 языка и при этом обгоняет Google Translate на стандартных бенчмарках. Главный фокус тут в квантовании. Обычно модель такого размера в FP16 занимает около 3,3 гигабайта, что для смартфона уже многовато. Tencent сжали её до 1,25 бита на вес, и в итоге получили файл в семь с половиной раз меньше оригинала. Что особенно приятно, это не привычная история «сжали и оно начало нести чушь». Точность не просела, а по сравнению с предыдущими подходами на 1,67 бита новая версия ещё и работает примерно на десять процентов быстрее. При своих скромных 1,8 миллиарда параметров модель умудряется тягаться с коммерческими API и даже с гигантами на 235 миллиардов. То есть на стандартных тестах перевода она играет в одной лиге с системами, которые в сотню раз тяжелее и крутятся в дата-центрах, а не у вас в кармане. Покрытие тоже не для галочки. 33 языка, 5 диалектов и 1056 направлений перевода, причём в список попали тибетский и монгольский. Это редкий случай, когда крупный игрок не ограничивается английским, испанским и парой ходовых европейских, а реально вкладывается в малые языки, которые обычно остаются за бортом коммерческих сервисов. В довесок Tencent напоминают, что их переводческий стек уже тридцать раз брал первые места на международных соревнованиях по машинному переводу и стоит внутри продуктов компании. ЭТО боевая технология, которую просто решили отдать наружу. На Hugging Face лежит сама модель, на GitHub код, и есть готовый APK для Android, чтобы потрогать всё руками без танцев со сборкой. Если коротко, то идея «переводчик уровня Google прямо на телефоне без интернета и подписки» из разряда фантастики окончательно переехала в разряд скачал и пользуйся. 📲Demo APK (Android): https://huggingface.co/AngelSlim/Hy-MT1.5-1.8B-1.25bit-GGUF/resolve/main/Hy-MT-demo.apk 🤗Hugging Face:: https://huggingface.co/AngelSlim/Hy-MT1.5-1.8B-1.25bit 🔗GitHub: https://github.com/tencent/AngelSlim 📄Paper: https://arxiv.org/abs/2601.07892