Рубрика «jetpack compose»

DeepSeek Harness (дальше — DSH) у меня работает на компьютере, и там же живут агент, его сессии и история, инструменты, подписки и ключи провайдеров. Чтобы добраться до этих чатов с телефона, я написал DSH Mobile — клиент для Android. Проект неофициальный, к DeepSeek отношения не имеет, код открыт под MIT. С телефона видны чаты всех проектов одним списком; агенту можно поставить задачу, приложить к ней фото или файл, ответить на его вопрос, а когда ответ готов, приходит уведомление.

Читать полностью »

С чего всё началось

Всё началось с ограничений доступа. Discord заблокировали в 2024 году, YouTube сначала замедлили, а в феврале 2026 года, по сообщениям СМИ, он пропал из национальной системы доменных имён. Telegram деградировал постепенно: сначала перестали работать звонки, потом почти не грузились фото и видео, 10 февраля 2026 года Роскомнадзор официально объявил об ограничении, а в какой-то момент мессенджер вообще перестал загружать чаты и висел на «Подключение…».

Читать полностью »

У меня есть коллекция музыки: FLAC, японские альбомы, которых нет в стримингах обычно, редкие релизы с додзин‑фестивалей. Слушать её хотелось так же удобно, как Spotify: с телефона, с компьютера, с текстами, статистикой и итогами года. А получалось как в 2010-м: файлы копируются руками, плейлисты живут на одном устройстве, а тексты японских песен без чтений иероглифов бесполезны.

Читать полностью »

Представьте, перед вами задача — после авторизации пользователя навигировать его на главный экран, или показать snackbar, например, об ошибке.

В Android для таких событий есть специальное название — One‑Time Events, или же просто Effects — события, которые мы отправляем UI из ViewModel и хотим, чтобы они обработались ровно один раз.
И они отличаются от состояния экрана! Состояние существует всегда, а effect отправляется и обрабатывается единожды; в состоянии существуют данные, с которыми user взаимодействует, или которые повторно могут отображаться на экране, когда как effect — совершенно противоположное.

Читать полностью »

Представьте: вы подключились к рабочему VPN – нужно зайти на корпоративный сервер или проверить доступность сервиса из другой юрисдикции. Потом, не выключая его, открыли приложение популярного маркетплейса – проверить, прибыл ли в пункт выдачи корм для почтовых воробьев. В этот момент приложение тихо просканировало localhost, нашло SOCKS5-порт вашего VPN-клиента, отправило через него запрос и узнало выходной IP вашего сервера. Завтра этот IP окажется в блэклисте. Сервер, за который вы или ваша компания платите $5 в месяц, вдруг внезапно деградировал. А вы даже не узнаете, кто вас сдал.

Читать полностью »

Проблема

Мне нужен был простой инструмент: список задач, учёт расходов и таймер для фокусировки. Казалось бы — чего проще?

Но вот реальность:

  • Todoist — бесплатно только 5 проектов, дальше ₽359/мес

  • TickTick — помодоро и календарь только в Premium за ₽249/мес

  • Money Manager — реклама на каждом экране, ₽199 за отключение

  • Forest — ₽299 за приложение

Итого: чтобы покрыть задачи + бюджет + таймер, нужно либо 3-4 приложения, либо платить ~₽500-800/мес.

Мне показалось это абсурдным. И я решил сделать своё.

Решение: Todo Budget

Одно приложение, в котором есть:

Представьте классический сценарий в мобильном приложении: пользователю нужно выбрать год рождения, час будильника или количество товаров в корзине. На iOS для таких случаев давно существует элегантное и интуитивное решение — Wheel Picker (или UIPickerView). Этот компонент стал неотъемлемой частью языка дизайна Apple.

Для Android существуют свои альтернативы. NumberPickerЧитать полностью »

Привет всем! Это моя первая статья на Habr. Сегодня мы поговорим о том, как написать регистрацию через Google. Все мы видели, что во многих крупных приложениях есть возможность зарегистрироваться через Google аккаунт, и многим программистам хотелось бы реализовать это в своём приложении. Это несложно! В этой статье мы рассмотрим весь код и пошаговую инструкцию на Habr.

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js