Всем привет в новом году. Праздники кончились и канал возвращается к своему обычному расписанию.
Начем год с статьи Maximizing Code Sharing between Android and iOS with Kotlin Multiplatform - она может быть интересна не только новичкам в kotlin multiplatform.
В статье есть:
- Краткий разбор что такое kotlin multiplatform и как он работает;
- Примеры что может находиться в общем коде, а что на платформах останется;
- Как настроить проект с нуля (с корректным переносом android ресурсов и манифеста в
- Пример реализации сетевого запроса (как обычно ktor-client + serialization);
- Пример реализации
- Пример проброса на iOS-swift сторону
- Настройка CocoaPods интеграции с iOS проектом;
- Набор ссылок на другие полезные ресурсы (все они уже были упомянуты в канале).
#posts
Начем год с статьи Maximizing Code Sharing between Android and iOS with Kotlin Multiplatform - она может быть интересна не только новичкам в kotlin multiplatform.
В статье есть:
- Краткий разбор что такое kotlin multiplatform и как он работает;
- Примеры что может находиться в общем коде, а что на платформах останется;
- Как настроить проект с нуля (с корректным переносом android ресурсов и манифеста в
androidMain
);- Пример реализации сетевого запроса (как обычно ktor-client + serialization);
- Пример реализации
ViewModel
с использованием AndroidArchitectureComponents на android (как в moko-mvvm);- Пример проброса на iOS-swift сторону
Flow
(обход стирания suspend функций при компиляции в iOS framework);- Настройка CocoaPods интеграции с iOS проектом;
- Набор ссылок на другие полезные ресурсы (все они уже были упомянуты в канале).
#posts
DEV Community
Maximizing Code Sharing between Android and iOS with Kotlin Multiplatform
This article aims to discuss code sharing between Android and iOS using Kotlin Multiplatform. You may...
Summer - kotlin multiplatform библиотека, предоставляющая компоненты для построения приложения с MVP подходом.
В библиотеке есть следующие компоненты:
- View
- Presenter
- UseCase
- Router
View является составной - это два интерфейса, один это State и другой - Methods.
Сразу предоставляются IDE шаблоны для быстрого создания основы.
#libs
В библиотеке есть следующие компоненты:
- View
- Presenter
- UseCase
- Router
View является составной - это два интерфейса, один это State и другой - Methods.
Сразу предоставляются IDE шаблоны для быстрого создания основы.
#libs
GitHub
GitHub - adevone/summer
Contribute to adevone/summer development by creating an account on GitHub.
Kotlin Multiplatform — MVVM & Clean Architecture - статья-пример реализации мобильных приложений по подходам MVVM и чистой архитектуры.
В примере использовались библиотеки kodein (для внедрения зависимостей), ktor-client, serialization, coroutines, moko-mvvm
И дополнение к предыдущему посту про библиотеку Summer, от автора библиотеки:
iOS часть в процессе тестирования на реальном проекте и возможны небольшие изменения АПИ библиотеки. А так же на момент публикации не было ссылок на плагин и базовые классы для iOS, но сейчас они уже указаны в readme.
#posts #libs
В примере использовались библиотеки kodein (для внедрения зависимостей), ktor-client, serialization, coroutines, moko-mvvm
И дополнение к предыдущему посту про библиотеку Summer, от автора библиотеки:
iOS часть в процессе тестирования на реальном проекте и возможны небольшие изменения АПИ библиотеки. А так же на момент публикации не было ссылок на плагин и базовые классы для iOS, но сейчас они уже указаны в readme.
#posts #libs
Medium
Kotlin Multiplatform — MVVM & Clean Architecture
During the KotlinConf 2019 there were several talks about Kotlin Multiplatform, in one of them Alexander talked about different libraries…
Using Gradle Metadata for a Kotlin multiplatform project - статья описывающая как Gradle Metadata позволяет упростить работу с зависимостями multiplatform проектов.
Детальнее про управление зависимостями можно прочитать в документации, а так же послушать в выступлении Ильи Матвеева - Мультиплатформенные проекты и Gradle.
Если интересно как устроены метаданные в деталях - можно ознакомиться на сайте gradle.
#posts #videos
Детальнее про управление зависимостями можно прочитать в документации, а так же послушать в выступлении Ильи Матвеева - Мультиплатформенные проекты и Gradle.
Если интересно как устроены метаданные в деталях - можно ознакомиться на сайте gradle.
#posts #videos
blog.data2viz.io
Using Gradle Metadata for a Kotlin multiplatform project
Data2viz is a Kotlin multimodule/multiplatform library. That means a lot of dependencies
and artifacts. Let’s see how Gradle Metadata simplifies the
dependencies management.
Before Gradle Metadata :
Android project
dependencies {
...
api "io.d…
and artifacts. Let’s see how Gradle Metadata simplifies the
dependencies management.
Before Gradle Metadata :
Android project
dependencies {
...
api "io.d…
Kotlin Multiplatform Android/iOS: Testing - статья о написании тестов на общий код.
На примере тестирования класса репозитория разобрано как можно создавать mock в общем коде, тестировать coroutines и проверять результат асинхронной операции без coroutine.
#posts
На примере тестирования класса репозитория разобрано как можно создавать mock в общем коде, тестировать coroutines и проверять результат асинхронной операции без coroutine.
#posts
Medium
Kotlin Multiplatform Android/iOS: Testing
How to write tests within Kotlin Multiplatform
Разбиение приложения на отдельные модули – типовая задача разработки. И разработка на kotlin multiplatform не исключение.
В статье Building an App with Kotlin Multiplatform: Structuring our app разобран кейс разделения приложения на модули, с учетом имеющихся ограничений. Описанное приложение доступно на github.
Так же для разработки многомодульного приложения можете использовать moko-template (шаблон с заложенной многомодульностью).
#posts
В статье Building an App with Kotlin Multiplatform: Structuring our app разобран кейс разделения приложения на модули, с учетом имеющихся ограничений. Описанное приложение доступно на github.
Так же для разработки многомодульного приложения можете использовать moko-template (шаблон с заложенной многомодульностью).
#posts
Joe Birch
Building an App with Kotlin Multiplatform: Structuring our app
Over the past few months I've been seeing more and more talk of Kotlin multiplatform online. With this rise in conversations on the topic, I naturally became more and more curious about the technology. I recently started planning out one of my next side-projects…
В Twitter запущен тред по сбору информации о использовании Kotlin Multiplatform в мобильной разработке. Можете присоединиться и рассказать о своем приложении, а так же можно прочитать о том что у других.
Выборка:
- Tpaga - платежное приложение, использует KMP, пока доступно только на android;
- WalpyApp - коллекция wallpapers, использует KMP, пока доступно только на android;
- Commit 2019 - приложение для конференции, использует KMP, доступно на android и ios, opensource;
- Eneco - приложение контроля и оплаты энергии, использует KMP, доступно на android и ios;
- Clue - приложение для женщин, использует KMP, доступно на android и ios.
И помимо выбранных есть еще ряд кейсов использования KMP для шаринга кода, в пока не опубликованных проектах либо приватных. Рекомендую почитать тред самим и, если есть чем поделиться, сообщить свой кейс.
#posts
Выборка:
- Tpaga - платежное приложение, использует KMP, пока доступно только на android;
- WalpyApp - коллекция wallpapers, использует KMP, пока доступно только на android;
- Commit 2019 - приложение для конференции, использует KMP, доступно на android и ios, opensource;
- Eneco - приложение контроля и оплаты энергии, использует KMP, доступно на android и ios;
- Clue - приложение для женщин, использует KMP, доступно на android и ios.
И помимо выбранных есть еще ряд кейсов использования KMP для шаринга кода, в пока не опубликованных проектах либо приватных. Рекомендую почитать тред самим и, если есть чем поделиться, сообщить свой кейс.
#posts
Twitter
Kotlin
📣Call for #kotlinmultiplatform use cases! Have you tried Kotlin Multiplatform for your mobile app? Please tell us about it. We are looking for people who are up for a short, use-case interview. If you’re interested, please reply to this tweet with the name…
Forwarded from Anastasiia Zakharova
Используете ли вы флаг -Xobjc-generics в своих проектах?
Anonymous Poll
37%
Использую
63%
Не использую
JetBrains проводит опрос про Kotlin - https://surveys.jetbrains.com/s3/e6-kotlin-census-2019
Jetbrains
Kotlin Census 2019
Kotlin Census 2019.
Kevin Galligan продолжает радовать своими материалами по работе с многопоточностью в Kotlin/Native. Статья Kapture - Kotlin/Native State Capture описывает плагин для IDE, который подскажет места где будет нежелательная заморозка объектов (freeze).
Когда данный плагин будет публично доступен он упростит работу многим. А на данный момент можно записаться на закрытый тест.
#posts #ide
Когда данный плагин будет публично доступен он упростит работу многим. А на данный момент можно записаться на закрытый тест.
#posts #ide
DEV Community
Kapture - Kotlin/Native State Capture
Intellij plugin to help avoid capturing and freezing state unintentionally
Новые материалы по работе с памятью в Kotlin/Native. Сразу две статьи:
• Kotlin/Native - Transferring State
• Kotlin/Native - Isolated State
Обе статьи на примерах показывают подходы к работе с изменяемым состоянием в многопоточной среде.
Разобран механизм
#posts #libs
• Kotlin/Native - Transferring State
• Kotlin/Native - Isolated State
Обе статьи на примерах показывают подходы к работе с изменяемым состоянием в многопоточной среде.
Разобран механизм
DetachedObjectGraph
и представлены возможности нового релиза библиотеки Stately в той же задаче. Сравнение сделано по производительности.#posts #libs
DEV Community 👩💻👨💻
Kotlin/Native - Transferring State
About transferring mutable state between threads.
В OpenSource проекте PeopleInSpace недавно был добавлен таргет watchOS - приложение для часов, которое получает из сети данные и сохраняет их в локальную бд, а UI построен на SwiftUI.
В статье Adding some Storage (to) Space описано как происходило добавление базы данных к проекту.
Так же можно почитать предыдущую статью про SQLDelight от этого автора - Introduction to Multiplatform Persistence with SQLDelight.
Сам же проект PeopleInSpace является небольшим и понятным примером как можно реализовать общую логику включающую и запросы к серверу и постоянное хранение под мобильные платформы и Apple Watch.
#posts
В статье Adding some Storage (to) Space описано как происходило добавление базы данных к проекту.
Так же можно почитать предыдущую статью про SQLDelight от этого автора - Introduction to Multiplatform Persistence with SQLDelight.
Сам же проект PeopleInSpace является небольшим и понятным примером как можно реализовать общую логику включающую и запросы к серверу и постоянное хранение под мобильные платформы и Apple Watch.
#posts
GitHub
GitHub - joreilly/PeopleInSpace: Kotlin Multiplatform sample with SwiftUI, Jetpack Compose, Compose for Wear, Compose for Desktop…
Kotlin Multiplatform sample with SwiftUI, Jetpack Compose, Compose for Wear, Compose for Desktop, and Compose for Web clients along with Ktor backend. - joreilly/PeopleInSpace
firebase-multiplatform - набор библиотек, который предоставляет доступ до Firebase библиотек из common кода.
Уже сейчас доступны под обе мобильные платформы:
• core;
• auth;
• storage.
Так же для мобильных платформ доступен FirestoreKMP (от другого автора).
#libs
Уже сейчас доступны под обе мобильные платформы:
• core;
• auth;
• storage.
Так же для мобильных платформ доступен FirestoreKMP (от другого автора).
#libs
GitHub
GitHub - lamba92/firebase-multiplatform
Contribute to lamba92/firebase-multiplatform development by creating an account on GitHub.
Building a native iOS app with Kotlin Multiplatform - видеозапись (на английском) выступления Lammert Westerhoff.
В видео есть:
• Вводная "что такое kotlin multiplatform";
• Во что компилируется для iOS и некоторые особенности;
• Подход позволяющий обращаться к строкам и изображениям из общего кода;
• Сравнение с нативной и ReactNative разработкой.
#videos
В видео есть:
• Вводная "что такое kotlin multiplatform";
• Во что компилируется для iOS и некоторые особенности;
• Подход позволяющий обращаться к строкам и изображениям из общего кода;
• Сравнение с нативной и ReactNative разработкой.
#videos
YouTube
Building a native iOS app with Kotlin Multiplatform, Lammert Westerhoff (English)
Lammert shows how you can build platform native apps for both Android and iOS using Kotlin. The apps will share some common code and on the iOS it's easy to interact with Swift code. It will all still compile down to native code.
Intro to Kotlin Multiplatform and how to share code between Android and iOS – выступление-вводная про kotlin multiplatform. Имеет хороший итог в виде плюсов и минусов, а остальное уже множество раз говорилось.
FlowRedux – библиотека для построения стейтмашины с использованием Flow. Мультиплатформенная, под все возможные таргеты кроме JS. Может быть полезна для построения unidirectional data flow.
#videos #libs
FlowRedux – библиотека для построения стейтмашины с использованием Flow. Мультиплатформенная, под все возможные таргеты кроме JS. Может быть полезна для построения unidirectional data flow.
#videos #libs
YouTube
Julien Arzul - Intro to Kotlin Multiplatform and how to share code between Android and iOS
Kotlin Multiplatform (that you probably refer to as Kotlin Native) is one of the new solution that appeared in the cross-platform toolkit. It is still recent but Kotlin Native hit beta with Kotlin 1.3 back in February.
This talk will introduce Kotlin Multiplatform…
This talk will introduce Kotlin Multiplatform…
Какой вариант описания constraints лучше?
Все вызовы такого рода производятся в специальном блоке constraints { ... }
Все вызовы такого рода производятся в специальном блоке constraints { ... }
Anonymous Poll
25%
emailInput bottomToTop passwordInput offset 8
75%
emailInput.bottomToTop(passwordInput).offset(8)
Touchlab открыли KaMPKit - набор гайдов и примеров кода для старта работы на мультиплатформе
#samples
#samples
GitHub
GitHub - touchlab/KaMPKit: KaMP Kit by Touchlab. A collection of code & tools designed to get your mobile team started quickly…
KaMP Kit by Touchlab. A collection of code & tools designed to get your mobile team started quickly w/Kotlin Multiplatform - touchlab/KaMPKit
Forwarded from Liliia Abdulina
Привет всем, команда мобильной мультиплатформы на связи. :)
У нас есть гипотеза, что у экосистемы мультиплатформенных библиотек есть большой потенциал развития. Но чтобы правильно раскрыть этот потенциал, нам нужно побольше узнать про опыт пользователей. Пожалуйста, расскажите нам о своей жизни в мире мультиплатформенных библиотек, заполнив этот опрос: https://surveys.jetbrains.com/s3/kotlin-mobile-multiplatform-libraries-survey-tg. Опрос небольшой, но требует некоторой рефлексии. Зато в конце вы получите нашу версию списка мультиплатформенных библиотек для iOS + Android, возможно открыв для себя что-то новое, и ещё у вас будет шанс поучаствовать в розыгрыше годового all products pack. :)
У нас есть гипотеза, что у экосистемы мультиплатформенных библиотек есть большой потенциал развития. Но чтобы правильно раскрыть этот потенциал, нам нужно побольше узнать про опыт пользователей. Пожалуйста, расскажите нам о своей жизни в мире мультиплатформенных библиотек, заполнив этот опрос: https://surveys.jetbrains.com/s3/kotlin-mobile-multiplatform-libraries-survey-tg. Опрос небольшой, но требует некоторой рефлексии. Зато в конце вы получите нашу версию списка мультиплатформенных библиотек для iOS + Android, возможно открыв для себя что-то новое, и ещё у вас будет шанс поучаствовать в розыгрыше годового all products pack. :)
Jetbrains
Kotlin Mobile Multiplatform libraries survey
Kotlin Mobile Multiplatform libraries survey.
Kotlin multiplatform: Android + iOS + Backend в одном монорепозитории - выступление про mpp включающее:
- Проблематику дублирования бизнеслогики и обзор доступных решений;
- Разбор как mpp ложится на идею Clean Architecture;
- Особенности многопоточности Kotlin/Native;
- Сравнение MVP, MVVM, MVI для Kotlin Multiplatform;
- Подробный разбор реализации MVI в mpp;
- Про Rx в mpp (Reaktive);
- Подробный разбор кода приложения (Android, iOS, Backend, тесты).
Код доступен тут: MultiplatformTodoApp
#videos #samples
- Проблематику дублирования бизнеслогики и обзор доступных решений;
- Разбор как mpp ложится на идею Clean Architecture;
- Особенности многопоточности Kotlin/Native;
- Сравнение MVP, MVVM, MVI для Kotlin Multiplatform;
- Подробный разбор реализации MVI в mpp;
- Про Rx в mpp (Reaktive);
- Подробный разбор кода приложения (Android, iOS, Backend, тесты).
Код доступен тут: MultiplatformTodoApp
#videos #samples
YouTube
Kotlin multiplatform: Android + iOS + Backend в одном монорепозитории
Обсудим технологий и паттернов проектирования: система сборки gradle для мультиплатформы, моно-репозиторий, Clean Architecture, MVI, Spring Boot, SwiftUI, автоматические тесты в мультиплатформе.
Всем привет! Котлин тим снова на связи, нам опять нужна помощь комьюнити. И это опять опрос :)
Наши лучшие инженеры (в свободное от нужд мобильных разработчиков время, конечно) уже работают над решением, которое позволит залезать в мозг каждому пользователю мультиплатформы напрямую и доставать оттуда всю необходимую информацию - и тогда опросы будут не нужны. Но к 1.4 мы, увы, не успеем его выкатить, а кое-какие решения надо принимать уже сейчас.
Сегодня решаем, какая структура мультиплатформенного проекта самая-самая. А то в одном сэмпле shared-код намертво срастается с Android-приложением, в другом - полная гранулярность, начинающие пользователи недоумевают, как же всё-таки правильно - и грустят.
По ссылке всего один обязательный вопрос и 100% нет никаких паззлеров про Kotlin/Native memory модель, я проверила: https://forms.gle/8ExHPzZT44ercsqE6
Наши лучшие инженеры (в свободное от нужд мобильных разработчиков время, конечно) уже работают над решением, которое позволит залезать в мозг каждому пользователю мультиплатформы напрямую и доставать оттуда всю необходимую информацию - и тогда опросы будут не нужны. Но к 1.4 мы, увы, не успеем его выкатить, а кое-какие решения надо принимать уже сейчас.
Сегодня решаем, какая структура мультиплатформенного проекта самая-самая. А то в одном сэмпле shared-код намертво срастается с Android-приложением, в другом - полная гранулярность, начинающие пользователи недоумевают, как же всё-таки правильно - и грустят.
По ссылке всего один обязательный вопрос и 100% нет никаких паззлеров про Kotlin/Native memory модель, я проверила: https://forms.gle/8ExHPzZT44ercsqE6
Google Docs
How to structure mobile apps with Kotlin Multiplatform
Hello there! We are the folks behind Kotlin Multiplatform/Mobile - and we need your help (yet again, but this time there is only one mandatory question - and definitely no K/N memory model puzzlers. So it will be easier)
As you probably know, there are many…
As you probably know, there are many…
Getting Started with Kotlin on iOS, Part 1 - начало цикла статей о начале разработки на Kotlin Multiplatform для iOS разработчиков от iOS разработчика Autodesk.
В первой статье проведено сравнение языков Swift и Kotlin.
Так-же автор опубликовал небольшой проект-шаблон KotlinMobileBootstrap - общая библиотека, без приложений, с базовой конфигурацией.
#posts #templates
В первой статье проведено сравнение языков Swift и Kotlin.
Так-же автор опубликовал небольшой проект-шаблон KotlinMobileBootstrap - общая библиотека, без приложений, с базовой конфигурацией.
#posts #templates
Ben Asher
Getting Started with Kotlin on iOS, Part 1
A brief introduction to Kotlin for Swift/iOS developers before diving into Kotlin multiplatform.