Она использует
fluent API
, что упрощает построение простых и безопасных тестов с помощью Kotlin-расширений.Arrow, Jackson, MockK и Spring
, что делает её гибким инструментом для тестирования различных типов данных и компонентов@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
2
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Основы Jetpack Compose: как обеспечить стабильность вашего кода
Уберегаем от ошибок и делимся статьёй про стабильность в Compose от Веры, Android‑разработчика в Яндекс Диске. Рекомпозиция и пропускаемость, стабильность и способы её отслеживания, неочевидные моменты и лайфхаки Compose — всё это с конкретными примерами (и мемами).
Читайте статью на Хабре здесь
Больше материалов о технологиях в Яндекс 360: https://ya.cc/t/OZ4inE495pU96D
Уберегаем от ошибок и делимся статьёй про стабильность в Compose от Веры, Android‑разработчика в Яндекс Диске. Рекомпозиция и пропускаемость, стабильность и способы её отслеживания, неочевидные моменты и лайфхаки Compose — всё это с конкретными примерами (и мемами).
Читайте статью на Хабре здесь
Больше материалов о технологиях в Яндекс 360: https://ya.cc/t/OZ4inE495pU96D
2
This media is not supported in your browser
VIEW IN TELEGRAM
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Ответишь — пройдешь на продвинутый курс "Kotlin Backend Developer. Professional " от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса
За 5 месяцев обучения ты освоишь:
— Работу с Kotlin Multiplatform для JS, JVM, Android, iOS.
— Spring, Ktor, RabbitMQ, Kafka, Postgres.
— Создание архитектуры: монолиты, микросервисы и бессерверные решения.
— Реальные кейсы: разработка стартапа с нуля.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
1
This media is not supported in your browser
VIEW IN TELEGRAM
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Библиотека поддерживает денежные арифметические операциис, расчеты с процентами и различные распределение, упрощая моделирование таких вариантов использования, как платежи в рассрочку (например, покупка сейчас, оплата позже), обмен валюты, доходность инвестиций и сбор налогов.
В библиотеке также полностью поддерживаются криптовалюты.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
3
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤖 Пройди тест по Flutter и проверь свои знания, готов ли ты к обучению на курсе.
Ответишь — пройдешь на курс "Flutter Mobile Developer" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса
За 5 месяцев обучения вы научитесь создавать современные кроссплатформенные приложения с помощью Flutter, а также создадите свой аналог Telegram, CoinMarketCap, Todoist.
Вас ждёт практические домашние задания, которые помогут вам не только применить знания на практике, но и помочь в реализации проектной работы.
➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cIhAQK
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Ответишь — пройдешь на курс "Flutter Mobile Developer" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса
За 5 месяцев обучения вы научитесь создавать современные кроссплатформенные приложения с помощью Flutter, а также создадите свой аналог Telegram, CoinMarketCap, Todoist.
Вас ждёт практические домашние задания, которые помогут вам не только применить знания на практике, но и помочь в реализации проектной работы.
➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cIhAQK
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
1
Как создать плагин для IntelliJ IDEA на примере генератора директорий для проекта
Меня зовут Александр Мамонов, и в KODE я занимаюсь разработкой на Flutter. Я столкнулся с бойлерплейтом композиции фич в наших проектах, поэтому решил написать универсальный плагин для создания файловой структуры фич в проекте.
В статье расскажу и покажу, как сделать базовый плагин для создания файловых структур и собрать его для локального использования или публикации.
Читать статью
Меня зовут Александр Мамонов, и в KODE я занимаюсь разработкой на Flutter. Я столкнулся с бойлерплейтом композиции фич в наших проектах, поэтому решил написать универсальный плагин для создания файловой структуры фич в проекте.
В статье расскажу и покажу, как сделать базовый плагин для создания файловых структур и собрать его для локального использования или публикации.
Читать статью
VK
Как создать плагин для IntelliJ IDEA на примере генератора директорий для проекта
Меня зовут Александр Мамонов, и в KODE я занимаюсь разработкой на Flutter. Я столкнулся с бойлерплейтом композиции фич в наших проектах,..
1
🗓 18 февраля в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional» от Otus.
На вебинаре рассмотрим:
🔗 Ссылка на регистрацию: https://vk.cc/cIr4a8
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
1
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🚀 Хотите вывести свои Flutter-приложения на новый уровень?
Дополненная реальность — это будущее мобильных технологий, и мы покажем, как её использовать во Flutter! 📅 19 февраля в 🕗 20:00 мск вы узнаете, как создавать AR-приложения с помощью ARKit, ARCore и Flutter: от распознавания поверхностей до взаимодействия с 3D-объектами.
👨💻 Спикер Дмитрий Золотов — Flutter+Kotlin Developer в Yandex.
Начните внедрять AR в свои проекты, создавайте уникальный пользовательский опыт и станьте востребованным разработчиком.
👇Регистрируйтесь на открытый урок перед стартом курса «Flutter Mobile Developer». Участникам — скидка на обучение!
Записаться: https://vk.cc/cIALok
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Дополненная реальность — это будущее мобильных технологий, и мы покажем, как её использовать во Flutter! 📅 19 февраля в 🕗 20:00 мск вы узнаете, как создавать AR-приложения с помощью ARKit, ARCore и Flutter: от распознавания поверхностей до взаимодействия с 3D-объектами.
👨💻 Спикер Дмитрий Золотов — Flutter+Kotlin Developer в Yandex.
Начните внедрять AR в свои проекты, создавайте уникальный пользовательский опыт и станьте востребованным разработчиком.
👇Регистрируйтесь на открытый урок перед стартом курса «Flutter Mobile Developer». Участникам — скидка на обучение!
Записаться: https://vk.cc/cIALok
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
1
Что такое функциональный тип, какие у него ограничения?
Язык Kotlin допускает объявлять тип анонимных функций или лямбда выражений — функциональный.
Функциональный тип — это тип данных, который позволяет работать с функциями как с обычными объектами, передавать функции в качестве аргументов и возвращать их из функций. Синтаксис функционального типа в Котлин представлен списком типов параметров, разделенных запятой, затем оператором -> и типом возвращаемого значения функции.
Пример функционального типа: (a: Int, b: Int) -> Int
Здесь функциональный тип описывает функцию с двумя параметрами типа Int и возвращаемым значением типа Int.
Функциональный тип может быть использован для создания переменных, которые могут хранить ссылки на функции. А также поддерживает перегрузку, что позволяет иметь несколько функций с различными сигнатурами, но с одинаковым именем.
Ограничения функционального типа:
• Тип передаваемой функции должен быть определен явно, чтобы компилятор мог проверить типы аргументов и возвращаемых значений.
• Функциональный тип может содержать только один тип возвращаемого значения.
• Функциональный тип не может содержать более 22 параметров из-за ограничения JVM.
• Функциональный тип не поддерживает неявные преобразования типов.
Несмотря на эти ограничения, функциональные типы позволяют обрабатывать функции как объекты, что повышает гибкость и выразительность кода. Пример определения функционального типа:
Код из примера определяет функциональный тип Operation, который представляет собой функцию, принимающую два аргумента типа Int и возвращающую значение типа Int. Затем создается функция calculate, которая принимает три параметра: функцию op типа Operation и два аргумента типа Int. Внутри функции calculate вызывается переданная функция op с переданными аргументами a и b, и результат возвращается из функции calculate. В конце кода создается переменная sum, которая содержит лямбда-выражение, реализующее операцию сложения. Далее вызывается функция calculate с параметрами sum, 10 и 5, что приводит к вызову функции sum с аргументами 10 и 5, и результатом является число 15.
@KotlinSenior #kotlin
Язык Kotlin допускает объявлять тип анонимных функций или лямбда выражений — функциональный.
Функциональный тип — это тип данных, который позволяет работать с функциями как с обычными объектами, передавать функции в качестве аргументов и возвращать их из функций. Синтаксис функционального типа в Котлин представлен списком типов параметров, разделенных запятой, затем оператором -> и типом возвращаемого значения функции.
Пример функционального типа: (a: Int, b: Int) -> Int
Здесь функциональный тип описывает функцию с двумя параметрами типа Int и возвращаемым значением типа Int.
Функциональный тип может быть использован для создания переменных, которые могут хранить ссылки на функции. А также поддерживает перегрузку, что позволяет иметь несколько функций с различными сигнатурами, но с одинаковым именем.
Ограничения функционального типа:
• Тип передаваемой функции должен быть определен явно, чтобы компилятор мог проверить типы аргументов и возвращаемых значений.
• Функциональный тип может содержать только один тип возвращаемого значения.
• Функциональный тип не может содержать более 22 параметров из-за ограничения JVM.
• Функциональный тип не поддерживает неявные преобразования типов.
Несмотря на эти ограничения, функциональные типы позволяют обрабатывать функции как объекты, что повышает гибкость и выразительность кода. Пример определения функционального типа:
// определение функционального типа
typealias Operation = (Int, Int) -> Int
// использование функционального типа
fun calculate(op: Operation, a: Int, b: Int): Int {
return op(a, b)
}
// пример вызова функции calculate
val sum: Operation = { x, y -> x + y }
calculate(sum, 10, 5) // результат: 15
Код из примера определяет функциональный тип Operation, который представляет собой функцию, принимающую два аргумента типа Int и возвращающую значение типа Int. Затем создается функция calculate, которая принимает три параметра: функцию op типа Operation и два аргумента типа Int. Внутри функции calculate вызывается переданная функция op с переданными аргументами a и b, и результат возвращается из функции calculate. В конце кода создается переменная sum, которая содержит лямбда-выражение, реализующее операцию сложения. Далее вызывается функция calculate с параметрами sum, 10 и 5, что приводит к вызову функции sum с аргументами 10 и 5, и результатом является число 15.
@KotlinSenior #kotlin
1
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🏆 Пройди тест из 10 вопросов, проверь свой уровень знаний и получи скидку на онлайн-курс «Kotlin Backend Developer. Professional» от OTUS!
Если успешно пройдешь тест, сможешь забронировать место в группе по выгодной цене! И еще дарим промокод
🎫 Курс можно приобрести в рассрочку
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Как работают SAM-conversions?
Single Abstract Method (SAM) интерфейсы — это интерфейсы только с одним абстрактным методом (функциональные интерфейсы). Kotlin поддерживает соглашение SAM — автоматическую конвертацию функций и lambda между Kotlin и Java.
SAM-conversions позволяют использовать Java-интерфейсы с единственным абстрактным методом в Kotlin, как если бы это были функциональные типы. В Kotlin вы можете использовать такие интерфейсы для создания лямбда-выражений без явного определения функционального типа.
При использовании интерфейса с единственным абстрактным методом в качестве функционального интерфейса в Java, вы можете передавать его экземпляры вместо лямбда-выражений. Это тоже возможно в Kotlin, но на самом деле Kotlin предоставляет более простой синтаксис для этого. Когда вам нужно использовать функциональный интерфейс в Kotlin, вы можете передать lambda-выражение, которое соответствует сигнатуре единственного метода интерфейса, вместо экземпляра интерфейса. Компилятор сам преобразует лямбда-выражение в экземпляр интерфейса, используя функцию-расширение метода invoke интерфейса. Пример:
В этом примере мы определяем интерфейс OnClickListener с единственным абстрактным методом onClick. Затем мы создаем класс Button, который может иметь слушатель, реализующий данный интерфейс. После этого мы создаем экземпляр Button и передаем лямбда-выражение с соответствующей сигнатурой в качестве слушателя. Компилятор автоматически преобразует это лямбда-выражение в экземпляр интерфейса OnClickListener, используя функцию-расширение invoke интерфейса.
@KotlinSenior #kotlin
Single Abstract Method (SAM) интерфейсы — это интерфейсы только с одним абстрактным методом (функциональные интерфейсы). Kotlin поддерживает соглашение SAM — автоматическую конвертацию функций и lambda между Kotlin и Java.
SAM-conversions позволяют использовать Java-интерфейсы с единственным абстрактным методом в Kotlin, как если бы это были функциональные типы. В Kotlin вы можете использовать такие интерфейсы для создания лямбда-выражений без явного определения функционального типа.
При использовании интерфейса с единственным абстрактным методом в качестве функционального интерфейса в Java, вы можете передавать его экземпляры вместо лямбда-выражений. Это тоже возможно в Kotlin, но на самом деле Kotlin предоставляет более простой синтаксис для этого. Когда вам нужно использовать функциональный интерфейс в Kotlin, вы можете передать lambda-выражение, которое соответствует сигнатуре единственного метода интерфейса, вместо экземпляра интерфейса. Компилятор сам преобразует лямбда-выражение в экземпляр интерфейса, используя функцию-расширение метода invoke интерфейса. Пример:
interface OnClickListener {
fun onClick(view: View)
}
class Button {
fun setOnClickListener(listener: OnClickListener) {
// ...
}
}
val button = Button()
button.setOnClickListener { view ->
// обработка нажатия кнопки
}
В этом примере мы определяем интерфейс OnClickListener с единственным абстрактным методом onClick. Затем мы создаем класс Button, который может иметь слушатель, реализующий данный интерфейс. После этого мы создаем экземпляр Button и передаем лямбда-выражение с соответствующей сигнатурой в качестве слушателя. Компилятор автоматически преобразует это лямбда-выражение в экземпляр интерфейса OnClickListener, используя функцию-расширение invoke интерфейса.
@KotlinSenior #kotlin
1
🤖 Пройди тест для Android-разработчиков и проверь свои знания, готов ли ты к обучению на курсе.
Ответишь — пройдешь на продвинутый курс "Android Developer. Professional " от OTUS по специальной цене + получишь доступ к записям открытых уроков курса
За 5 месяцев обучения ты освоишь:
— Проектирование архитектуры: Clean Architecture, MV*, многомодульные приложения и профессиональное использование DI.
— Современный стек: Kotlin, Jetpack Compose, Coroutines/Flow, Dagger 2/Hilt, Gradle.
— Разработку кросс-платформенных приложений с использованием Kotlin Multiplatform.
— Глубокое понимание Android SDK: оптимизация, безопасность и производительность приложений.
— Организацию инфраструктуры: CI/CD, Docker, линтеры, автоматизация сборки и мониторинг.
— Написание надежных тестов: интеграционные, UI-тесты и работа с фреймворками.
👉 ПРОЙТИ ТЕСТ: https://vk.cc/cIJY4x
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Ответишь — пройдешь на продвинутый курс "Android Developer. Professional " от OTUS по специальной цене + получишь доступ к записям открытых уроков курса
За 5 месяцев обучения ты освоишь:
— Проектирование архитектуры: Clean Architecture, MV*, многомодульные приложения и профессиональное использование DI.
— Современный стек: Kotlin, Jetpack Compose, Coroutines/Flow, Dagger 2/Hilt, Gradle.
— Разработку кросс-платформенных приложений с использованием Kotlin Multiplatform.
— Глубокое понимание Android SDK: оптимизация, безопасность и производительность приложений.
— Организацию инфраструктуры: CI/CD, Docker, линтеры, автоматизация сборки и мониторинг.
— Написание надежных тестов: интеграционные, UI-тесты и работа с фреймворками.
👉 ПРОЙТИ ТЕСТ: https://vk.cc/cIJY4x
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
1
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1