Kotlin
2.17K subscribers
273 photos
123 videos
18 files
396 links
Подборки полезного материала по Kotlin. По всем вопросам @evgenycarter
Download Telegram
Мобильная мультиплатформенная разработка в McDonald's

Принятие отзывчивого, нативного пользовательского интерфейса для глобального мобильного приложения позволяет McDonald's создать кодовую базу, которая может использоваться на различных платформах, устраняя необходимость в дублировании кодовой базы.

https://medium.com/mcdonalds-technical-blog/mobile-multiplatform-development-at-mcdonalds-3b72c8d44ebc

✍️ @kotlin_lib
👍1
Seal — загрузчик аудио или видео файлов для Android в цветах Material You. Умеет скачивать видео или аудио со стриминговых платформ (в том числе плейлисты целиком), встраивать субтитры в скачиваемое видео, динамически менять цвета в UI в соответствии с заветами Material Design 3. Написан на Kotlin.

https://github.com/JunkFood02/Seal

✍️ @kotlin_lib
👍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
👍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