Spec-Zone.ru › Kotlin 1.8

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

Эти рекомендации помогут вам познакомить вашу команду с Kotlin Multiplatform Mobile:

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

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

  • Покажите ценность, используя примеры из практики

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Последнее изменение: 10 января 2023 г.
FAQ Начало работы с Kotlin/JVM

© 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