Android разработка
4.85K subscribers
469 photos
26 videos
1 file
551 links
все о Android разработке

@itchannels_telegram - 🔥 лучшие it каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - ml 📚

@pythonlbooks -📚books
Download Telegram
Google показала Android 17 - систему, где Gemini встраивают почти в каждый слой

Android 17 выглядит не как обычное обновление с новыми иконками, а как попытка превратить смартфон в полноценного AI-ассистента.

Что обещают внутри:

- ИИ сможет взаимодействовать с приложениями от имени пользователя
- система будет собирать автоматизации под конкретные задачи
- появятся кастомные AI-виджеты
- голосовой ввод научат чистить от пауз, мусора и слов-паразитов
- Gemini Intelligence станет частью повседневных сценариев, а не отдельной кнопкой в приложении

Одна из самых заметных фич - Screen Reactions. Она позволит одновременно записывать экран и себя, а потом накладывать реакцию поверх видео, комментариев или другого контента. По сути, встроенный инструмент для реактов и коротких роликов без стороннего софта.

Отдельно Google анонсировала Googlebook - премиальные компьютеры под ChromeOS и глубокую интеграцию Gemini Intelligence.

Похоже, Google больше не продаёт просто Android и ChromeOS.

Она собирает экосистему, где ИИ становится стандартным интерфейсом между пользователем, приложениями и устройством.
🔥11💩7👍32
🖥 Китайский разработчик выложил в открытый доступ целую автомобильную ОС, которая превращает любой Android-смартфон в беспроводной адаптер CarPlay.

Она называется OkcarOS. Это кастомная прошивка Android 13, которая напрямую общается с экраном автомобиля по протоколу CarPlay.

→ Подключение за 4 секунды
→ Видео 60 fps, битрейт 25 Мбит/с
→ Без потерь аудио PCM
→ Разрешение 1:1 с экраном в автомобиле

100% с открытым исходным кодом.

https://github.com/okcar-os/android
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4
В библиотеку 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.iss.one/65541/
👍31🔥1👏1
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);
}


Геттеры и сеттеры нужны не для того, чтобы механически обернуть каждое поле методами.

Смысл инкапсуляции в том, чтобы объект сам защищал свои инварианты: баланс не уходит в минус, сумма списания валидна, состояние нельзя сломать прямым присваиванием.

Если значение можно менять только по правилам, это уже не просто структура данных, а нормальная доменная модель.
👍54
Open-source IDE на Qt6 для реверс-инжиниринга Android APK.

https://github.com/vaibhavpandeyvpz/apkstudio
👍101
Forwarded from Machinelearning
⚡️ Локальные 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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥32
Google убрала последний барьер для перехода с iPhone на Android 😐

В Android 17 переезд с iPhone сделали максимально бесшовным: новый смартфон сам подтягивает фотографии, видео, сообщения, контакты, сохранённые сети Wi-Fi и даже eSIM. Без отдельных приложений, без танцев с бубном и без традиционного «что-то точно не перенесётся».

На первый взгляд — просто обновление. На практике — это ломает один из последних якорей, которые держали людей в экосистеме Apple. 

Кто с Pixel или новыми Samsung Z Flip8 / Z Fold8 — уже могут щупать. Остальным — подвезут позже.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥71
🔥 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
3👍3🔥2
Лето, ИТ-Пикник и музыка известных артистов уже через несколько дней!

8 августа в Коломенском пройдет ИТ-Пикник.

В программе — выступления проекта LAB Антона Беляева, IOWA, Cream Soda, Pompeya, мартина и Совы.

А днем — научпоп-лекции, дискуссии об ИИ и больших языковых моделях, мастер-классы и интерактивы. Полезные знакомства и развлечения тоже будут.

Зарегистрироваться и узнать подробности можно на сайте мероприятия.

В билет входит +1 — можно позвать близких и друзей.

До встречи в месте притяжения ИТ.
1🔥1
💡 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
2👍2
Forwarded from Machinelearning
✔️ Апдейт ChatGPT: изолированный контекст в Projects, тесты для проверки знаний и правки для Android

У проектов появился переключатель контекста - модель может брать общую память или работать только с тем, что загружено внутрь проекта, игнорируя историю остальных чатов. Пересоздавать проект для этого не нужно. Проекты с общим доступом работают только во втором режиме.

Пользователи платных тарифов стали видеть на стартовом экране персональные подсказки, которые собираются из прошлых чатов и истории использования инструментов.

Бесплатным и образовательным аккаунтам добавили генерацию тестов для самопроверки.

В приложении для Android починили сброс фокуса при подключении физической клавиатуры, а кнопка голосового ввода больше не пропадает после того, как прикрепишь файл.


@ai_machinelearning_big_data

#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1