Чтобы адаптировать резюме под вакансию или составить сопроводительное письмо, загрузите резюме
описание
Команда развивает мессенджер на базе протокола Matrix, созданный на основе Element. Проект включает личные и групповые переписки, отдельные каналы и доставку обновлений через событийную модель Element. Android-версия должна визуально и поведенчески соответствовать версии для iOS.
задачи
Разрабатывать и дорабатывать интерфейс мессенджера на классическом стеке View с XML, ConstraintLayout и ViewBinding;
Работать с событиями Matrix: sync, timeline и room_tags;
Обеспечивать сквозное шифрование через Megolm, резервное копирование и восстановление ключей, проверку устройств;
Реализовывать сложный интерфейс с RecyclerView, DiffUtil, ItemAnimator, ручными анимациями и анимациями макета;
Настраивать обработку касаний через onInterceptTouchEvent, slop, NestedScroll и жесты переразмеривания прокрутки;
Отлаживать пользовательскую отрисовку с Drawable, шейдерами, Canvas, ViewOutlineProvider, clip, AGSL, RenderNode и RenderEffect;
Настраивать отображение от края до края и отступы через WindowInsetsCompat;
Интегрироваться с matrix-android-sdk2, хранилищем Realm и рабочими процессами синхронизации;
Взаимодействовать с дизайнерами, аналитиками, специалистами по контролю качества и командой iOS для синхронизации поведения;
Проводить проверку кода;
Проектировать архитектуру;
Оптимизировать производительность;
Поддерживать выпуски.
требования
Глубоко знать Kotlin, Coroutines и Flow, включая StateFlow, stateIn, структурированную конкурентность и корректную обработку CancellationException;
Иметь опыт работы с классическим стеком View: XML, ConstraintLayout, ViewBinding и RecyclerView, включая DiffUtil, ItemAnimator и паттерн ViewHolder;
Понимать обработку касаний: onInterceptTouchEvent, NestedScroll и жесты переразмеривания прокрутки;
Иметь опыт пользовательской отрисовки с Drawable, Canvas, Shader, AGSL, RenderNode, RenderEffect, ViewOutlineProvider и clip;
Иметь опыт настройки отображения от края до края и WindowInsetsCompat;
Знать Hilt, Glide и Timber;
Уметь работать с многомодульным Gradle и настраивать пользовательские проверки Gradle, включая линт для жёстко заданных цветов;
Знать основы сквозного шифрования: Megolm, резервное копирование и восстановление ключей, проверка устройств;
Понимать Matrix: sync, timeline и room_tags;
Уметь самостоятельно разбираться в чужом коде Element и вносить изменения;
Будет плюсом знание внутреннего устройства matrix-android-sdk2, KMP, SQLDelight, FCM, UnifiedPush, Espresso, UI Automator, adb, uiautomator и опыт разработки клиентов, похожих на Telegram.
условия
Удалённая работа по РФ;
Сотрудничество по ИП или самозанятости;
Участие в развитии сложного высоконагруженного цифрового продукта;