Kotlin
2.17K subscribers
273 photos
123 videos
18 files
396 links
Подборки полезного материала по Kotlin. По всем вопросам @evgenycarter
Download 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
👍121
Главный доклад KotlinConf 2023

На открытии KotlinConf 2023 представители JetBrains сделали несколько интересных анонсов о языке Kotlin и развитии экосистемы вокруг него.

0:00 - Broadcast start
0:18 - Intro 2023
1:05 - We Are Back!
5:17 - Kotlin Stats
7:03 - K2 Compiler
8:56 - Kotlin 2.0
11:40 - The Future of Kotlin
12:55 - Static Extensions
14:27 - Collection Literrals
16:25 - Name-Based Destructuring
18:02 - Context Receivers
19:31 - Explicit Fields
21:02 - Compiler Plugins
24:37 - Data Exploration
25:43 - Kotlin Notebooks
28:33 - Grace Kloba (Google)
29:16 - Google Investments into Kotlin
33:02 - Google Kotlin Stistics
35:53 - Default Kotlin DSL
36:56 - Kotlin at Google
40:47 - Kotlin Ecosystem
43:17 - Kotlin Foundation Grant Programm
45:24 - Join Kotlin Foundation
48:23 - Kotlin Multiplatform
51:48 - Multiplatform Libraries
52:33 - Future of Kotlin Multiplatform
53:51 - Compose Multiplatform
55:14 - Compose Multiplatform for iOS
57:14 - Kotlin + WebAssembly

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


✍️ @kotlin_lib
👍3
10 полезных функций расширения Kotlin для упрощения вашего кода

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

https://medium.com/@summitkumar/10-useful-kotlin-extension-functions-for-simplifying-your-code-ff68a2a44bc7

✍️ @kotlin_lib
👍2👎2
Redukks: Redux/Uniflow для Kotlin Multiplatform

Redukks — простая, типобезопасная и тестируемая реализация архитектуры Redux/Uniflow для Kotlin Multiplatform. Она упрощает создание хранилищ, редукторов и действий, а также предоставляет простой способ их тестирования.

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

https://github.com/ianrumac/redukks/

✍️ @kotlin_lib
👍4🔥3
InsetsX

Библиотека с поддержкой инсетов на iOS и Android.

https://github.com/mori-atsushi/insetsx

✍️ @kotlin_lib
👍4
Reader

Многоплатформенное (Android и iOS) приложение для чтения RSS-файлов от компании Compose

https://github.com/msasikanth/reader

✍️ @kotlin_lib
👍61
Achieving Platform-Specific Implementations with Koin in KMM

В процессе миграции проекта Quotes на KMM (Kotlin Mobile Multiplatform) мне пришлось реализовывать разные классы для каждой платформы, а для инъекции зависимостей я использовал Koin.

https://proandroiddev.com/achieving-platform-specific-implementations-with-koin-in-kmm-5cb029ba4f3b

✍️ @kotlin_lib
👍3
10 полезных функций расширения Kotlin

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

https://medium.com/@summitkumar/10-useful-kotlin-extension-functions-for-simplifying-your-code-ff68a2a44bc7

✍️ @kotlin_lib
👍2👎1🤔1
Объекты данных в Kotlin

Какую проблему призваны решить объекты данных? Ниже, в типичном примере иерархии запечатанных классов, используется sealed interface (мог быть и sealed class), которым определяются возможные состояния экрана профиля: data class для состояния успеха, а object для состояний ошибки и загрузки.

https://medium.com/@domen.lanisnik/data-objects-in-kotlin-1a549bfad657

✍️ @kotlin_lib
👍4
Вопросы и ответы для собеседования по Kotlin

Часть 1 и Часть 2 https://t.iss.one/kotlin_lib/178

Часть 3 https://habr.com/ru/articles/728742/
Часть 4 https://habr.com/ru/articles/736392/

✍️ @kotlin_lib
👍6
Programming Android ... by Laurence Pierre-Oli...pdf
7.5 MB
Programming Android with Kotlin: Achieving Structured Concurrency with Coroutines
Автор: Pierre-Olivier Laurence (2022)

Разработка приложений для мобильной операционной системы Android может показаться сложной задачей, особенно если для этого необходимо изучить новый язык программирования: Kotlin, который теперь является официальным языком разработки Android. С помощью этой практической книги разработчики Android узнают, как перейти с Java на Kotlin, в том числе о том, как Kotlin обеспечивает реальное преимущество для получения контроля над асинхронными вычислениями.

Автор исследует реализацию наиболее распространенных задач в нативной разработке Android и покажет, как Kotlin может помочь вам решить проблемы параллелизма. Уделяя особое внимание структурированному параллелизму, новой парадигме асинхронного программирования, эта книга проведет вас через одну из самых мощных конструкций Kotlin - coroutines.

✍️ @kotlin_lib
👍4
Как использовать функциональное программирование в Kotlin для написания более качественного и чистого кода

https://doordash.engineering/2022/03/22/how-to-leverage-functional-programming-in-kotlin-to-write-better-cleaner-code/

✍️ @kotlin_lib
Производительность Android приложений Kotlin в сравнении с С++ или цена управления памятью

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

Поиск в русскоязычном интернете не дал почти ничего, всё, так или иначе сводится к перемешиванию, примитивных типов в цикле – пузырьковая сортировка и другие классические алгоритмы. В целом такие эксперименты приводят к выводу о том, что использование JNI имеет слишком высокую стоимость и Java работает быстрее.

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

✍️ @kotlin_lib
👍61
Kotlin Inline, Noinline, Crossinline, Reified

In Kotlin, inline functions are used to improve performance by avoiding the overhead of creating objects for lambdas or function objects. The inline keyword is used to mark a function as inline, and the function is then copied into the call site instead of being executed as a separate function call.

https://medium.com/@manuchekhrdev/kotlin-inline-noinline-crossinline-reified-f70dd33f94a2

✍️ @kotlin_lib
👍3
Mocking is not rocket science: Basics

https://blog.kotlin-academy.com/mocking-is-not-rocket-science-basics-ae55d0aadf2b


Mockk - это новая библиотека с открытым исходным кодом, нацеленная на то, чтобы сделать mocking в Kotlin великолепным.

https://github.com/mockk/mockk
https://mockk.io/

✍️ @kotlin_lib
👍2