Jetpack Compose for Desktop от JetBrain — это проект с открытым исходным кодом, разрабатываемый в сотрудничестве с Jetpack Compose от Google. Он призван упростить и ускорить разработку пользовательского интерфейса для настольных приложений и обеспечить совместное использование кода пользовательского интерфейса между Android и настольными приложениями. Доступен первый этапный выпуск.
Разве 100% общая кодовая база для разных платформ — тщетная мечта? Многие пытались пересечь границы с помощью фреймворка, который может объединить несколько платформ, то есть написать свой код один раз и позволить ему беспрепятственно работать на macOS, Linux, Windows и iOS. Платформа Windows, чего вы можете ожидать от попытки перейти на другую платформу?
Введите Jetpack Составьте ответ Google на многоплатформенный квест. Опираясь на вездесущую JVM, он совместим с графическими API Java, такими как Swing и AWT, и может использовать их, а также работает с Kotlin.
Jetpack Compose изначально был развернут на Android как часть компонентов архитектуры Google, это попытка очистить и освежить способы разработки для Android. Впоследствии он зарекомендовал себя как новый и стандартный способ создания приложений с графическим интерфейсом пользователя на платформе. Эта попытка очистки не прошла без оттока, как мы описали в Android Jetpack Compose — приветствуется, но как насчет оттока? .
Марк Мерфи из известного CommonsWare Consulting, у которого за плечами много учебных курсов и книг, подробно остановился на статье в Выпуске № 31 своего информационного бюллетеня jetc.dev. Я настоятельно рекомендую просмотреть полный комментарий, но вот образец:
«А что насчет оттока?» post демонстрирует не слишком удивительную реакцию на Compose. Неуклонно распространяются новые технологии разработки для Android: от Gradle до компонентов архитектуры, от Kotlin до MotionLayout, а теперь и до Compose.
Этот информационный бюллетень способствует этой шумихе. Обычно разрекламированные технологии — это позитивные разработки, решающие ключевые проблемы в разработке приложений для Android. Многие лидеры мнений в области Android быстро понимают, как эти технологии решают проблемы, и в результате своего энтузиазма подпитывают двигатель шумихи.
Короче говоря, для успеха Compose или любой новой технологии необходимо состояние постепенной миграции и помощи сообщества.
Поскольку Jetpack связан с обширным сообществом Android, должны быть ресурсы, которые упростят его изучение и использование на других платформах. Другими словами, это означает, что вы можете следовать многочисленным руководствам по Android, которые можно найти повсюду, и использовать эти знания при создании приложений для других платформ!
Обещано, что вы сможете без проблем делиться знаниями, а также большими частями кода пользовательского интерфейса, написанного для Android, скажем, на Windows.
Например, на Android вы можете писать составные функции, которые
позволяют определять пользовательский интерфейс приложения программно, описывая его форму и зависимости данных, а не сосредотачиваться на процессе построения пользовательского интерфейса. Чтобы создать составную функцию, просто добавьте аннотацию @Composable к имени функции.
Теперь вы можете сделать это и в Windows.
Конечно, поскольку платформы разные, абстрагировать все невозможно. В какой-то момент вам нужно выбрать платформу, и, что касается Kotlin, Jetpack Compose Desktop обслуживает этот случай, предоставляя соответствующие API-интерфейсы базовых платформ. Jetpack Compose for Desktop, проект с открытым исходным кодом от JetBrain, разрабатывается в сотрудничестве с Jetpack Compose от Google, что гарантирует совместное развитие двух технологий.
Совместное использование кода происходит через Kotlin Multiplatform (KMM), SDK для кроссплатформенной мобильной разработки, предоставляемый JetBrains. Посмотрите, как Netflix его использует:
для написания бизнес-логики, не зависящей от платформы, один раз в Kotlin и компиляции в библиотеку Kotlin для Android и собственный универсальный каркас для iOS через Kotlin / Native
в этом посте в блоге Netflix.
Похоже, что мультиплатформа Kotlin теперь была расширена для поддержки других немобильных платформ. Чтобы доказать эту точку зрения, плагин Gradle Jetpack Compose Desktop, поставляемый с промежуточным выпуском, может создавать установщики для всех платформ: .exe, .msi в Windows, .dmg, .pkg в MacOS и .deb, .rpm в Linux.
Важно отметить, что это альфа-материал, поэтому ожидаются некоторые сбои. Но что мне нравится больше всего, так это то, что JetBrains раскрыла свои объятия, чтобы охватить всех разработчиков, ожидая, что их отзывы улучшат их работу.
Короче говоря, Jetpack Compose Desktop мотивирует сообщество, делая возможным повторное использование кода и знаний и, основываясь на Kotlin, постмодернистском языке с навороченными функциями, а также первоклассной совместимостью с обширной экосистемой библиотек Java и JVM, похоже, это изменит то, как мы делаем вещи на разных платформах.