DEV Community

roma romas
roma romas

Posted on

CodeMap: мой первый плагин для Android Studio, который рисует то, что я не мог удержать в голове

Привет!

Меня зовут Роман, я начинающий Android-разработчик. И это мой первый плагин для JetBrains Marketplace.

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

🤯 Проблема, которая меня доканала
Когда я только начинал разбираться с Kotlin и Android, всё было понятно. Один Activity, пара кнопок, setOnClickListener — красота, всё перед глазами.

А потом появились ViewModel, UseCase, Repository, DataSource, Dagger/Hilt, корутины, Flow... И в какой-то момент я поймал себя на том, что просто не могу удержать в голове картину происходящего. Вот нажали на кнопку — данные пошли куда-то туда, потом завернули сюда, потом что-то заэмитили... Я постоянно терял нить.

Ctrl+Click помогает перейти к определению метода, но он не показывает путь. Он показывает дверь, но не коридор. А мне нужна была карта.

И я начал рисовать эти цепочки на бумаге. Честно. Квадратики, стрелочки. Потом в Miro. А потом подумал: «Слушай, я же программист. Почему я это делаю руками?»

Так родилась идея CodeMap.

🗺 Что делает CodeMap?
Если коротко: он строит интерактивный граф вызовов функций в вашем Kotlin-проекте.

Выбираете точку входа (например, onCreate в MainActivity) — и плагин показывает, какие функции она вызывает, те вызывают следующие, и так по цепочке вниз. Визуально это выглядит как дерево или граф, где каждая нода — функция, а стрелки — вызовы.

Фичи, которые я запилил:
🎨 Цветовое кодирование
Разные типы вызовов красятся по-разному:

UI-вызовы

Сетевые запросы

Работа с базой данных

Асинхронные операции (корутины)

Системные вызовы

Глаз сразу цепляется: «Ага, вот тут ViewModel лезет напрямую в SharedPreferences, а должен бы через Repository».

🔀 Ветвление условий
Если в коде есть if или when, плагин показывает оба пути. Можно кликнуть и пройти по нужной ветке. Удобно, когда разбираешь сложную бизнес-логику.

🏛 Аудит архитектуры
Это, наверное, самая амбициозная часть. Плагин автоматически проверяет проект на соответствие с выбранной архитектурой и показывает нарушения которые можно скачать.

⚡ Навигация в один клик
Кликаешь по ноде в графе — и сразу прыгаешь на нужную строку в коде. Никакого поиска по проекту, никакого Ctrl+Shift+F.

🔄 Поддержка K2
Плагин полностью работает с новым компилятором Kotlin K2. Никаких «ой, у меня новая версия студии, всё сломалось».

🛠 Как пользоваться
Всё просто:

Установить плагин из Marketplace

Нажать «🚀 Анализировать проект»

Выбрать файл и функцию на боковой панели

Разглядывать граф и тыкать в ноды

⚠️ Важное замечание про среду выполнения
Если окно инструмента пустое — не пугайтесь. Это значит, что ваша Android Studio запущена на JDK без поддержки JCEF (Chromium Embedded Framework). Решается за минуту:

Shift+Shift → «Choose Boot Java Runtime for the IDE»

Выбрать встроенный JetBrains Runtime (JBR) с поддержкой JCEF

Перезапустить студию
Примеры разбора проектов

🤔 Что дальше?
Плагин живёт в JetBrains Marketplace. Он бесплатный. Я продолжаю его допиливать в свободное время.

Буду очень рад обратной связи. Если что-то сломалось, если есть идеи по фичам, если просто хотите сказать «прикольно» или «фигня» — пишите в комментарии или создавайте issue на GitHub.

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

Всем добра и читаемого кода! 🚀

P.S. Если плагин покажется полезным — поставьте звёздочку на GitHub и лайк в Marketplace. Для начинающего разработчика каждая звёздочка как допамин прямо в мозг 😅

Top comments (0)