Представление кроссплатформенного мобильного разработки вашей команде
Эти рекомендации помогут вам представить вашей команде 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.
Яндекс.Диск — Они начали с эксперимента по интеграции небольшой функции, и, поскольку эксперимент был признан успешным, они реализовали всю свою логику синхронизации данных в Kotlin Multiplatform Mobile.
Изучите страницу с кейсами для вдохновения.
Предложите доказательство
Теория хорошая, но её практическое применение в конечном итоге наиболее важно. В качестве одного из вариантов, чтобы сделать вашу позицию более убедительной, вы можете пойти на риск, потратив часть своего свободного времени на создание чего-либо с Kotlin Multiplatform, а затем представить результаты вашей команде для обсуждения. Ваш прототип может быть каким-то тестовым проектом, который вы напишете с нуля и который продемонстрирует необходимые функции в вашем приложении. Семинар по сетевым запросам и хранению данных с Kotlin Multiplatform Mobile может хорошо направить вас в этом процессе.
Более релевантные примеры могут быть получены путём экспериментирования с вашим текущим проектом. Вы можете взять существующую функцию, реализованную на Kotlin, и сделать её кроссплатформенной, или вы даже можете создать новый многоплатформенный модуль в вашем существующем проекте, взять одну неочередную функцию из нижней части списка задач и реализовать её в общем модуле. Разработка Android-приложения под iOS — руководство предоставляет пошаговое руководство на основе демонстрационного проекта.
Новый плагин Kotlin Multiplatform Mobile для Android Studio позволит вам выполнить любую из этих задач в кратчайшие сроки с помощью мастер-классов Kotlin Multiplatform App или Kotlin Multiplatform Library.
Подготовка к вопросам
Независимо от того, насколько подробной будет ваша презентация, у вашей команды будет много вопросов. Внимательно выслушивайте и старайтесь отвечать на них терпеливо. Вероятно, большинство вопросов будет поступать от команды iOS-разработчиков, поскольку они не привыкли видеть Kotlin в своей повседневной работе. Этот список наиболее распространённых вопросов может помочь вам:
В: Я слышал, что приложения, основанные на кроссплатформенных технологиях, могут быть отклонены из AppStore. Стоит ли этот риск?
О: В Apple Store действуют строгие правила публикации приложений. Одним из ограничений является то, что приложения не должны загружать, устанавливать или исполнять код, который вводит или изменяет функции или функциональность приложения (Руководство по обзору приложений App Store 2.5.2). Это актуально для некоторых кроссплатформенных технологий, но не для Kotlin Multiplatform Mobile. Разделяемый код Kotlin компилируется в нативные двоичные файлы с помощью Kotlin/Native, в ваше приложение добавляется стандартный iOS-фреймворк, и не предусмотрена возможность динамического выполнения кода.
В: Проекты Multiplatform строятся с помощью Gradle, а Gradle имеет очень крутую кривую обучения. Нужно ли сейчас много времени тратить на настройку проекта?
О: На самом деле нет необходимости. Есть различные способы организации рабочего процесса для создания приложений Kotlin Mobile. Во-первых, только 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 за помощь в написании этой статьи.
Ресурсы сообщества
© 2010–2022 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