Мобильная мультиплатформенная разработка в 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
State Flow and Shared Flow in Kotlin
https://levelup.gitconnected.com/state-flow-and-shared-flow-in-kotlin-f603c7aa7299
✍️ @kotlin_lib
https://levelup.gitconnected.com/state-flow-and-shared-flow-in-kotlin-f603c7aa7299
✍️ @kotlin_lib
👍3
Redukks: Redux/Uniflow для Kotlin Multiplatform
Redukks — простая, типобезопасная и тестируемая реализация архитектуры Redux/Uniflow для Kotlin Multiplatform. Она упрощает создание хранилищ, редукторов и действий, а также предоставляет простой способ их тестирования.
Архитектура Uniflow основана на одной простой идее — ваше приложение представляет собой постоянный цикл данных, которые текут в одном направлении. Состояние и его изменения управляются пользовательским интерфейсом, а пользовательский интерфейс управляется состоянием. Это позволяет вам иметь единый источник истины и предоставляет вам простой способ думать и рассуждать о вашем приложении.
https://github.com/ianrumac/redukks/
✍️ @kotlin_lib
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
Библиотека с поддержкой инсетов на iOS и Android.
https://github.com/mori-atsushi/insetsx
✍️ @kotlin_lib
👍4
Reader
Многоплатформенное (Android и iOS) приложение для чтения RSS-файлов от компании Compose
https://github.com/msasikanth/reader
✍️ @kotlin_lib
Многоплатформенное (Android и iOS) приложение для чтения RSS-файлов от компании Compose
https://github.com/msasikanth/reader
✍️ @kotlin_lib
👍6❤1
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
В процессе миграции проекта 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
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
Какую проблему призваны решить объекты данных? Ниже, в типичном примере иерархии запечатанных классов, используется sealed interface (мог быть и sealed class), которым определяются возможные состояния экрана профиля: data class для состояния успеха, а object для состояний ошибки и загрузки.
https://medium.com/@domen.lanisnik/data-objects-in-kotlin-1a549bfad657
✍️ @kotlin_lib
👍4