Занимался самостоятельной разработкой мессенджера в рамках стажировки:
- Спроектировал и реализовал UI приложения с помощью Jetpack Compose
- Использовал Kotlin Coroutines и Flow для асинхронной обработки данных (загрузка и отправка сообщений, обновление UI, работа с базой данных)
- Реализовал функционал отправки и получения текстовых сообщений
- Настроил уведомления через FCM (Firebase Cloud Messaging)
- Взаимодействовал с сервером с использованием Retrofit
- Использовал Jetpack-компоненты (ViewModel, Lifecycle, Room, Paging) для построения архитектуры приложения и управления жизненным циклом
Работал в небольшой команде из 3 человек, делая с нуля неофициальный клиент для VK, достигнув 200,000 активных пользователей в месяц
- Разрабатывал сложные кастомные View (например, редактируемый докбар) с обработкой пользовательского ввода
- Использовал SQLite для локального хранилища и кэширования
- Внедрил App Center аналитику и сбор логов, что привело к уменьшению количества сбоев на 40%
- Реализовал взаимодействие с REST API с использованием Retrofit и OkHttp
- Реализовал воспроизведние музыки в стороннем плеере через AIDL
- Автоматизировал сборку сложного Android-приложения, включающего Kotlin/Java код, модифицированный байт-код (smali) и нативные библиотеки, с использованием Gradle
- Писал unit-тесты с использованием JUnit
Разработал демультиплексор для конвертации формата Transport Stream в MP3, заменив FFmpeg, тем самым:
- ускорил скачивание музыки в ≈2,3 раза
- уменьшил размер приложения на 10 мегабайт
- снизил зависимости от сторонних библиотек