Новосибирск, --:--, на связи

Привет, я Александр.

Мне 19, живу в Новосибирске. Делаю приложения на андроид и не только. Написал свой браузер, музыкальный плеер, файловый менеджер и много другого. всё на Kotlin и Jetpack Compose.

Обо мне

Код пишу четыре года. Начинал с дискорд ботов, а потом ушёл в андроид разработку и остался там. Мне важно, чтобы всё работало идеально, от анимации кнопки до стабильности при повседневном использовании.

  • Возраст19
  • ГородНовосибирск
  • В коде4 года
  • ПлатформаAndroid
  • Пишу наKotlin
  • Сейчас учуRust

Проекты

Некоторые мои приложения на андроид. Самым тяжёлым и долгим в разработке был браузер.

01

Браузер hrips

Приватный браузер с красивым дизайном

KotlinJetpack ComposeGeckoViewMaterial 3 Expressive

Фишки

  • Свой менеджер паролей

    Пароли шифруются AES-256-GCM через Android Keystore, а посмотреть их можно только по отпечатку или PIN. Есть генератор и импорт из Chrome, Firefox и Bitwarden.

  • Пуши, даже когда закрыт

    Уведомления от сайтов приходят, даже если браузер выгружен. Через встроенный FCM, как в Chrome, или через UnifiedPush, если не хочется зависеть от Google.

  • Защита как в Firefox

    Строгая блокировка трекеров, майнеров и фингерпринтинга, встроенный uBlock Origin, HTTPS-only и защищённый DNS на выбор. Из ссылок сами вычищаются utm_ и fbclid.

  • Ничего не теряется

    Закрытую вкладку вернёшь вместе с историей. Загрузка докачается после обрыва сети, а если система выгрузила браузер, он покажет последний снимок страницы.

  • Расширения из каталога Firefox
  • Режим чтения
  • Превью видео удержанием
  • Картинка в картинке
  • Passkeys
  • PDF через pdf.js
  • Android 12 и новее
02

Тембр

Музыкальный плеер: локальные файлы и онлайн

KotlinJetpack ComposeMedia3Material 3 Expressive

Фишки

  • Пульсация в такт

    Ритм считается прямо по звуку: FFT, спектральный поток, оценка темпа. На каждую долю вокруг обложки вспыхивает ореол, на дропах ярче.

  • Кроссфейд

    Конец трека доигрывает второй скрытый плеер и затухает, следующий нарастает по кривым равной мощности. От 1 до 12 секунд.

  • Пословный текст

    Текущая строка заливается по словам и по визуальным строкам по очереди. Переводы под оригиналом, дышащие точки в паузах.

  • Онлайн без аккаунтов

    Поиск в YouTube Music и SoundCloud, импорт треков, альбомов и плейлистов по ссылке или через «Поделиться». Прослушанное кэшируется.

  • Перемотка удержанием х2-х16
  • Скорость 0,5-2х и питч
  • Таймер сна
  • Редактор тегов
  • Очередь с перетаскиванием
  • Раскладка для планшета
  • Android 10 и новее
03

Файлы

Файловый менеджер без интернета и рекламы

KotlinJetpack ComposeMedia3Material 3 Expressive

Фишки

  • Ни байта в сеть

    У приложения вообще нет разрешения на интернет. Ни рекламы, ни аналитики, файлы никуда не уходят.

  • Всё открывает сам

    Фото, видео, музыка, текст и архивы zip, 7z, rar, tar открываются во встроенных просмотрщиках. Каждый можно выключить.

  • Встроен в систему

    «Открыть с помощью» и «Поделиться → Сохранить в Файлы» из любых приложений, выбор файлов для других программ, ярлыки на значке.

  • Дубликаты без риска

    Ищет одинаковые файлы по размеру, потом по MD5, и отмечает лишние копии, оставляя самую старую. Удаляешь сам, и всё уходит в корзину.

  • ZIP с паролем AES-256
  • Массовое переименование
  • Поиск по тексту в файлах
  • SD-карты и USB
  • Корзина с отменой
  • Root-доступ
  • Раскладка для планшета
  • Android 8.0 и новее

Стек

То, чем пользуюсь постоянно. Rust пока только учу, поэтому его тут нет.

Android

  • Kotlin
  • Jetpack Compose
  • Material 3 Expressive
  • Coroutines и Flow
  • Media3
  • GeckoView

Тесты и сборка

  • Robolectric
  • Roborazzi
  • Gradle Kotlin DSL
  • R8
  • GitHub Actions

Ещё умею

  • TypeScript
  • Node.js
  • React
  • SQLite
  • Figma

Ответы на вопросы

Сделаешь мне приложение?

Смотря какое. Напиши, что нужно, и я честно скажу, возьмусь или нет. Пишу под Android на Kotlin и Jetpack Compose.

Чё по ценам?

Зависит от задачи. Сначала расскажи, что нужно, дальше посмотрим.

Почему Compose, а не XML?

Анимации и состояние описываются в одном месте, поэтому пружины, морфинг кнопок и цвета из обложки делаются без костылей. Все три моих приложения целиком на Compose.

Как проверяешь вёрстку на разных экранах?

Скриншот-тестами. Robolectric и Roborazzi снимают экраны телефона и планшета в светлой и тёмной теме прямо при сборке, без эмулятора, так что видно, если что-то поехало.

Ты вообще спишь?

Как и все. Вверху сайта видно, сколько у меня сейчас времени и когда я в сети.

Как там с Rust?

Учу потихоньку, так что пока в стек его не пишу.

Связь

Нужно приложение, сайт или бот - звоните, пишите. Отвечу в течение дня.