Почему так удобно использовать паттерн MVI в KMM
Меня зовут Стефан Серхир. Я мобильный разработчик в KTS. Пишу под Android, iOS и КММ (Kotlin Multiplatform Mobile) и веду курсы в школе Metaclass. Недавно мы провели вебинар, в котором разобрали Model-View-Intent (MVI) в KMM на практике и посмотрели, как это выглядит в коде iOS и Android. Статья написана по мотивам этого вебинара.
https://habr.com/ru/companies/kts/articles/729832/
✍️ @kotlin_lib
Меня зовут Стефан Серхир. Я мобильный разработчик в KTS. Пишу под Android, iOS и КММ (Kotlin Multiplatform Mobile) и веду курсы в школе Metaclass. Недавно мы провели вебинар, в котором разобрали Model-View-Intent (MVI) в KMM на практике и посмотрели, как это выглядит в коде iOS и Android. Статья написана по мотивам этого вебинара.
https://habr.com/ru/companies/kts/articles/729832/
✍️ @kotlin_lib
👍3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Kotlin DSL is Now the Default for New Gradle Builds
https://android-developers.googleblog.com/2023/04/kotlin-dsl-is-now-default-for-new-gradle-builds.html
✍️ @kotlin_lib
https://android-developers.googleblog.com/2023/04/kotlin-dsl-is-now-default-for-new-gradle-builds.html
✍️ @kotlin_lib
🔥2
Четыре платформы — один код. Что такое Compose Multiplatform?
Разработчики давно грезили о возможности писать кроссплатформенный код — такой, который запускался и работал бы одинаково в любой операционной системе любой архитектуры. Сегодня принципом «Write once, run anywhere», когда-то прогремевшим в связи с появлением языка Java, трудно кого-либо удивить. И все же есть ниша, в которой не так много кроссплатформенных технологий: это UI-разработка.
https://habr.com/ru/companies/timeweb/articles/734818/
✍️ @kotlin_lib
Разработчики давно грезили о возможности писать кроссплатформенный код — такой, который запускался и работал бы одинаково в любой операционной системе любой архитектуры. Сегодня принципом «Write once, run anywhere», когда-то прогремевшим в связи с появлением языка Java, трудно кого-либо удивить. И все же есть ниша, в которой не так много кроссплатформенных технологий: это UI-разработка.
https://habr.com/ru/companies/timeweb/articles/734818/
✍️ @kotlin_lib
👍5
🚊 Stream Result
“Железнодорожно-ориентированная” библиотека для моделирования и простой обработки успехов/неудач для Kotlin, Android и Retrofit.
Железнодорожно-ориентированное программирование — это функциональный подход к обработке success/failure нормализованными способами, всегда позволяющий предсказать результат. Эта библиотека поможет вам реализовать железнодорожно-ориентированные модели и функции в Kotlin и Android (особенно с помощью Retrofit).
https://github.com/getStream/stream-result
✍️ @kotlin_lib
“Железнодорожно-ориентированная” библиотека для моделирования и простой обработки успехов/неудач для Kotlin, Android и Retrofit.
Железнодорожно-ориентированное программирование — это функциональный подход к обработке success/failure нормализованными способами, всегда позволяющий предсказать результат. Эта библиотека поможет вам реализовать железнодорожно-ориентированные модели и функции в Kotlin и Android (особенно с помощью Retrofit).
https://github.com/getStream/stream-result
✍️ @kotlin_lib
👍3🔥2
Мобильная мультиплатформенная разработка в McDonald's
Принятие отзывчивого, нативного пользовательского интерфейса для глобального мобильного приложения позволяет McDonald's создать кодовую базу, которая может использоваться на различных платформах, устраняя необходимость в дублировании кодовой базы.
https://medium.com/mcdonalds-technical-blog/mobile-multiplatform-development-at-mcdonalds-3b72c8d44ebc
✍️ @kotlin_lib
Принятие отзывчивого, нативного пользовательского интерфейса для глобального мобильного приложения позволяет 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
https://github.com/JunkFood02/Seal
✍️ @kotlin_lib
👍5❤1
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN 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
Урок 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
👍12❤1
Главный доклад 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
На открытии 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
Kotlin - это мощный язык программирования, который предоставляет много функциональных возможностей из коробки. Однако истинная сила Kotlin заключается в его функциях расширения, которые позволяют разработчикам добавлять функциональность к существующим классам и объектам без создания подклассов или изменения исходного кода. Вот 10 полезных расширений Kotlin, которые сделают ваш код более лаконичным и читабельным.
https://medium.com/@summitkumar/10-useful-kotlin-extension-functions-for-simplifying-your-code-ff68a2a44bc7
✍️ @kotlin_lib
👍2👎2