Улучшаем автокомплит в смешанных Java-Kotlin проектах
Честно говоря, не знаю, нужно ли ставить тэг «перевод» на собственную статью.
Ну ок, поставил.
Всем привет! Недавно я наткнулся на статью, где описывается, как можно убрать мешающие варианты из автокомплита в Android Studio. Этот способ касается только классов — с методами у меня так же не получилось, и тогда мне пришла идея.
Как-то раз я дизайнил публичный API Kotlin-библиотеки, чтобы клиенты на Java могли пользоваться ей бесшовно, как и клиенты на Kotlin (ну, насколько это возможно). Если вы используете Kotlin, то, возможно, знаете, что для data-классов компилятор кучу всего генерирует за нас, в том числе функции componentN() для деструктуризации параметров primary-конструктора.
https://habr.com/ru/articles/845080/
original https://proandroiddev.com/better-kotlin-java-auto-complete-d0fd7e8a9355
✍️ @kotlin_lib
Честно говоря, не знаю, нужно ли ставить тэг «перевод» на собственную статью.
Ну ок, поставил.
Всем привет! Недавно я наткнулся на статью, где описывается, как можно убрать мешающие варианты из автокомплита в Android Studio. Этот способ касается только классов — с методами у меня так же не получилось, и тогда мне пришла идея.
Как-то раз я дизайнил публичный API Kotlin-библиотеки, чтобы клиенты на Java могли пользоваться ей бесшовно, как и клиенты на Kotlin (ну, насколько это возможно). Если вы используете Kotlin, то, возможно, знаете, что для data-классов компилятор кучу всего генерирует за нас, в том числе функции componentN() для деструктуризации параметров primary-конструктора.
https://habr.com/ru/articles/845080/
original https://proandroiddev.com/better-kotlin-java-auto-complete-d0fd7e8a9355
✍️ @kotlin_lib
👍1
Что нового в Kotlin 2.1.0
Новые возможности языка: добавлены условия-гварды в конструкции
Обновления компилятора K2: улучшения проверок и реализация
Kotlin Multiplatform: базовая поддержка экспорта в Swift, стабильный Gradle DSL для опций компилятора.
Kotlin/Native: улучшенная поддержка iosArm64.
Kotlin/Wasm: поддержка инкрементной компиляции.
Gradle: повышена совместимость с новыми версиями Gradle и плагином Android.
Документация: значительные улучшения.
https://kotlinlang.org/docs/whatsnew21.html
✍️ @kotlin_lib
Новые возможности языка: добавлены условия-гварды в конструкции
when
с объектом, нелокальные break
и continue
, а также многодолларовая интерполяция строк.Обновления компилятора K2: улучшения проверок и реализация
kapt
.Kotlin Multiplatform: базовая поддержка экспорта в Swift, стабильный Gradle DSL для опций компилятора.
Kotlin/Native: улучшенная поддержка iosArm64.
Kotlin/Wasm: поддержка инкрементной компиляции.
Gradle: повышена совместимость с новыми версиями Gradle и плагином Android.
Документация: значительные улучшения.
https://kotlinlang.org/docs/whatsnew21.html
✍️ @kotlin_lib
👍4❤1
RxJava to Kotlin Coroutines: Полное руководство по миграции.
Как разработчик, работающий с большими устаревшими приложениями, я имел удовольствие (а иногда и трудности) руководить модернизацией крупных кодовых баз, которые активно использовали RxJava для реактивного программирования. Эти усилия по модернизации в значительной степени были сосредоточены на преобразовании кода RxJava в эквиваленты на основе Coroutines и Flow. Во время этих миграций я многому научился и собираюсь поделиться всем, что узнал, в этой статье.
https://itnext.io/rxjava-to-kotlin-coroutines-the-ultimate-migration-guide-d41d782f9803
✍️ @kotlin_lib
Как разработчик, работающий с большими устаревшими приложениями, я имел удовольствие (а иногда и трудности) руководить модернизацией крупных кодовых баз, которые активно использовали RxJava для реактивного программирования. Эти усилия по модернизации в значительной степени были сосредоточены на преобразовании кода RxJava в эквиваленты на основе Coroutines и Flow. Во время этих миграций я многому научился и собираюсь поделиться всем, что узнал, в этой статье.
https://itnext.io/rxjava-to-kotlin-coroutines-the-ultimate-migration-guide-d41d782f9803
✍️ @kotlin_lib
Medium
RxJava to Kotlin Coroutines: The Ultimate Migration Guide
As a developer working in large legacy applications, I’ve had the pleasure (and sometimes pain) of leading the modernization of large…
👍2
Миграция конфигурации сборки с Groovy на Kotlin
Что такое DSL?
DSL (Domain-Specific Language) — это язык программирования, который спроектирован и оптимизирован для решения задач в конкретной области или для определенного класса задач. DSL build.gradle предоставляет разработчикам удобный способ определения настроек проекта и управления ими, используя специфический синтаксис, который Gradle понимает и обрабатывает. Этот DSL позволяет создавать мощные и гибкие сценарии сборки, которые могут быть легко настраиваемы для разных проектов и задач.
С Android Studio Giraffe Kotlin DSL становится новым стандартом для Gradle-скриптов в разработке Android. Когда вы создаете новые проекты, используя встроенные шаблоны IDE, вам будут предоставлены файлы Kotlin DSL вместо файлов Gradle на основе Groovy.
https://habr.com/ru/companies/ppr/articles/765544/
✍️ @kotlin_lib
Что такое DSL?
DSL (Domain-Specific Language) — это язык программирования, который спроектирован и оптимизирован для решения задач в конкретной области или для определенного класса задач. DSL build.gradle предоставляет разработчикам удобный способ определения настроек проекта и управления ими, используя специфический синтаксис, который Gradle понимает и обрабатывает. Этот DSL позволяет создавать мощные и гибкие сценарии сборки, которые могут быть легко настраиваемы для разных проектов и задач.
С Android Studio Giraffe Kotlin DSL становится новым стандартом для Gradle-скриптов в разработке Android. Когда вы создаете новые проекты, используя встроенные шаблоны IDE, вам будут предоставлены файлы Kotlin DSL вместо файлов Gradle на основе Groovy.
https://habr.com/ru/companies/ppr/articles/765544/
✍️ @kotlin_lib
👍5
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Kotlin с нуля
Урок 0: Ставим среду разработки и запускаем проект
Урок 1: Что такое переменные и их типы, val и var
Урок 2: Арифметические операции, остаток от деления
Урок 3: Интерполяция (шаблонные строки). Конкатенация
Урок 4: Операторы сравнения (отношения), логические операторы
Урок 5: Условные операторы if else when. Операции ветвления
Урок 6: Циклы while, do-while. Обратный отсчет с Thread.sleep()
Урок 7: Цикл for, диапазоны (интервалы). break, continue, return
Урок 8: Массивы. Типы, размер, индекс массива. Перебор через for
Урок 9: Коллекции: списки (List). Функции для работы с коллекциями
Урок 10: Функции (методы), тип возвращаемого значения, return
Урок 11: ООП. Классы и свойства. Создание объектов (экземпляров класса)
Урок 12: Конструкторы (primary, secondary). Блоки инициализации init.
Урок 13: Null Safety – операторы ?. !!, NullPointerException (NPE)
Урок 14: ООП. Наследование. open class. Переопределение (override)
Урок 15: Интерфейсы, абстрактные классы. Имплементация
Урок 16: ООП. Инкапсуляция. Модификаторы доступа
Урок 17: Сеттеры и Геттеры, field, как их кастомизировать
Урок 18: ООП. Полиморфизм, 3 типа (Ad hoc, Subtyping, Parametric)
Урок 19: ENUM (классы перечислений), TODO() и тип Nothing
Урок 20: Лямбда-функции (лямбды), анонимные функции
Урок 21: Extensions (функции-расширения, экстеншены)
Урок 22: Data class (дата классы) copy, toString, equals, hashCode
Урок 23: Теория разработки программ. Создание телеграм бота // Практика
Все видео доступны на youtube
✍️ @kotlin_lib
Урок 0: Ставим среду разработки и запускаем проект
Урок 1: Что такое переменные и их типы, val и var
Урок 2: Арифметические операции, остаток от деления
Урок 3: Интерполяция (шаблонные строки). Конкатенация
Урок 4: Операторы сравнения (отношения), логические операторы
Урок 5: Условные операторы if else when. Операции ветвления
Урок 6: Циклы while, do-while. Обратный отсчет с Thread.sleep()
Урок 7: Цикл for, диапазоны (интервалы). break, continue, return
Урок 8: Массивы. Типы, размер, индекс массива. Перебор через for
Урок 9: Коллекции: списки (List). Функции для работы с коллекциями
Урок 10: Функции (методы), тип возвращаемого значения, return
Урок 11: ООП. Классы и свойства. Создание объектов (экземпляров класса)
Урок 12: Конструкторы (primary, secondary). Блоки инициализации init.
Урок 13: Null Safety – операторы ?. !!, NullPointerException (NPE)
Урок 14: ООП. Наследование. open class. Переопределение (override)
Урок 15: Интерфейсы, абстрактные классы. Имплементация
Урок 16: ООП. Инкапсуляция. Модификаторы доступа
Урок 17: Сеттеры и Геттеры, field, как их кастомизировать
Урок 18: ООП. Полиморфизм, 3 типа (Ad hoc, Subtyping, Parametric)
Урок 19: ENUM (классы перечислений), TODO() и тип Nothing
Урок 20: Лямбда-функции (лямбды), анонимные функции
Урок 21: Extensions (функции-расширения, экстеншены)
Урок 22: Data class (дата классы) copy, toString, equals, hashCode
Урок 23: Теория разработки программ. Создание телеграм бота // Практика
Все видео доступны на youtube
✍️ @kotlin_lib
👍11
Учим Kotlin c нуля.
Kotlin: История Java, Kotlin и как они связаны. JVM, интерпретируемые и компилируемые языки
Kotlin: создаем проект в IntelliJ IDEA, Gradle, нужные типы данных, функция main - точка входа
Kotlin: читаем из файла, преобразовываем массивы через функции map и flatMap
Kotlin: создаем свой первый класс, объявляем конструктор, пишем функции
Kotlin: циклы for и while, null-safety
Kotlin: дебажим код, ставим брейкпоинты, объявляем условия срабатывания для них
Kotlin: HashMap, hashCode и equals
Kotlin: enum, исследуем возможности
Kotlin: лямбды
Kotlin: заканчиваем приложение
Kotlin: пишем юнит-тесты на JUnit 5N
Kotlin: рефакторинг, extension функции, typealias
Проект Kotlin: git, github, gitignore
Проект Kotlin: git, github, continuous integration, автотесты
(наконец-то) подключаем Android в Gradle проект с Kotlin
Мультипроектная сборка Gradle: Android и библиотека
Любой файл в ресурсах андроид приложения! (продолжаем делать игру)
Android View с нуляN
Смена ориентации в Android приложении [4 способа]
Рисуем таблицу для судоку: Android RecyclerView и все такоеNerdy
Все видео доступны на youtube
✍️ @kotlin_lib
Kotlin: История Java, Kotlin и как они связаны. JVM, интерпретируемые и компилируемые языки
Kotlin: создаем проект в IntelliJ IDEA, Gradle, нужные типы данных, функция main - точка входа
Kotlin: читаем из файла, преобразовываем массивы через функции map и flatMap
Kotlin: создаем свой первый класс, объявляем конструктор, пишем функции
Kotlin: циклы for и while, null-safety
Kotlin: дебажим код, ставим брейкпоинты, объявляем условия срабатывания для них
Kotlin: HashMap, hashCode и equals
Kotlin: enum, исследуем возможности
Kotlin: лямбды
Kotlin: заканчиваем приложение
Kotlin: пишем юнит-тесты на JUnit 5N
Kotlin: рефакторинг, extension функции, typealias
Проект Kotlin: git, github, gitignore
Проект Kotlin: git, github, continuous integration, автотесты
(наконец-то) подключаем Android в Gradle проект с Kotlin
Мультипроектная сборка Gradle: Android и библиотека
Любой файл в ресурсах андроид приложения! (продолжаем делать игру)
Android View с нуляN
Смена ориентации в Android приложении [4 способа]
Рисуем таблицу для судоку: Android RecyclerView и все такоеNerdy
Все видео доступны на youtube
✍️ @kotlin_lib
❤1
Kotlin Cacheable
Основанная на аннотациях библиотека кэширования для Kotlin Multiplatform.
При вызове функции с аннотацией Cacheable она будет возвращать кэшированное значение, если функция будет вызвана с теми же аргументами.
https://github.com/mori-atsushi/kotlin-cacheable
✍️ @kotlin_lib
Основанная на аннотациях библиотека кэширования для Kotlin Multiplatform.
При вызове функции с аннотацией Cacheable она будет возвращать кэшированное значение, если функция будет вызвана с теми же аргументами.
https://github.com/mori-atsushi/kotlin-cacheable
✍️ @kotlin_lib
👍4
5 распространенных вопросов для собеседования по Kotlin Coroutines
Корутины — это одна из самых важных концепций, которую необходимо понять разработчику Android. Они являются рекомендованным решением для асинхронного программирования на Android. Корутины позволяют писать асинхронный код более безопасным, поддерживаемым и лаконичным способом. В этой статье представлены 5 важных вопросов, которые вполне могут быть заданы на собеседовании на позицию Android-разработчика. Эти вопросы взяты из списка вопросов, представленных на мероприятии Google DevFest, проведённом в 2021 году. Знание ответов на эти вопросы определённо будет полезным для вас. Я рекомендую добавить эту статью в список для чтения, чтобы вернуться к ней перед собеседованием. А теперь, когда вступление закончено, перейдём к вопросам!
https://medium.com/@theAndroidDeveloper/5-common-kotlin-coroutines-interview-questions-f084d098f51d
✍️ @kotlin_lib
Корутины — это одна из самых важных концепций, которую необходимо понять разработчику Android. Они являются рекомендованным решением для асинхронного программирования на Android. Корутины позволяют писать асинхронный код более безопасным, поддерживаемым и лаконичным способом. В этой статье представлены 5 важных вопросов, которые вполне могут быть заданы на собеседовании на позицию Android-разработчика. Эти вопросы взяты из списка вопросов, представленных на мероприятии Google DevFest, проведённом в 2021 году. Знание ответов на эти вопросы определённо будет полезным для вас. Я рекомендую добавить эту статью в список для чтения, чтобы вернуться к ней перед собеседованием. А теперь, когда вступление закончено, перейдём к вопросам!
https://medium.com/@theAndroidDeveloper/5-common-kotlin-coroutines-interview-questions-f084d098f51d
✍️ @kotlin_lib
👍3