Завершение цикла постов о KotlinConf:
Going Native - опыт разработки мультиплатформенного игрового приложения.
В выступлении:
- Демо самой игры;
- Что ушло в общий код;
- Архитектура с множеством математических игр на двух платформах;
- Сравнение API между платформами;
- Рисование через общий код;
- Примеры утечек памяти;
- Особенности на стыке Kotlin и Swift (синглтоны, списки).
Sharing is caring - intro to kotlin multiplatform - погружение в мультиплатформу. В целом ничего нового и выделяющегося в выступлении не было.
"Share only what you want when you want" - хорошее выражение силы kotlin multiplatform.
И из последних новостей:
Вышла новая версия Kotlinx.coroutines 1.3.3 с обновлением kotlin до 1.3.61, рядом багфиксов, поддержкой watchOS, tvOS. В новом релизе пока нет поддержки многопоточности для Native (все еще в разработке).
#videos #libs
Going Native - опыт разработки мультиплатформенного игрового приложения.
В выступлении:
- Демо самой игры;
- Что ушло в общий код;
- Архитектура с множеством математических игр на двух платформах;
- Сравнение API между платформами;
- Рисование через общий код;
- Примеры утечек памяти;
- Особенности на стыке Kotlin и Swift (синглтоны, списки).
Sharing is caring - intro to kotlin multiplatform - погружение в мультиплатформу. В целом ничего нового и выделяющегося в выступлении не было.
"Share only what you want when you want" - хорошее выражение силы kotlin multiplatform.
И из последних новостей:
Вышла новая версия Kotlinx.coroutines 1.3.3 с обновлением kotlin до 1.3.61, рядом багфиксов, поддержкой watchOS, tvOS. В новом релизе пока нет поддержки многопоточности для Native (все еще в разработке).
#videos #libs
YouTube
Aud 15
KotlinConf live from Copenhagen!
Schedule:
6:40 The Compose Runtime, Demystified - Leland Richardson
1:07:15 Failure is not an Option - error handling strategies for Kotlin programs - Nat Pryce, Duncan McGregor
2:53:05 Testing with Coroutines - Sean McQuillan…
Schedule:
6:40 The Compose Runtime, Demystified - Leland Richardson
1:07:15 Failure is not an Option - error handling strategies for Kotlin programs - Nat Pryce, Duncan McGregor
2:53:05 Testing with Coroutines - Sean McQuillan…
Kotlin Multiplatform iOS frameworks dependencies - описание как подключить нативный iOS framework в Kotlin/Native.
Разобрано подключение FirebaseML Vision, с использованием cocoapods плагина и cinterop (из-за subspec'ов).
В простых случаях достаточно cocoapods-gradle plugin (раздел Interop в документации Kotlin/Native).
Для тех кому интересна тема подключения нативных библиотек в Kotlin/Native есть пример FirestoreKMP.
#posts #libs
Разобрано подключение FirebaseML Vision, с использованием cocoapods плагина и cinterop (из-за subspec'ов).
В простых случаях достаточно cocoapods-gradle plugin (раздел Interop в документации Kotlin/Native).
Для тех кому интересна тема подключения нативных библиотек в Kotlin/Native есть пример FirestoreKMP.
#posts #libs
Medium
Kotlin Multiplatform iOS frameworks dependencies
How to add iOS frameworks to Kotlin Multiplatform Library using cocoapods and cinteropt.
Forwarded from Egor Tolstoy
Всем привет! Мы стартанули новое исследование, в этот раз – про то, насколько понятны различные аспекты работы с мемори моделью в Kotlin/Native. В опросе – 10 сниппетов кода, для каждого из которых нужно ответить на два вопроса – согласны ли вы с результатом выполнения кода и понимаете ли, почему он работает именно так. Мы ждем ответов и от опытных пользователей, и от новичков.
Ваше участие сильно поможет нам в понимании текущих проблем и поиске решений для них.
https://surveys.jetbrains.com/s3/kotlin-native-memory-model-research
Ваше участие сильно поможет нам в понимании текущих проблем и поиске решений для них.
https://surveys.jetbrains.com/s3/kotlin-native-memory-model-research
Jetbrains
Kotlin/Native Memory Model Research
Kotlin/Native Memory Model Research.
Насколько Kotlin Multiplatform готов для эффективной разработки мобильных приложений - выступление с митапа Leroy Merlin. Спикер из Kaspersky Lab рассказал:
* Как шарят код между платформами в Kaspersky;
* Основы Kotlin Multiplatform;
* Немного болей Kotlin/Native;
* Свою историю реализации фуллстек kotlin multiplatform приложения;
* Стоимость перехода на Kotlin Multiplatform;
* Сравнение с Flutter.
#videos
* Как шарят код между платформами в Kaspersky;
* Основы Kotlin Multiplatform;
* Немного болей Kotlin/Native;
* Свою историю реализации фуллстек kotlin multiplatform приложения;
* Стоимость перехода на Kotlin Multiplatform;
* Сравнение с Flutter.
#videos
YouTube
Новогодний kotlin: Эффективная мультиплатформа и статический анализ кода
7:03 — Первый доклад: "Готов ли Kotlin Multiplatform для эффективной разработки мобильных приложений?"
Андрей Берюхов из Kaspersky Lab расскажет о базовых принципах работы с Kotlin Multiplatform (MPP) и проблемах, которые приходится решать; поделится своими…
Андрей Берюхов из Kaspersky Lab расскажет о базовых принципах работы с Kotlin Multiplatform (MPP) и проблемах, которые приходится решать; поделится своими…
А еще в нашем чатике @kotlinmppchats ребята из JetBrains ждут ваш фидбек по проблемам отладки в kotlin multiplatform
Forwarded from Liliia Abdulina
Всем привет! И снова команда mobile multiplatform на связи, и снова нужна ваша помощь :)
На этот раз дебаг, сейчас я составляю базовые сценарии его использования. Скажите, пожалуйста, когда/для чего вы чаще всего запускаете дебаггер? Тесты, юай, упоротый алгоритм, шальная переменная, что-то иное? Какие из функций дебаггера (степпинг, evaluate, etc.) — ваши любимые и заставляют особенно грустить, если они не работают? Что, на ваш взгляд, ну точно должно работать в дебаггере?
Отвечать можно на все вопросы, на какой-либо из заданных или на тот, что не прозвучал, но важен для debug experience :)
На этот раз дебаг, сейчас я составляю базовые сценарии его использования. Скажите, пожалуйста, когда/для чего вы чаще всего запускаете дебаггер? Тесты, юай, упоротый алгоритм, шальная переменная, что-то иное? Какие из функций дебаггера (степпинг, evaluate, etc.) — ваши любимые и заставляют особенно грустить, если они не работают? Что, на ваш взгляд, ну точно должно работать в дебаггере?
Отвечать можно на все вопросы, на какой-либо из заданных или на тот, что не прозвучал, но важен для debug experience :)
Наши разработчики поучаствовали в подкасте про Kotlin Multiplatform
https://twitter.com/andro_broadcast/status/1207941822510698496?s=21
https://twitter.com/andro_broadcast/status/1207941822510698496?s=21
Twitter
Android Broadcast
В новом выпуске подкаста поговорили о выходе за рамки Kotlin + Android для Android разработчика и создание приложения с использованием Kotlin Multiplatform для Android + iOS! Гости из компании IceRock: @tetraquark_v, @AndreyUsichenko, @nprokopishin https…
Powering Worldwide Learning with Kotlin Multiplatform - выступление о внедрении Kotlin Multiplatform в Quizlet (статья с их историей уже была в канале). Перевели сложную бизнес-логику в общий код сначала на JS, а потом на Kotlin Multiplatform (с шарингом на android, ios, web).
Practical Kotlin Native Concurrency Part 3 - новая часть разбора многопоточности в Kotlin/Native от Touchlab.
Разобрано актуальное состояние - превью многопоточных coroutines, библиотеки coroutineWorker и reaktive. На примерах показано как библиотеки решают вопрос многопоточности, когда происходит заморозка объектов и какие последствия заморозки можно встретить.
А так же разобраны Atomc'и.
#videos #posts
Practical Kotlin Native Concurrency Part 3 - новая часть разбора многопоточности в Kotlin/Native от Touchlab.
Разобрано актуальное состояние - превью многопоточных coroutines, библиотеки coroutineWorker и reaktive. На примерах показано как библиотеки решают вопрос многопоточности, когда происходит заморозка объектов и какие последствия заморозки можно встретить.
А так же разобраны Atomc'и.
#videos #posts
Kotlin Multiplatform in 2020 - обзорная статья про Kotlin Multiplatform и чего можно ожидать в 2020 году.
Braincup - игровое приложение для тренировки памяти и навыков по математике, фокусировке, сделано с общим кодом и реализует UI на Jetpack Compose, SwiftUI.
PeopleInSpace - небольшой проект пример с общим кодом на Kotlin Multiplatform и реализацией UI на Jetpack Compose и SwiftUI.
KInsight Alpha Capture - пример проекта с множеством платформ - iOS, MacOS, WatchOS (SwiftUI), Android (phone and Wear OS), JVM Web Server.
moko-geo - библиотека предсотавляющая доступ к трекингу геолокации из общего кода.
#posts #libs #samples
Braincup - игровое приложение для тренировки памяти и навыков по математике, фокусировке, сделано с общим кодом и реализует UI на Jetpack Compose, SwiftUI.
PeopleInSpace - небольшой проект пример с общим кодом на Kotlin Multiplatform и реализацией UI на Jetpack Compose и SwiftUI.
KInsight Alpha Capture - пример проекта с множеством платформ - iOS, MacOS, WatchOS (SwiftUI), Android (phone and Wear OS), JVM Web Server.
moko-geo - библиотека предсотавляющая доступ к трекингу геолокации из общего кода.
#posts #libs #samples
Big Nerd Ranch
Kotlin Multiplatform in 2020
The case for Kotlin Multiplatform and what to expect for Kotlin Multiplatform in 2020.
Building an iOS Fat Framework for a Kotlin Multiplatform Project - статья поможет настроить сборку iOS framework с архитектурами arm64 и x64, что позволит дальше распространять framework как готовую библиотеку через CocoaPods / Carthage. Может быть полезно тем, у кого не монореп и iOS часть собирается независимо от общего кода.
#posts
#posts
Medium
Building an iOS Fat Framework for a Kotlin Multiplatform Project
We don’t want no skinny frameworks
Всем привет в новом году. Праздники кончились и канал возвращается к своему обычному расписанию.
Начем год с статьи 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.