Recruiter Hunt - записки разработчика [2] 👾
Всем привет🔥 Продолжаю серию постов с полей разработки приложения по агрегатору вакансий с прямым поиском рекрутеров.🔎
За период времени с прошлой части у меня активно ведётся разработка экрана деталей вакансий, на которой я так прилично затормозил, так как надо было решить важные для моего восприятия UI кейсы плюс поработать над оптимизацией приложения.
Начну с того, что меня сильнее всего застопорило - верхний бар экрана, а конкретно динамически подстраиваемые цвета под логотип компании, а также работа с фоном тех логотипов, которые без фона, короче PNG. Для реализации фона, который динамически подстраивается под доминирующие цвета логотипа компании я применил связку Coil + Palette + Coroutines. Coil - библиотека от Гугла для работы с изображениями (загрузка с сети, кешированое, асинхронность с коробки) Palette - тоже библиотека от Гугла, которая принимает в себя Bitmap изображения и с помощью алгоритмов даёт палитру основных цветов скормленного изображения Coroutines - для асинхронных вычислений Pelette, дабы не блокировать Мейн поток. Реализуя данную связку мы можем делать уникальную стилистику для экранов любой вакансии. Де факто это та же фича, что у Яндекса в музыке.✨ Для того, чтобы PNG картинки логотипов не сливались с фоном к примеру темной или светлой темы я добавил на фон контейнера для картинки градиент с разным уровнем прозрачности, чтобы логотип был доминирующим элементом. Тем самым в темных темах мне удалось достичь приятного эффекта неоновой подсветки логотипов, что лично мне откликается.
Двигаемся дальше! Второе, что было взято пол реализацию - бесшовные переходы между экранами путем расширения контейнера списка на весь экран. Это реализовано с помощью Shared Transition. Данный паттерн для меня новый, поэтому пару вечеров пришлось потратить на изучение документации и практику с переходами. За время обкатки я столкнулся с интересным кейсом.🔥 Если во время анимации перехода резко свайпнуть на экран обратно, то снова выбранную вакансию открыть не получится. Причина тому - SharedTransitionScope, который во время анимации держит в своей памяти цикл анимации и при преждевременном завершении флаг меняется после на выполненно и думает, что мы остались на экране. Решение проблемы - системный запрет свайпа обратно пока анимация не завершилась.
Ну и наверное самое главное, что меня больше всего стопорило - дизайн 🤧 Я не дизайнер, а разработчик, технарь, плюс страшный перфекционист. Одно дело работать по готовому макету, но когда делаешь считай как для себя и без макета, то такое превращается в тихий ужас😐 Вечеров 5 пришлось потратить только на то, чтобы глазу стало приятно и можно было двигаться дальше. На последнем скрине к посту можете увидеть от чего и к чему по визуалу верхней части экрана за это время пришел.
В целом, вот такие дела по проекту. Плюс решил попробовать более свежий формат изображений к посту для лучшего визуала. Благодарю, что дочитал до этого момента и буду рад обратной связи. Хорошего дня в сетке 🔥💜
· 19.10.2025
Было бы интересно почитать про ваш опыт работы инженером-судостроителем. Нечасто встречающееся направление работы. Например, чем вы занимались как инженер-конструктор, в каких инструментах работали, какой уровень заработных плат в индустрии и перспективы для молодых специалистов. Какие задачи поручают начинающим инженерам, пришедшим с университетской скамьи? Что самое интересное в такой профессии, а что нравится меньше всего? :)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 20.10.2025
Думаю выпущу на днях такой пост, спасибо)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён