Skip to content

Latest commit

 

History

History
93 lines (53 loc) · 9.23 KB

File metadata and controls

93 lines (53 loc) · 9.23 KB

Kotlin FAQ

FAQ для Telegram-чата @kotlin_start.

1. Хочу изучать Kotlin. Где начать?

1a. Документация.

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

Краткий обзор синтаксиса языка и полезных идиом.

Про использование Java-библиотек.

Очень краткий обзор языка от Google.

Базового английского (на крайний случай Google Translate) достаточно для понимания документации. Но если русскоязычные материалы предпочтительнее — есть неофициальные переводы. Имейте в виду, что в отдельных случаях переводы могут быть устаревшими. Сверяйтесь с официальным сайтом языка.

1b. Книги.

Большой список книг по Kotlin есть на сайте.

Нужна ли мне книга? Скорее всего, нет. В большинстве случаев документации будет хватать.

Но я хочу именно книгу — какую выбрать? Если есть опыт на Java — берите Kotlin in Action.

А если у меня нет опыта программирования? Скоро выйдет Atomic Kotlin. Книга есть в раннем доступе в виде курса на Stepik. Часть материалов доступна бесплатно.

Для Android'a? Android Development with Kotlin или Kotlin for Android Developers.

1c. Курсы.

Kotlin:

Android:

  • Developing Android Apps with Kotlin — бесплатный курс для начинающих про разработку Android-приложений с использованием Kotlin.
  • Android Kotlin Fundamentals — большой codelab по использованию Kotlin в контексте Android-разработки.
  • Refactoring to Kotlin — часовой codelab про рефакторинг существующего приложения.
  • Using Kotlin Coroutines in your Android App — часовой codelab о том, где и как использовать корутины в приложении.

1d. Упражнения.

(посмотрите также на раздел "Курсы")

Установив Kotlin Educational Plugin, вы сможете ознакомиться с языком в интерактивном режиме.

Маленькие интерактивные примеры с обьяснениями можно также попробовать на странице "Kotlin by Example".

Задачки, называемые Kotlin Koans, также доступны онлайн. Отличный инструмент для продолжения знакомства с языком.

Для написания небольших фрагментов кода иногда удобно использовать Scratch files в IDE или REPL в консоли.

2. Можно ли учить Kotlin, не зная Java? Подходит ли Kotlin как первый язык программирования?

Да. Kotlin вполне подходит как первый язык. Знание JVM/Java не обязательно на начальных этапах, но, вероятно, (если вы планируете использовать Kotlin на JVM-платформе) потребуется позже.

Например, если вы собираетесь писать приложения для Android — готовьтесь читать Java-код время от времени и очень часто использовать Java-библиотеки. Инвестируйте хотя бы немного времени в понимание Java и основ JVM как освоите базу языка Kotlin.

Примите во внимание, что хотя вы и будете работать со стандартной библиотекой Kotlin'a, на JVM-платформе (Android, JavaFx, backend) под капотом иногда используются Java-классы (например, конкретные реализации Java-коллекций скрыты за Kotlin-интерфейсами).

Знание и понимание целевой платформы полезно в целом, но не обязательно на начальных этапах.

3. У Kotlin-кода есть какой-то особый стиль?

Да. Конвенции по оформлению кода есть на сайте. Для Android'a также тут.

4. У меня остались вопросы / что-то непонятно.

Знаете, как написать нужный вам код на Java? Используйте конвертацию кода в IDEA и доведите до идиоматического Kotlin-кода вручную.

Хотите показать код другим? Сократите его до маленького примера, демонстрирующего то, с чем возникли затруднения, и загрузите на play.kotlinlang.org.

Убедитесь, что вы просмотрели соответсвующий раздел в документации (см. выше).

Все еще непонятно? Спросить можно:

  • на форуме.
  • в Slack-чате.
  • в Telegram-чате @kotlin_start. УЧТИТЕ, что чат посвящен языку Kotlin и вопросы по алгоритмам или основам программирования (не языка) не соответствую тематике чата. Подобное поведения будет рассматриваться как злоупотребление помощью и, скорее всего, вопросы останутся неотвеченными.

Пример неуместных вопросов для Kotlin-чата:

  • Как мне создать singleton в Kotlin? (прямой ответ есть в документации)
  • Как мне реализовать бинарный поиск? (вопрос слишком общий или не соответствует тематике чата)
  • Как сделать Adapter в RecyclerView на Kotlin? (так же, как и в Java. Чат для Android-вопросов есть тут: @android_ru)