Spec-Zone.ru › Kotlin 1.9

Введение в кроссплатформенную мобильную разработку в вашей команде

Эти рекомендации помогут вам познакомить вашу команду с Kotlin Multiplatform для мобильных платформ:

  • Начните с эмпатии

  • Объясните, как работает Kotlin Multiplatform

  • Покажите ценность с помощью кейсов

  • Предложите доказательство, создав собственный демонстрационный проект

  • Подготовьтесь к вопросам вашей команды

  • Поддерживайте свою команду во время адаптации

Начните с эмпатии

Разработка программного обеспечения — командная игра, и каждое важное решение требует одобрения всех членов команды. Интеграция любой кроссплатформенной технологии существенно повлияет на процесс разработки вашего мобильного приложения. Поэтому перед началом интеграции Kotlin Multiplatform в свой проект необходимо познакомить команду с технологией и мягко убедить их в её ценности.

Понимание людей, работающих над вашим проектом, — это первый шаг к успешной интеграции. Ваш руководитель отвечает за доставку функций с наилучшим качеством в кратчайшие сроки. Для него любая новая технология — это риск. Ваши коллеги имеют иную точку зрения. У них есть опыт создания приложений с использованием «нативного» стека технологий. Они знают, как писать пользовательский интерфейс и бизнес-логику, работать с зависимостями, тестировать и отлаживать код в IDE, и они уже знакомы с языком. Переход на другую экосистему очень неудобен, так как всегда означает выход из зоны комфорта.

Учитывая все это, будьте готовы столкнуться с предубеждениями и ответить на множество вопросов, когда будете отстаивать переход на Kotlin Multiplatform для мобильных платформ. При этом никогда не теряйте из виду потребности вашей команды. Некоторые рекомендации ниже могут быть полезны для подготовки вашего предложения.

Объясните, как это работает

На данном этапе необходимо избавиться от любых негативных чувств по поводу кроссплатформенных мобильных приложений и показать, что использование Kotlin Multiplatform в вашем проекте не только возможно, но и не приведёт к обычным проблемам кроссплатформенности. Вы должны объяснить, почему не возникнет проблем, таких как:

  • Ограничения использования всех функций iOS и Android — Всякий раз, когда задача не может быть решена в общем коде, или когда вам нужно использовать определённые нативные функции, можно использовать шаблон expect/actual для бесшовной написания платформоспецифичного кода.

  • Проблемы с производительностью — Общий код, написанный на Kotlin, компилируется в различные выходные форматы для разных целей: в байт-код Java для Android и в нативные двоичные файлы для iOS. Таким образом, нет дополнительной накладных расходов при выполнении этого кода на платформах, и производительность сопоставима с производительностью нативных приложений.

  • Проблемы с устаревшим кодом — Независимо от того, насколько велик ваш проект, существующий код не помешает вам интегрировать Kotlin Multiplatform. Вы можете начать писать кроссплатформенный код в любой момент и подключить его к вашим приложениям для iOS и Android в качестве обычной зависимости, или вы можете использовать уже написанный код и просто изменить его, чтобы он был совместим с iOS.

Важно уметь объяснять как работает технология, так как никто не любит, когда обсуждение кажется основанным на магии. Если что-то неясно, люди могут подумать о худшем, поэтому будьте осторожны, не считая что что-то слишком очевидно, чтобы требовать объяснения. Вместо этого постарайтесь объяснить все основные понятия, прежде чем переходить к следующему этапу. Этот документ по кроссплатформенной разработке поможет вам систематизировать свои знания, чтобы подготовиться к этому опыту.

Покажите ценность

Понимание работы технологии необходимо, но недостаточно. Вашей команде необходимо увидеть преимущества её использования, и способ презентации этих преимуществ должен быть связан с вашим продуктом. Kotlin Multiplatform позволяет использовать единую базу кода для бизнес-логики приложений для iOS и Android. Поэтому, если вы разрабатываете очень тонкий клиент, и большая часть кода — это логика пользовательского интерфейса, то основная мощь Kotlin Multiplatform Mobile останется неиспользованной в вашем проекте. Однако, если ваше приложение имеет сложную бизнес-логику, например, если у вас есть функции, такие как сетевое взаимодействие, хранение данных, платежи, сложные вычисления или синхронизация данных, то эту логику можно легко написать и использовать совместно между iOS и Android, чтобы вы смогли ощутить истинную мощь технологии.

На данном этапе нужно объяснить основные преимущества использования Kotlin Multiplatform в вашем продукте. Одним из способов является обмен историями других компаний, которые уже извлекают выгоду из этой технологии. Успешный опыт этих команд, особенно команд с аналогичными целями по продукту, может стать ключевым фактором в окончательном решении.

Ссылки на кейсы различных компаний, которые уже используют Kotlin Multiplatform в производстве, могут значительно помочь вам создать убедительный аргумент:

  • Chalk.com — Пользовательский интерфейс для каждого из приложений Chalk.com нативен для соответствующей платформы, но в остальном почти все для их приложений можно разделить с помощью Kotlin Multiplatform для мобильных платформ.

  • Cash App — Большая часть бизнес-логики приложения, включая возможность поиска всех транзакций, реализована с помощью Kotlin Multiplatform для мобильных платформ.

  • Yandex.Disk — Они начали с экспериментов по интеграции небольшой функции, и поскольку эксперимент был признан успешным, они реализовали всю логику синхронизации данных с помощью Kotlin Multiplatform для мобильных платформ.

Изучите страницу с кейсами для вдохновляющих примеров.

Предложите доказательство

Теория хороша, но на практике важно всё реализовать. В качестве одного из вариантов, чтобы сделать ваш аргумент более убедительным, вы можете рискнуть потратить часть своего свободного времени на создание чего-то с использованием Kotlin Multiplatform, а затем представить результаты команде для обсуждения. Ваш прототип может быть каким-то тестовым проектом, который вы напишете с нуля и который продемонстрирует необходимые функции в вашем приложении. Создайте кроссплатформенное приложение с использованием Ktor и SQLDelight — руководство хорошо проведет вас по этому процессу.

Более релевантные примеры могут быть получены при экспериментах над вашим текущим проектом. Вы можете взять существующую функцию, реализованную на Kotlin, и сделать её кроссплатформенной, или даже создать новый модуль Multiplatform в вашем существующем проекте, взять одну низкоприоритетную функцию из нижней части списка задач и реализовать её в общем модуле. Заставьте ваше Android-приложение работать на iOS — руководство предоставляет пошаговое руководство на основе демонстрационного проекта.

Новый плагин Kotlin Multiplatform Mobile для Android Studio позволит вам выполнить любую из этих задач в кратчайшие сроки, используя мастера создания приложений Kotlin Multiplatform или библиотек Kotlin Multiplatform.

END_OF_DOCUMENT_MARKER

Подготовка к вопросам

Независимо от того, насколько подробным будет ваш презентационный материал, ваша команда задаст множество вопросов. Внимательно выслушивайте и старайтесь терпеливо отвечать на все вопросы. Вероятнее всего, большинство вопросов будет поступать от разработчиков iOS-команды, поскольку они не привыкли видеть Kotlin в повседневной практике разработки. Этот список наиболее часто задаваемых вопросов может вам помочь:

В: Я слышал, что приложения, созданные на кроссплатформенных технологиях, могут быть отклонены из App Store. Стоит ли рисковать?

О: В Apple Store действуют строгие правила публикации приложений. Одно из ограничений заключается в том, что приложения не должны загружать, устанавливать или выполнять код, который добавляет или изменяет функции приложения (Руководство по обзору приложений в App Store 2.5.2). Это актуально для некоторых кроссплатформенных технологий, но не для Kotlin Multiplatform. Разделяемый Kotlin-код компилируется в нативные двоичные файлы с помощью Kotlin/Native, и в приложение добавляется обычная iOS-библиотека, при этом динамического исполнения кода не происходит.

В: Многоплатформенные проекты строятся с помощью Gradle, а у Gradle очень крутая кривая обучения. Нужно ли мне тратить много времени на настройку проекта?

О: На самом деле, нет необходимости. Существует множество способов организации рабочего процесса при создании мобильных приложений на Kotlin. Во-первых, только разработчики Android могут быть ответственны за сборку, в таком случае команда iOS будет писать код или даже только использовать итоговый артефакт. Вы также можете организовать некоторые мастер-классы или практиковать парное программирование, сталкиваясь с задачами, требующими работы с Gradle, что повысит навыки вашей команды в работе с Gradle. Вы можете изучить разные способы организации работы вашей команды для многоплатформенных проектов и выбрать наиболее подходящий для вашей команды.

Кроме того, в базовых сценариях вам просто нужно настроить проект в начале, а затем просто добавить зависимости в него. Новый плагин AS делает настройку проекта намного проще, поэтому это теперь можно сделать в несколько кликов.

Когда только команда Android работает с общим кодом, разработчикам iOS даже не нужно изучать Kotlin. Но когда вы готовы к тому, чтобы ваша команда перешла к следующему этапу, где все работают над общим кодом, переход не займет много времени. Сходство между синтаксисом и функциональностью Swift и Kotlin значительно сокращает работу, необходимую для освоения чтения и написания разделяемого Kotlin-кода. Попробуйте сами!

В: Я слышал, что Kotlin Multiplatform для мобильных приложений — экспериментальная технология. Это значит, что мы не должны использовать её для производства?

О: Экспериментальный статус означает, что мы и всё сообщество Kotlin просто пробуем идею, но если она не сработает, её можно в любой момент отбросить. Однако после выхода Kotlin 1.4, Kotlin Multiplatform для мобильных приложений находится в стадии Alpha. Это означает, что команда Kotlin полностью настроена на работу по улучшению и развитию этой технологии и не откажется от неё внезапно. Однако до перехода в Beta могут быть проблемы с миграцией. Но даже экспериментальный статус не мешает успешно использовать функцию в производстве, если вы понимаете все риски. Проверьте страницу эволюции Kotlin для получения информации о статусе стабильности компонентов Kotlin Multiplatform.

В: Нет достаточного количества многоплатформенных библиотек для реализации бизнес-логики, гораздо проще найти нативные альтернативы.

О: Конечно, мы не можем сравнивать количество многоплатформенных библиотек с React Native, например. Но у React Native потребовалось пять лет, чтобы расширить экосистему до ее нынешнего размера. Kotlin Multiplatform для мобильных приложений все ещё молодая технология, но экосистема имеет огромный потенциал, поскольку уже существует множество современных библиотек, написанных на Kotlin, которые легко портируются на многоплатформенную платформу.

Это также прекрасное время для iOS-разработчиков в открытом сообществе Kotlin Multiplatform, так как опыт работы с iOS востребован и существует множество возможностей получить признание за вклад в iOS.

И чем больше ваша команда углубляется в технологию, тем более интересными и сложными станут их вопросы. Не волнуйтесь, если у вас нет ответов — Kotlin Multiplatform имеет большое и поддерживающее сообщество в Kotlin Slack, где множество разработчиков, которые уже используют эту технологию, могут помочь вам. Мы будем очень благодарны, если вы сможете поделиться с нами наиболее популярными вопросами, задаваемыми вашей командой. Эта информация поможет нам понять, какие темы необходимо осветить в документации.

Оказывайте поддержку

После того, как вы решите использовать Kotlin Multiplatform, у вашей команды будет период адаптации, пока она экспериментирует с технологией. И ваша миссия на этом не закончится! Оказав постоянную поддержку своим коллегам, вы сократите время, необходимое вашей команде для погружения в технологию и достижения первых результатов.

Вот несколько советов о том, как вы можете поддержать свою команду на этом этапе:

  • Собирайте вопросы, которые вам задавали на предыдущем этапе, на странице вики-страницы «Kotlin Multiplatform: Часто задаваемые вопросы», и делитесь ими со своей командой.

  • Создайте канал Slack #kotlin-multiplatform-support и станьте самым активным пользователем в нём.

  • Организуйте неофициальное мероприятие по сплочению команды с попкорном и пиццей, где вы будете смотреть обучающие или вдохновляющие видео о Kotlin Multiplatform. "Shipping a Mobile Multiplatform Project on iOS & Android" by Ben Asher & Alec Strong — хороший выбор.

Реальность такова, что вы, вероятно, не измените взгляды людей за один день или даже за одну неделю. Но терпение и внимание к потребностям ваших коллег, несомненно, принесут результаты.

Команда Kotlin Multiplatform с нетерпением ждет вашего рассказа.

Мы хотели бы поблагодарить команду Touchlab за помощь в написании этой статьи.

Последнее изменение: 14 июля 2023 г.
Kotlin Multiplatform для мобильных приложений: FAQ Руководство по совместимости для Kotlin Multiplatform

© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/multiplatform-mobile-introduce-your-team.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API