Kotlin @kotlin_lib Channel on Telegram

Kotlin

@kotlin_lib


Подборки полезного материала по Kotlin. По всем вопросам @evgenycarter

Kotlin Telegram Channel (Russian)

Добро пожаловать в Telegram-канал под названием "Kotlin"! Этот канал собирает в себе полезный материал по языку программирования Kotlin, который становится все более популярным среди разработчиков. Если вы интересуетесь Kotlin и хотите углубить свои знания, то это место для вас. Здесь вы найдете подборки материалов, которые помогут вам освоить новые концепции, улучшить навыки программирования на Kotlin и быть в курсе последних трендов в этой сфере. Канал под названием "kotlin_lib" создан для того, чтобы облегчить доступ к полезной информации и помочь разработчикам достичь новых высот в области программирования на Kotlin. Если у вас возникли вопросы или вы хотите поделиться своим опытом, обращайтесь к администратору канала по имени @evgenycarter. Присоединяйтесь к нам и станьте частью активного сообщества разработчиков, узнавайте новое, делитесь опытом и двигайтесь вперед вместе с нами!

Kotlin

12 Jan, 20:28


Beyond The Success Of Kotlin / Документальный фильм от EngX

Почти 15 лет назад небольшая команда инженеров JetBrains приступила к, казалось бы, безумному начинанию — создать свой собственный язык программирования и добиться с ним успеха. В начале 2010-х годов Java был одним из самых популярных языков, которым пользовались миллионы инженеров. Но он не получал никаких серьезных обновлений в течение нескольких лет, и в нем не было новых функций. Разработчики искали новые решение.

Многие инженеры пытались предоставить альтернативу Java, создавая новые языки для JVM. Это стало небольшим окном возможностей для создания инструмента, который мог бы повлиять на всю отрасль. Так началась история Kotlin. Что привело к успеху Kotlin и чего это стоило команде? В этом документальном фильме вы услышите историю из первых уст.

источник

✍️ @kotlin_lib

Kotlin

06 Jan, 08:31


Binary Compatibility Validator: Управление изменениями API в вашей Android-библиотеке

Обсуждается важность поддержания бинарной совместимости при разработке Android-библиотек. Автор объясняет, как изменения в API могут привести к ошибкам времени выполнения, таким как NoSuchMethodException, из-за отсутствия методов, ожидаемых в зависимости. В статье рассматривается использование инструмента Binary Compatibility Validator (BCV) для предотвращения подобных проблем, а также обсуждаются сложности, связанные с транзитивными зависимостями и разрешением зависимостей в Gradle.

https://proandroiddev.com/binary-compatibility-validator-5d3e641af4b4

✍️ @kotlin_lib

Kotlin

31 Dec, 07:01


Создание плагинов и переиспользуемых частей в .gradle.kts-файлах и Kotlin extension-функциях

Всем привет! На связи Дима Котиков, и мы продолжаем разговор о том, как облегчить себе жизнь и уменьшить Boilerplate в gradle-файлах. В первой части поговорили о том, как подготовиться к созданию модулей для Gradle Convention Plugin. Двигаемся дальше!

https://habr.com/ru/companies/tbank/articles/843662/

✍️ @kotlin_lib

Kotlin

30 Dec, 09:48


Gradle Convention Plugins: как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах

Я расскажу о том, как облегчить работу с Gradle с использованием Gradle Convention Plugins. Всю информацию я разбил на серию статей для удобства. Они будут полезны всем, кто пользуется Gradle в качестве сборщика проектов. В первой части поговорим о проблеме с build.gradle-файлами и сделаем начальную настройку для написания Gradle Convention Plugins.

https://habr.com/ru/companies/tbank/articles/843648/

✍️ @kotlin_lib

Kotlin

27 Dec, 08:30


5 распространенных вопросов для собеседования по Kotlin Coroutines

Корутины — это одна из самых важных концепций, которую необходимо понять разработчику Android. Они являются рекомендованным решением для асинхронного программирования на Android. Корутины позволяют писать асинхронный код более безопасным, поддерживаемым и лаконичным способом. В этой статье представлены 5 важных вопросов, которые вполне могут быть заданы на собеседовании на позицию Android-разработчика. Эти вопросы взяты из списка вопросов, представленных на мероприятии Google DevFest, проведённом в 2021 году. Знание ответов на эти вопросы определённо будет полезным для вас. Я рекомендую добавить эту статью в список для чтения, чтобы вернуться к ней перед собеседованием. А теперь, когда вступление закончено, перейдём к вопросам!

https://medium.com/@theAndroidDeveloper/5-common-kotlin-coroutines-interview-questions-f084d098f51d

✍️ @kotlin_lib

Kotlin

26 Dec, 07:48


Kotlin Cacheable

Основанная на аннотациях библиотека кэширования для Kotlin Multiplatform.
При вызове функции с аннотацией Cacheable она будет возвращать кэшированное значение, если функция будет вызвана с теми же аргументами.

https://github.com/mori-atsushi/kotlin-cacheable

✍️ @kotlin_lib

Kotlin

25 Dec, 08:01


Облако — это конструктор!

The Art of Programming — подкаст об ​​инструментах, технике и разработке ПО. По следам конференции HighLoad 2024 записали новый выпуск, в котором обсуждаем индустрию публичных облаков.

Вместе с Данилой Дюгуровым, CTO MTC Web Services, говорим о новостях индустрии, создании новых облачных платформ, потенциале рынка и принципах формирования топовых команд разработки.

🎧Слушайте The Art of Programming на всех популярных подкаст-площадках.

Kotlin

25 Dec, 05:33


Учим 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

21 Dec, 12:51


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

Kotlin

14 Dec, 12:20


Миграция конфигурации сборки с 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

Kotlin

08 Dec, 05:59


RxJava to Kotlin Coroutines: Полное руководство по миграции.

Как разработчик, работающий с большими устаревшими приложениями, я имел удовольствие (а иногда и трудности) руководить модернизацией крупных кодовых баз, которые активно использовали RxJava для реактивного программирования. Эти усилия по модернизации в значительной степени были сосредоточены на преобразовании кода RxJava в эквиваленты на основе Coroutines и Flow. Во время этих миграций я многому научился и собираюсь поделиться всем, что узнал, в этой статье.

https://itnext.io/rxjava-to-kotlin-coroutines-the-ultimate-migration-guide-d41d782f9803

✍️ @kotlin_lib

Kotlin

07 Dec, 09:01


Уже забыли, когда кодили что-то нестандартное?
Приглашаем тряхнуть стариной на бесплатном мини-курсе от Skillbox «Python для всех». Он состоит из практики чуть меньше чем полностью. За 4 дня мы создадим 4 проекта:

1️⃣ Бота для Telegram, который умеет переводить голос в текст
2️⃣ Бота для Telegram, который обрабатывает фотографии
3️⃣ Парсер, который извлекает данные с сайтов
4️⃣ Веб-сайт (с помощью фреймворка Flask)


В общем, прокачаете навыки, освежите память и наверняка узнаете что-то новое.
Регистрируйтесь: https://epic.st/8iVEJ?erid=2VtzqvEerAU

🎁 А ещё подарки: персональная карьерная консультация, скидка 10 000 рублей на любой курс Skillbox и подборка полезных материалов.

Вас ждет новогодняя распродажа в Skillbox: дарим скидки до 60% и 3 курса в подарок!

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880

Kotlin

02 Dec, 19:28


Что нового в Kotlin 2.1.0

Новые возможности языка: добавлены условия-гварды в конструкции 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

Kotlin

27 Nov, 13:04


Улучшаем автокомплит в смешанных 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

Kotlin

25 Nov, 07:59


👍Стройте эффективную многопоточную/асинхронную инфраструктуру приложений!

Узнайте как на бесплатном уроке онлайн-курса «Android Developer. Professional» — «Kotlin Coroutine в Android-разработке»: регистрация

Что будет на вебинаре?

- Теоретически и практические основы корутины: structured concurrency, builders, suspend функции, coroutine context, обработка exceptions.

- Каналы: producer channel/ Consumer channel; типы каналов по размеру буффера; rendevouz Channel и другие.

- Flow: builders; операторы; обработка исключений во Flow; миграция на Flow.

Результаты вебинара:

- Узнаете, как правильно использовать корутины и suspend функции, глубоко разобравшись в их устройстве и best practices

- Научитесь реализовывать операторы и писать правильные цепочки, используя Flow

- Сможете использовать знания для построения эффективной инфраструктуры приложений.

🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.

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

Kotlin

23 Nov, 12:38


Applying the State Pattern in Kotlin

Когда наши объекты ведут себя по-разному в различных состояниях, может быть полезно применить Шаблон состояния (State Pattern). Сегодня мы рассмотрим код, который мог бы извлечь выгоду из этого шаблона, применим традиционный Шаблон состояния из классической книги "Gang of Four Design Patterns", а затем увидим, как можем его модернизировать и сократить количество вспомогательного кода, используя некоторые особенности языка Kotlin.

00:00 Introduction
00:16 Example Code
02:16 Classic State Pattern
06:50 Modernized State Pattern in Kotlin
11:58 Wrap-up

https://www.youtube.com/watch?v=pSx6yb1QLdk

✍️ @kotlin_lib

Kotlin

18 Nov, 20:27


«Приключение на 20 минут: взял и поменял язык». Личный опыт перехода на Kotlin

Зовут меня Артемий, я разработчик в компании i-Digital. Еще в начале своего карьерного пути выбрал для себя основным языком Python и развивался по большей части в нем. В какой-то момент начал преподавать его молодому поколению разработчиков в частных студиях, а заодно брать студентов на личное обучение.

Я пришел в коммерческую разработку на определенный проект, который был реализован на Python, но основным стеком для компании являлся Kotlin. Несмотря на переход в разработку, я продолжен преподавать и занимаюсь этим до сих пор. Вот из такой стартовой позиции начнем наше повествование.

https://habr.com/ru/articles/858436/

✍️ @kotlin_lib

Kotlin

12 Nov, 17:27


Kotlin вместо bash. Прокачиваем автоматизацию на сервере

Для решения задач автоматизации рутинных процессов для системных администраторов и DevOps (которые, кроме всего прочего, нередко занимаются созданием сборочных скриптов, которые могут не только подготовить базовую среду выполнения, но и могут взаимодействовать с другими системами для обеспечения полного цикла CI/CD) чаще всего используются или bash-сценарии (zsh, ash или язык любой другой оболочки) или python. Первое решение косвенно используется и в описании Dockerfile, поскольку сценарий исполняемых команд принципиально ничем не отличается от запуска скрипта в какой-либо shell, второй подход чаще ассоциируется с автоматизацией, связанных с взаимодействием с хранилищами данных — например, для создания учетных записей в LDAP или базе данных, отправки уведомлений и тд.

https://habr.com/ru/companies/otus/articles/742050/

✍️ @kotlin_lib

Kotlin

12 Nov, 14:01


Бесплатное IT-образование в 2024

Отобрали для вас полезные телеграм-каналы, которые помогут освоить программирование и другие IT-направления

Выбирайте нужное и подписывайтесь:

👩‍💻 С/С++: @Cpportal
📱 GitHub: @git_developer
🤓 Книги айти: @portalToIT
👩‍💻 Golang: @juniorGolang
👩‍💻 PHP: @PHPortal
👩‍💻 Моб. разработка: @MobDev
👩‍💻 Java: @Java_Iibrary
👩‍💻 Frontend: @FrontendPortal
⚙️ Backend: @BackendPortal
👩‍💻 Python: @PythonPortal
👩‍💻 C#: @KodBlog
🖥 Базы Данных & SQL: @SQL
👩‍💻 Разработка игр: @GameDevgx
👩‍💻 DevOps: @loose_code
🖥 Data Science: @DataSciencegx
🤔 Хакинг & ИБ: @cybersecinform
🐞 Тестирование: @QAPortal
📱 Маркетинг: @MarketingPortal
🖥 Дизайн: @PortalToDesign

➡️ Сохраняйте себе, чтобы не потерять

Kotlin

12 Nov, 08:50


Twine

Мультиплатформенный RSS-ридер, построенный с использованием Kotlin и Compose

https://github.com/msasikanth/twine

✍️ @kotlin_lib

Kotlin

09 Nov, 07:23


Антипаттерн: Остановите утечку Kotlin Flow Collectors в вашей ViewModel Android

Статья обсуждает антипаттерн в разработке на Android, связанный с использованием Flow и ViewModel в Kotlin. Она затрагивает проблему "утечки" коллекторов, которая возникает, если коллекты управляются неправильно, что может привести к утечкам памяти и неэффективному использованию ресурсов. Автор предлагает рекомендации по предотвращению этой проблемы через правильное управление коллекторами flow в жизненном цикле ViewModel.

https://sachankapil.medium.com/anti-pattern-stop-leaking-kotlin-flow-collectors-in-your-android-viewmodel-b85d5b09b987

✍️ @kotlin_lib

Kotlin

06 Nov, 16:15


Как максимально выгодно продавать рекламу в приложении?

Выбрать рекламную сеть с большой базой рекламодателей, которая предлагает точный таргетинг и другие возможности для роста дохода. Чем релевантнее реклама и чем выше конкуренция за каждый показ — тем больше доход от монетизации.

Например, в Рекламной сети Яндекса свыше 300 000 прямых рекламодателей из 30 индустрий и более 1000 факторов для подбора рекламы. А с помощью их собственной платформы медиации можно показывать самые выгодные объявления из нескольких рекламных сетей.

Теперь к РСЯ легко подключить приложения на React Native, а не только на iOS, Android, Flutter или Unity. Интеграция SDK простая, а если что-то пойдёт не так, поможет техподдержка, которая на связи 24/7.

Узнать больше о РСЯ и начать зарабатывать на показах рекламы можно по ссылке.

Kotlin

06 Nov, 09:00


Kotlin под капотом: Exploring Objects, Companion Objects, and Annotations: @JvmStatic, @JvmField, @JvmOverloads

https://proandroiddev.com/kotlin-under-the-hood-exploring-objects-companion-objects-and-annotations-jvmstatic-71e1bf1128df

✍️ @kotlin_lib

Kotlin

06 Nov, 07:01


🔥Пишем веб-сервис на Java, а затем преобразуем его в Kotlin за 1 урок

Приглашаем на бесплатный вебинар, он будет интересен Java-разработчикам и бэкенд-разработчикам на Kotlin!

Дата: 12 ноября в 19:00 МСК


В первой части занятия мы познакомимся с основными концепциями:
• null-безопасность;
• сокращение шаблонного кода;
• лямбда-выражения.

Во второй части — напишем веб-сервис с CRUD-операциями на Java, а затем преобразуем его в Kotlin. Так вы увидите, как синтаксис Kotlin упрощает код.

📌Занятие проведёт Сергей Прощаев — ведущий инженер и Java-разработчик в крупной компании

После вебинара вы сможете приобрести курс «Kotlin Backend Developer. Professional», который доступен в рассрочку!

👉🏻Записаться на событие

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

Kotlin

05 Nov, 21:07


Kotlin Beginner Tutorials Hindi | Complete Series

На данный момент на youtube доступно 41 видео


✍️ @kotlin_lib

Kotlin

01 Nov, 10:00


Организация кода в проекте | В какой пакет положить Kotlin класс

0:00 Введение
1:16 Куда можно класть Kotlin файлы
2:42 Интеграция
3:39 Как разделить код по Gradle модулям
6:23 Несколько папок с исходным кодом
7:42 Пакеты с кодом
14:03 Выделение кода в AAR/JAR библиотеки
15:37 Заключение

источник

✍️ @kotlin_lib

Kotlin

28 Oct, 08:01


Как создавать собственные DSL и применять их при разработке приложений?

Узнайте на открытом уроке «Возможности Kotlin для создания DSL на примере JsonBuilder»!

📅Дата и время: 31 октября, 19:00 МСК
🔗Записаться на событие: https://vk.cc/cDpPQa

🔍Что вас ждет:
- Погружение в назначение, особенности и практическое применение DSL.
- Практика создания DSL на примере JsonBuilder.
- Обзор возможностей Kotlin, полезных для создания DSL.

👨‍🏫Урок проведёт Евгений Непомнящий, преподаватель OTUS и опытный старший разработчик с многолетним стажем.

📚Это занятие будет полезно всем, кто использует Kotlin или хочет изучать этот язык.

🎓Урок приурочен к старту курса «Kotlin Backend Developer. Professional». После занятия вы сможете продолжить обучение по специальной цене и даже в рассрочку!

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить это интересное мероприятие: https://vk.cc/cDpPQa

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

Kotlin

28 Oct, 05:26


Kotlin KSP — как автоматизировать всё на свете

Недавно Google выпустила отличное обновление для автоматизации генерации шаблонного кода. Конечно, речь идет о Kotlin Symbol Processing. За годы использования Java Annotation Processing, KAPT, а теперь и KSP, я видел множество статей о том, как создать свой первый генератор, аннотацию и так далее. Часто предлагают что-то вроде: 'Давайте сгенерируем геттеры и сеттеры для наших моделей в качестве практического упражнения.' Этого более чем достаточно, чтобы попробовать технологию, но мне всегда хотелось чего-то большего. Реального примера, который действительно помог бы в проекте. И в одном из своих проектов я столкнулся с идеальной задачей, о которой расскажу сегодня. Мы поговорим об автоматизации описаний навигации в библиотеке Compose Navigation.

https://proandroiddev.com/kotlin-ksp-how-to-automate-everything-in-the-world-08e186ae1ec9

✍️ @kotlin_lib

Kotlin

25 Oct, 07:26


Под капотом Kotlin: изучаем конструкторы и блоки инициализации

Задумывались ли вы когда-нибудь, как работают конструкторы и блоки инициализации в Kotlin на низком уровне? В этом блоге мы погрузимся в эту тему.

Прежде чем перейти к деталям, давайте сначала разберёмся, что такое конструкторы и блоки инициализации. В Kotlin существуют два основных типа конструкторов: первичный конструктор и вторичные конструкторы.

https://medium.rip/@abhaysingbhosale123/kotlin-under-the-hood-exploring-constructors-and-init-blocks-869fc1f85a8e

✍️ @kotlin_lib

Kotlin

20 Oct, 21:05


Выпуск моего первого настоящего приложения на Kotlin Multiplatform

Я создал «OctoMeter», полностью функциональное приложение на Kotlin Multiplatform, с нуля всего за месяц. Благодаря общему пользовательскому интерфейсу и бизнес-логике, мое приложение теперь работает на настольных компьютерах, Android и iOS.

https://callmeryan.medium.com/releasing-my-first-true-kotlin-multiplatform-app-60d81e739eb0

✍️ @kotlin_lib

Kotlin

13 Oct, 21:05


Написание API Kotlin Multiplatform, совместимых со Swift

Серия из 9 статей о том, как создавать библиотеки Kotlin Multiplatform, которые хорошо работают со Swift.

https://medium.com/@aoriani/list/writing-swiftfriendly-kotlin-multiplatform-apis-c51c2b317fce

✍️ @kotlin_lib

Kotlin

06 Oct, 19:31


Koin: как сделать свой DI за 10 минут

Привет, меня зовут Иван Курак, я Android-разработчик приложения Ozon Job. В этой статье мы реализуем свой механизм, на котором построен Koin. Тем самым мы пройдём путь, который проходили его авторы при решении проблемы построения собственного DI.

Эта статья будет полезна тем, кто использует Koin в своих приложениях, и тем, кто хочет сделать свой простой DI. Ведь только понимание того, как что-то устроено, поможет создавать новые решения, учитывая при этом опыт прошлых разработок, и модифицировать существующие решения без трагических последствий.

Дополнительная (но от того не менее важная) цель статьи — показать, что базовый механизм, на котором построен Koin, не такой уж и страшный :)

https://habr.com/ru/companies/ozontech/articles/846482/

✍️ @kotlin_lib

Kotlin

01 Oct, 10:42


Kmplate

Это шаблон для легкого создания нового Kotlin Multiplatform проекта, основанного на Чистой Архитектуре с модульной структурой по функциям.

https://github.com/Tweener/kmplate

✍️ @kotlin_lib

Kotlin

25 Sep, 07:02


Как настроить DB Room для Kotlin Multiplatform Compose

https://www.youtube.com/watch?v=IHs0yPa2Nv4

✍️ @kotlin_lib

Kotlin

19 Sep, 18:15


Как использовать Coil в Compose Multiplatform

Coil - это мощная, быстрая и легкая библиотека для загрузки изображений, которую многие разработчики Android используют уже много лет. После появления compose multiplatform сообщество представило несколько библиотек загрузки изображений с открытым исходным кодом, таких как Kamel и Compose Image Loader.
Оставалась возможность использовать coil с помощью expect и actual, но только на Android.

https://proandroiddev.com/coil-for-compose-multiplatform-5745ea76356f

✍️ @kotlin_lib

Kotlin

17 Sep, 10:01


Как сделать Android-приложение быстрее и эффективнее?

Узнайте на открытом вебинаре 18 сентября в 20:00 мск, где мы разберем:

- как ProGuard/R8 минимизируют, оптимизируют и убирают неиспользуемый код;
- сравнение эффективности ProGuard и R8;
- как внедрять ProGuard/R8 в существующий проект.

Урок особенно полезен для Android-разработчиков с опытом работы от 1 года.

Встречаемся в преддверии старта курса «Специализация Android Developer». Все участники вебинара получат специальную цену на обучение!

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие https://vk.cc/cASYOY.

Kotlin

17 Sep, 09:02


Как использовать ресурсы в Compose Multiplatform

Ресурсы являются важной частью любого мобильного приложения, они включают в себя отрисовки, шрифты, текстовые файлы и многое другое. С появлением Compose Multiplatform у нас появился компонент ресурсов Compose, но он был экспериментальным и претерпел несколько изменений в разных версиях. Теперь, когда вышла следующая основная версия Compose, а именно 1.6.0-beta01, в разделе ресурсов появились некоторые важные изменения. Давайте рассмотрим их, а также то, как перенести и использовать новый способ доступа к ресурсам.

https://proandroiddev.com/how-to-use-resources-in-compose-multiplatform-77a6552b505d

✍️ @kotlin_lib

Kotlin

17 Sep, 07:50


Leveraging Lazy Modules and Background Loading in Kotlin with Koin

https://blog.kotzilla.io/lazy-modules-in-kotlin-with-koin

✍️ @kotlin_lib

Kotlin

12 Sep, 08:00


Веб-разработчик — это специалист, который создаёт новые и поддерживает уже существующие сайты. От лендинга до интернет-магазина или социальной сети. Откройте мир веб-разработки с мини-курсом Skillbox.

Регистрация и подробная программа: https://epic.st/aNtsUb?erid=2VtzqwzQphb

На мини-курсе вы:
📍Освоите основы языка разметки HTML и технологии CSS
📍Попробуете себя в одной из самых востребованных IT-специальностей, разберёте типовые задачи frontend- и backend-разработчиков
📍Создадите свои первые проекты — сайт, приложение и сервис — и на практике убедитесь, что стать веб-разработчиком реально в любом возрасте, независимо от опыта и знаний

Спикер — Даниил Пилипенко, основатель и директор центра подбора IT-специалистов SymbioWay. 19 лет работает в сфере Java- и веб-разработки, руководит командами разработки в разных проектах.

🎁 Всех участников ждут подарки:
— Сертификат на скидку 10 000 рублей на любой курс
— Доступ к изучению английского языка на год
— Персональная карьерная консультация

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880

Kotlin

11 Sep, 05:02


Kotlin Design Patterns: Flyweight

Шаблон в основном используется для балансировки использования памяти в вашем приложении. Речь идет о повторном использовании объектов (заметьте, я использовал слово 'объект', а не 'класс'). Вместо создания новых объектов каждый раз, у вас есть пул похожих объектов, которые можно повторно использовать."

https://proandroiddev.com/kotlin-design-patterns-flyweight-08aa2be80d80?gi=c636ae7e3bc3

✍️ @kotlin_lib

Kotlin

10 Sep, 15:01


if vs let” в Kotlin


Что использовать для объектов nullable-типа в Kotlin: if или let?

Давайте начнем с проблемы:


class IfOrLet {

private var string1: String? = "some string 1"

init {
if(string1 != null) {
makeString1Null()
println(string1) // prints null
}
}

private fun makeString1Null() {
string1 = null
}

}


https://medium.com/@khush.panchal123/if-vs-let-in-kotlin-3370077de55d

✍️ @kotlin_lib

Kotlin

08 Sep, 09:38


Kotlin Coroutines 101: Асинхронное программирование на практике.

Когда вы начинаете изучать Kotlin или Android, вам неизбежно придется перемещать тяжелые задачи с основного потока (UI Thread). Ведь вам не хочется, чтобы пользователи жаловались на медленную работу вашего приложения!

Отправьтесь в путешествие от новичка до эксперта по Kotlin корутинам с помощью этой всесторонней статьи. Мы проведем вас через основные концепции, предоставляя практические примеры кода на каждом шагу.

https://proandroiddev.com/kotlin-coroutines-101-async-programming-in-practice-062b359d502b

✍️ @kotlin_lib

Kotlin

03 Sep, 06:42


Как новый компилятор K2 ускоряет компиляцию Kotlin на 94%

По замерам JB, K2 ускоряет компиляцию на 94%. Также он позволит ускорить разработку новых языковых фич и унифицировать все платформы, предоставляя улучшенную архитектуру для мультиплатформенных проектов.

Но мало кто погружался в то, как работает K2, и чем он отличается от K1.

Эта статья более освещает нюансы работы компилятора, которые будут полезны разработчикам для понимания, что же JB улучшают под капотом, и как это работает.

https://habr.com/ru/companies/kts/articles/813085/

✍️ @kotlin_lib

Kotlin

29 Aug, 16:30


Mapping объектов с помощью MapStruct

В огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса.
В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает mapp-ить объекты.
Библиотека очень гибка в настройке. И позволяет минимизировать написание шаблонного кода.
Вот пример того, как реализовать gradle зависимости в вашем проекте.

https://habr.com/ru/articles/839362/

original https://medium.com/@1mailanton/object-mapping-with-mapstruct-d4dcb9efa1da

✍️ @kotlin_lib

Kotlin

19 Aug, 07:17


Пошаговое руководство по выполнению анализа данных с помощью Kotlin DataFrame

Это первая из серии обучающих статей о том, как легко манипулировать и визуализировать данные с помощью библиотек Kotlin DataFrame и Kandy. Эти уроки предназначены для обычных разработчиков на Kotlin, поэтому предыдущий опыт в области анализа данных или работы с аналогичными фреймворками (например, pandas или Apache Spark) не требуется. Однако, вы должны быть знакомы с языком Kotlin и ранее создавать проекты на Kotlin в IntelliJ IDEA.

https://blog.jetbrains.com/kotlin/2024/04/a-step-by-step-guide-to-performing-data-analysis-with-kotlin-dataframe/

✍️ @kotlin_lib

Kotlin

17 Aug, 09:26


Kotlin Coroutine mechanisms: runBlocking v. launch

https://medium.com/google-developer-experts/kotlin-coroutine-mechanisms-runblocking-v-launch-386e1ae8e3c2

✍️ @kotlin_lib

Kotlin

05 Aug, 11:51


KMP (Kotlin Multiplatform) Firebase setup

Почти каждое мобильное приложение сегодня в той или иной мере использует Firebase, будь то реализация CRUD-операций через NoSQL-базу данных, анализ A/B-тестов или обнаружение аварийных ситуаций. Он стал важнейшим компонентом для успешного запуска вашего приложения.

https://funkymuse.dev/posts/kmp-firebase/

✍️ @kotlin_lib

Kotlin

28 Jul, 12:25


Роман Елизаров про Kotlin, корутины и работу в Jetbrains / ЧТУК

00:00:00 Как стал программистом
00:11:39 Алгоритмы
00:24:47 Собеседования
00:26:44 Как попал в JetBrains
00:30:13 "Котлин - новый Си?"
00:33:42 Tracing GC в Kotlin
00:36:49 "Что революционного в корутинах?"
00:45:24 Почему Котлин популярный в мобилке
00:48:16 Менеджмент
00:57:19 История и перспективы Kotlin
01:02:45 Уход из JetBrains и олимпиадное программирование
01:11:36 Яндекс
01:15:11 Новое поколение разработчиков
01:21:16 "Современные айти технологии устойчивы"
01:24:23 "Своя" разработка и Open Source
01:35:12 ИИ в разработке
01:51:55 Вопросы подписчиков
02:00:11 Всем пока

https://www.youtube.com/watch?v=PlykPBtsL8E

✍️ @kotlin_lib

Kotlin

23 Jul, 20:52


Vico

Легкая расширяемая библиотека Kotlin для создания диаграмм.
Библиотека совместима как с Jetpack Compose, так и с системой представлений, при этом 2 её основных модуля — compose и views, — являются независимыми.

https://github.com/patrykandpatrick/vico

✍️ @kotlin_lib

Kotlin

19 Jul, 11:16


Наброски кода с помощью Kotlin Notebooks: Руководство для разработчиков

Как разработчик вы, возможно, уже знакомы с Kotlin Notebooks, а может быть, даже немного экспериментировали с ними. Но, скорее всего, вы все еще пытаетесь понять, как эффективно применять их в реальных сценариях. Часто предполагается, что они полезны в основном для специалистов по анализу данных и аналитиков. Я тоже был на этом пути. На самом деле, мне пришлось глубоко погрузиться в машинное обучение, обучить модели и показать, как блокноты Kotlin могут быть полезны, прежде чем я дал им должный шанс. Возможно, я расскажу об этом подробнее в другом посте. Пока же я хочу подчеркнуть, что обширный опыт в машинном обучении не обязателен для понимания концепций.

https://dev.to/daredev/code-sketching-with-kotlin-notebooks-developer-guide-530n

✍️ @kotlin_lib

2,065

subscribers

200

photos

86

videos