implementation("com.github.kittinunf.fuel:fuel:3.0.0-alpha03")
Fuel поддерживает основные HTTP-методы: GET/POST/PUT/DELETE/HEAD/PATCH, поддерживает асинхронные и блокирующие запросы, а также имеет массу других возможностей
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Приглашаем на открытый урок «Стиль разработки 2020-х и среда окружения современного бэкенд-приложения».
🗓 30 июля в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».
На открытом уроке вы узнаете, как поменялся стиль разработки в 2020-х и какие компоненты уже не нужно писать самому. Поговорим о том, как в современном бэкенде выполнять только ключевую бизнес-логику.
🔗 Ссылка на регистрацию: https://vk.cc/cNTwhp
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Kobweb — это фреймворк Kotlin, построенный на основе Compose HTML.
Kobweb включает в себя все необходимое для создания динамичных веб-сайтов, а также веб-приложений, используя при этом всю экосистему Kotlin.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
23 июля(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе
Please open Telegram to view this post
VIEW IN TELEGRAM
1
KVision позволяет создавать современные веб-приложения на Kotlin без использования HTML, CSS и JavaScript. KVision предоставляет большую коллекцию готовых к использованию компонентов GUI, которые можно использовать в качестве блоков для построения пользовательского интерфейса приложения.
KVision полностью поддерживает как реактивные, так и императивные стили программирования. KVision содержит инновационный интерфейс для подключения фреймворков Ktor, Jooby, Spring Boot, Javalin, Vert.x и Micronaut на стороне сервера, что позволяет создавать fullstack-приложения с общим кодом для модели данных и бизнес-логики. KVision активно развивается.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
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/cNXtLQ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Ответишь — пройдешь на продвинутый курс "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/cNXtLQ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
1
dependencies {
implementation(libs.vico.compose)
implementation(libs.vico.compose.m2)
implementation(libs.vico.compose.m3)
implementation(libs.vico.core)
implementation(libs.vico.views)
}
Vico — это легкая расширяемая библиотека Kotlin для создания диаграмм.
Библиотека совместима как с Jetpack Compose, так и с системой представлений, при этом 2 её основных модуля — compose и views, — являются независимыми.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
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
Anvil упрощает внедрение зависимостей в Dagger за счет автоматического объединения модулей Dagger и интерфейсов компонентов. В общем, вместо того чтобы вручную добавлять модули в компонент Dagger и заставлять компонент Dagger расширять все интерфейсы компонента, эти модули и интерфейсы могут быть включены в компонент автоматически, типо того:
@Module
@ContributesTo(AppScope::class)
class DaggerModule { .. }
@ContributesTo(AppScope::class)
interface ComponentInterface {
fun getSomething(): Something
fun injectActivity(activity: MyActivity)
}
// The real Dagger component.
@MergeComponent(AppScope::class)
interface AppComponent
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🚀Хотите создавать приложения на Android и стать востребованным разработчиком?
Присоединяйтесь к курсу «Android Developer» и научитесь разрабатывать масштабируемые приложения на Kotlin, работать с Jetpack Compose и Android SDK, использовать популярные фреймворки Dagger2, Hilt, RxJava, а также разбираться в принципах CI/CD, Docker и Kubernetes.
Вы сможете проектировать многомодульную архитектуру, создавать UI и анимировать экраны, интегрировать базы данных, а также научитесь тестировать приложения с помощью Espresso и JUnit. После курса вас ждёт реальное портфолио и диплом OTUS, который ценится в крупных компаниях!
⚡️Старт 30 июля, успевайте оставить заявку и получить скидку на обучение: https://vk.cc/cO82kq
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Присоединяйтесь к курсу «Android Developer» и научитесь разрабатывать масштабируемые приложения на Kotlin, работать с Jetpack Compose и Android SDK, использовать популярные фреймворки Dagger2, Hilt, RxJava, а также разбираться в принципах CI/CD, Docker и Kubernetes.
Вы сможете проектировать многомодульную архитектуру, создавать UI и анимировать экраны, интегрировать базы данных, а также научитесь тестировать приложения с помощью Espresso и JUnit. После курса вас ждёт реальное портфолио и диплом OTUS, который ценится в крупных компаниях!
⚡️Старт 30 июля, успевайте оставить заявку и получить скидку на обучение: https://vk.cc/cO82kq
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
1
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Приглашаем на открытый урок, создадим приложение «Фото дня»
🗓 05 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional».
На вебинаре:
- Разберемся с API сервера для скачивания фотографии и описания к ней
- Сверстаем простой экран для отображения данных
- Пропишем выход в интернет для скачивания данных
- Пропишем бизнес-логику для отображения данных на экране приложения
🔗 Ссылка на регистрацию: https://vk.cc/cO7Zu3
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Что такое мульти-декларации (destructuring declarations)?
Мульти-декларации (destructuring declarations или деструктуризирующее присваивание) — это способ извлечения значений из объекта и присвоения их сразу нескольким переменным. В Kotlin этот механизм поддерживается с помощью оператора распаковки (destructuring operator) — componentN(), где N — номер компонента.
При создании data класса Kotlin автоматически создает функции componentN() для каждого свойства класса, где N — номер позиции переменной в конструкторе. Функции componentN() возвращают значения свойств в порядке их объявления в конструкторе. Это позволяет использовать мульти-декларации для распаковки значений свойств и присваивания их отдельным переменным.
Например, если у нас есть data класс Person с двумя свойствами name и age, мы можем использовать мульти-декларации, чтобы извлечь эти свойства и присвоить их двум переменным:
Мульти-декларации также могут быть использованы с массивами и другими коллекциями:
Мульти-декларации (destructuring declarations или деструктуризирующее присваивание) — это способ извлечения значений из объекта и присвоения их сразу нескольким переменным. В Kotlin этот механизм поддерживается с помощью оператора распаковки (destructuring operator) — componentN(), где N — номер компонента.
При создании data класса Kotlin автоматически создает функции componentN() для каждого свойства класса, где N — номер позиции переменной в конструкторе. Функции componentN() возвращают значения свойств в порядке их объявления в конструкторе. Это позволяет использовать мульти-декларации для распаковки значений свойств и присваивания их отдельным переменным.
Например, если у нас есть data класс Person с двумя свойствами name и age, мы можем использовать мульти-декларации, чтобы извлечь эти свойства и присвоить их двум переменным:
data class Person(val name: String, val age: Int)
val person = Person("Alice", 29)
val (name, age) = person
println(name) // Alice
println(age) // 29
Также можно использовать мульти-декларации в циклах, чтобы итерироваться по спискам объектов и распаковывать значения свойств:
val people = listOf(Person("Alice", 30), Person("Bob", 40))
for ((name, age) in people) {
println("$name is $age years old")
}
// Alice is 30 years old
// Bob is 40 years old
Мульти-декларации также могут быть использованы с массивами и другими коллекциями:
val list = listOf("apple", "banana", "orange")
val (first, second, third) = list
println(first) // apple
println(second) // banana
println(third) // orange
1
Приглашаем на открытый урок который поможет решить эти вопросы.
🗓 12 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».
На открытом уроке «Почему все переходят на Kotlin? Секреты успешной миграции с Java» мы покажем, как сократить время разработки на 30% и минимизировать риски NullPointerException.
Вы узнаете ключевые отличия Kotlin, пошаговый план миграции без переписывания проекта и лучшие практики корутин для асинхронности.
🦾 Представьте, что каждый новый модуль пишется быстрее, ошибок становится в три раза меньше, а вы получаете бесценный навык для современных бэкенд-проектов.
🔗 Ссылка на регистрацию: https://vk.cc/cOhvng
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Во что компилируется typealias?
Typealias не создает новый тип данных, а только создает псевдоним для существующего типа. При компиляции кода, все typealias заменяются на соответствующий тип, поэтому typealias не приводит к увеличению размера кода.
Например, typealias IntPredicate = (Int) -> Boolean при компиляции будет заменено на (Int) -> Boolean, то есть функцию, принимающую значение типа Int и возвращающую значение типа Boolean.
Можно ли использовать typealias для функциональных типов?
Да, можно использовать typealias для функциональных типов в Kotlin. Например, вы можете создать псевдоним для типа функции, которая принимает два параметра типа Int и возвращает значение типа String, следующим образом:
Это позволит вам использовать созданный псевдоним вместо полного объявления типа, то есть вместо:
можно использовать:
Как и в случае с другими typealias, компилятор Kotlin просто заменяет псевдоним на соответствующий тип при компиляции кода.
Typealias не создает новый тип данных, а только создает псевдоним для существующего типа. При компиляции кода, все typealias заменяются на соответствующий тип, поэтому typealias не приводит к увеличению размера кода.
Например, typealias IntPredicate = (Int) -> Boolean при компиляции будет заменено на (Int) -> Boolean, то есть функцию, принимающую значение типа Int и возвращающую значение типа Boolean.
Можно ли использовать typealias для функциональных типов?
Да, можно использовать typealias для функциональных типов в Kotlin. Например, вы можете создать псевдоним для типа функции, которая принимает два параметра типа Int и возвращает значение типа String, следующим образом:
typealias IntToString = (Int, Int) -> String
Это позволит вам использовать созданный псевдоним вместо полного объявления типа, то есть вместо:
fun processValues(f: (Int, Int) -> String) {
// ...
}
можно использовать:
fun processValues(f: IntToString) {
// ...
}
Как и в случае с другими typealias, компилятор Kotlin просто заменяет псевдоним на соответствующий тип при компиляции кода.
1