Kotlin Developer
6.21K subscribers
250 photos
7 videos
343 links
Самый топовый канал по Kotlin

По вопросам сотрудничества и рекламы: @NadikaKir

Мы на бирже: https://telega.in/c/KotlinSenior
Download Telegram
👩‍💻 carbon-compose — реализация дизайн-системы Carbon от IBM с использованием Kotlin Multiplatform (KMP) и Compose Multiplatform. Она позволяет создавать приложения с единым дизайном для Android, iOS, десктопа и веба (через WebAssembly)

🌟 Этот репозиторий включает приложение-каталог компонентов, где можно протестировать интерфейсные элементы для всех поддерживаемых платформ

🔐 Лицензия: Apache-2.0

🖥 Github

@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Money - это библиотека Kotlin, которая упрощает денежные расчеты и распределение средств.

Библиотека поддерживает денежные арифметические операциис, расчеты с процентами и различные распределение, упрощая моделирование таких вариантов использования, как платежи в рассрочку (например, покупка сейчас, оплата позже), обмен валюты, доходность инвестиций и сбор налогов.

В библиотеке также полностью поддерживаются криптовалюты.

🖥 Github
🖥 Документация

@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
3
👩‍💻 carbon-compose — реализация дизайн-системы Carbon от IBM с использованием Kotlin Multiplatform (KMP) и Compose Multiplatform. Она позволяет создавать приложения с единым дизайном для Android, iOS, десктопа и веба (через WebAssembly)

🌟 Этот репозиторий включает приложение-каталог компонентов, где можно протестировать интерфейсные элементы для всех поддерживаемых платформ

🔐 Лицензия: Apache-2.0

🖥 Github

@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
1
Как создать плагин для IntelliJ IDEA на примере генератора директорий для проекта

Меня зовут Александр Мамонов, и в KODE я занимаюсь разработкой на Flutter. Я столкнулся с бойлерплейтом композиции фич в наших проектах, поэтому решил написать универсальный плагин для создания файловой структуры фич в проекте.

В статье расскажу и покажу, как сделать базовый плагин для создания файловых структур и собрать его для локального использования или публикации.


Читать статью
1
🔥 Открытый урок «Разработка монолитного приложения со Spring»

🗓 18 февраля в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional» от Otus.

На вебинаре рассмотрим:
✔️ монолитную архитектуру (преимущества и недостатки);
✔️ фреймворк Spring;
✔️ особенности разработки со Spring в Kotlin;
✔️ интеграцию транспортных моделей в приложение;
✔️ упаковку и запуск в Docker.

🔗 Ссылка на регистрацию: https://vk.cc/cIr4a8

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Film Simulator — это кроссплатформенное мобильное приложение на основе Kotlin Multiplatform и Compose UI. Оно позволяет пользователям применять к изображениям различные фильтры в стиле плёнки (LUTs)

🌟 Приложение создано для Android и iOS, использует архитектуру MVVM и включает в себя такие технологии, как SQLDelight, Ktor, FFMPEG-Kit и Material Design 3 для создания интерфейса

🔐 Лицензия: MIT

🖥 Github

@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
1
Что такое функциональный тип, какие у него ограничения?

Язык 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
👩‍💻 Solivagant — это библиотека для создания многоплатформенной навигации в Jetpack Compose Multiplatform.

💡 Библиотека обеспечивает безопасное и гибкое управление навигацией с возможностью интеграции ViewModel, SavedStateHandle и других функций для работы с состоянием и жизненным циклом. Solivagant поддерживает несколько стеков навигации, анимации переходов и обратную совместимость.

🖥 Github

@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 А ты справишься с тестом по Kotlin?

🏆 Пройди тест из 10 вопросов, проверь свой уровень знаний и получи скидку на онлайн-курс «Kotlin Backend Developer. Professional» от OTUS!

Если успешно пройдешь тест, сможешь забронировать место в группе по выгодной цене! И еще дарим промокод Kotlin5

🎫
Курс можно приобрести в рассрочку

➡️ Пройти тест и забрать скидку: https://vk.cc/cIJRAx

Реклама. ООО «Отус онлайн-образование», ОГРН 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 интерфейса. Пример:

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
1
👩‍💻 Muzza — это клиент YouTube Music для Android, разработанный с использованием Material Design 3.

🌟 Это приложение позволяет пользователям слушать музыку без рекламы, поддерживает фоновое воспроизведение, кэширование и загрузку песен для офлайн-режима, синхронизированные тексты песен и перевод, интеграцию с Android Auto и динамические темы. Этот клиент разработан как альтернатива официальному приложению YouTube Music и имеет открытый исходный код.

🔐 Лицензия: GPL-3.0

🖥 Github

@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Solivagant — это библиотека для создания многоплатформенной навигации в Jetpack Compose Multiplatform.

💡 Библиотека обеспечивает безопасное и гибкое управление навигацией с возможностью интеграции ViewModel, SavedStateHandle и других функций для работы с состоянием и жизненным циклом. Solivagant поддерживает несколько стеков навигации, анимации переходов и обратную совместимость.

🖥 Github

@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Koin: Простой и легковесный фреймворк для внедрения зависимостей

Принцип внедрения зависимостей становится все более неотъемлемой частью процесса разработки. Без него сложно представить себе достижение желанного разделения обязанностей в коде или обеспечение должного уровня тестируемости.

В то же время, хотя Spring Framework и является широко распространенным выбором, он далеко не всем подходит. Некоторым было бы предпочтительнее использовать более простые и легковесные фреймворки с продвинутой поддержкой асинхронных операций ввода-вывода. Другие были бы признательны за статическое разрешение зависимостей для более быстрого запуска приложения.

Читать статью
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/cJlq5W

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
1
👩‍💻 miuix — библиотека компонентов пользовательского интерфейса для Kotlin Multiplatform, разработанная для создания кроссплатформенных приложений.

🌟 Библиотека использует Compose Multiplatform для обеспечения единой кодовой базы, поддерживая Android, iOS, macOS, Web и JVM. Она включает компоненты, такие как кнопки, списки и другие UI-элементы, что упрощает создание адаптивных интерфейсов, не требуя дублирования кода для каждой платформы.

🔐 Лицензия: Apache-2.0

🖥 Github

@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 akkurate — библиотека для валидации данных в приложениях на Kotlin!

🔍 Основные возможности:

🌟 Проверка данных на соответствие определённым ограничениям.

🌟 Поддержка пользовательских ограничений и аннотаций для удобной валидации.

🌟 Трансформация данных перед их проверкой.

🔐 Лицензия: Apache-2.0

🖥 Github

@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Tiamat — библиотека для разработки кроссплатформенной навигации на Jetpack Compose!

🌟 Она предназначена для упрощения управления навигацией в мультиплатформенных приложениях, обеспечивая простую и понятную API для реализации переходов между экранами.

🌟 Для разработчиков, использующих Jetpack Compose, Tiamat позволяет сократить объем кода, связанного с навигацией, и предоставляет механизмы для реализации навигационных сценариев как в Android, так и в других платформах, поддерживаемых Compose Multiplatform.

🔐 Лицензия: Apache-2.0

🖥 Github

@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
📱Хотите создавать стильные и современные Android-приложения?

На открытом вебинаре «Material Design 3.0 — что нужно знать разработчику» 📅 24 марта в 20:00 мск вы разберете документацию, изучите инструменты и узнаете ключевые требования дизайна.

💼Научитесь создавать интерфейсы, которые будут радовать пользователей и впечатлять работодателей.

👉Открытый урок перед стартом курса «Android Developer. Professional», получите скидку на обучение: https://vk.cc/cJT7yZ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
1