-
Среды разработки (IDE):
- IntelliJ IDEA (Community и Ultimate издания) как основная среда разработки для Android и серверных приложений. Поддержка Kotlin в ней наиболее полная.
- Android Studio для разработки под Android. Она основана на IntelliJ IDEA и включает специфичные для Android инструменты.
-
Системы сборки:
- Gradle для сборки Android-приложений и многих серверных проектов. Использую скрипты на Kotlin DSL.
- Maven иногда используется для серверных проектов, но Gradle предпочтительнее из-за гибкости и поддержки Kotlin.
-
Системы контроля версий:
- Git с использованием таких платформ, как GitHub, GitLab или Bitbucket для управления исходным кодом и совместной работы.
-
Библиотеки и фреймворки:
- Standard Library Kotlin (kotlin-stdlib)
- Kotlinx Coroutines для асинхронного программирования.
- Ktor или Spring Boot (с Kotlin) для серверной разработки.
- Android Jetpack (Architecture Components, UI, Behavior) для Android-разработки.
- JUnit 5, Mockk, AssertJ для юнит- и интеграционного тестирования.
-
Инструменты для тестирования:
- JUnit 5 для юнит-тестов.
- Instrumented tests (для Android) с Espresso или UI Automator.
- Mockk для создания мок-объектов.
- AssertJ или Hamcrest для удобных утверждений.
-
Инструменты для статического анализа кода и форматирования:
- Ktlint для форматирования кода согласно стандартам Kotlin.
- Detekt для статического анализа кода и поиска потенциальных проблем.
-
Инструменты для профилирования и отладки:
- Встроенный отладчик в IntelliJ IDEA/Android Studio.
- Android Profiler для анализа производительности Android-приложений.
-
Инструменты для управления зависимостями:
- Maven Central, JCenter (устаревает), Google Maven Repository, JFrog Artifactory, Nexus Repository Manager.
-
Плагины IntelliJ IDEA/Android Studio:
- Kotlin plugin (встроенный)
- Ktlint plugin
- Git Integration (встроенный)
- Database Navigator
- JSON Parser
-
CI/CD Инструменты:
- Jenkins, GitLab CI/CD, GitHub Actions, CircleCI, Travis CI для автоматизации сборки, тестирования и развертывания.
В целом, стек инструментов зависит от конкретной задачи (Android, серверная разработка, кроссплатформенная разработка).