Общее решение стандартного кода

Если вы уже знаете о мультиплатформенности Kotlin, но еще не начали ее использовать, или вы не уверены, следует ли использовать Kotlin в качестве стандартного кода на поддерживаемых вами платформах, или вы только начали изучение, эта статья может помочь. ты.

Примечание. В этой статье рассказывается о том, как код Kotlin будет работать в многоплатформенной среде, а не о том, как его реализовать.

Введение

Допустим, у нас есть приложение для социальных сетей, такое как Instagram или Facebook, которое работает в Интернете и имеет приложения для Android и iOS. В этом приложении происходит следующее: когда кто-то публикует новый контент, он отображается в разделе ленты для тех, кто подписан на пользователя, разместившего контент.

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

Затем в приложении соответствующие разработчики извлекают данные из ответа сервера с помощью различных библиотек, таких как модернизация, залп с использованием Gson, Moshi, Jackson и других. Затем пользовательский интерфейс приложения обновляется.

Что может быть платформенно-независимым?

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

Здесь могут быть реализованы некоторые вещи, не зависящие от платформы, например, вызов службы и формирование (логика синтаксического анализа и сортировки) ответа на обновление пользовательского интерфейса. Единственное, что зависит от платформы, - это обновление пользовательского интерфейса.

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

Идея мультиплатформенности Kotlin

Наконец добрался до интересного момента; Прежде чем переходить к обсуждению мультиплатформенности Kotlin, вы должны знать еще одну важную вещь о том, как Kotlin работает в родном Android.

Как Kotlin работает в Android?

Давайте посмотрим, как java-код выполняется в Android, мы пишем весь код на java, а компилятор компилирует код, генерирует байтовый код и отправляет его в JVM.

Затем появился Kotlin, Kotlin удобен для разработчиков, имеет нулевую безопасность, поддерживает совместимость с Java и имеет сотни других причин, которые сделали Kotlin первоклассным гражданином Android. Благодаря этим многочисленным преимуществам разработчики полюбили Kotlin и начали кодировать, а теперь давайте посмотрим, как выполняется код Kotlin.

Под капотом, когда приложение начало выполняться, компилятор Kotlin конвертирует все файлы Kotlin в байт-код Java, который может понять JVM. В конце концов, в JVM выполняется именно байт-код, а не Kotlin.

Теперь, возвращаясь к мультиплатформенности Kotlin, цель здесь - разработать всю общую логику, такую ​​как синтаксический анализ и сортировка в Kotlin, и использовать эти файлы Kotlin на всех трех платформах (веб, iOS и Android).

У Kotlin есть три разновидности, в которых байт-код java является одним из них. Другой вариант - модуль Kotlin Js, в котором компилятор преобразует файлы Kotlin в файлы .js, которые могут быть полезны в веб-версиях, и решает проблему отсутствия одинаковых баз кода с одинаковой логикой в ​​Android и веб-версиях.

Последняя платформа, которая должна быть совместима с кодом Kotlin, - это iOS. Для этого у Kotlin есть общий вариант, который преобразует файлы Kotlin в машинный код, и этот вариант известен как Kotlin Native. Мы можем использовать этот машинный код в собственном iOS, Android Native, Desktop Native и веб-сборке. Это важная разновидность, которую можно использовать на любой платформе, которая может понимать двоичный код.

Мультиплатформенность Kotlin через Flutter и веб-приложения

Когда мы думаем о мультиплатформенности, нам приходят в голову три основных платформы: Android, iOS и Интернет. Когда мы думаем о разработке, большинство разработчиков думают о таких вещах, как Flutter или веб-приложения.

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

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

Котлин сделал самую сложную работу в сфере технологий веселой. Кроме того, разработчикам не нужно постоянно изучать разные языки. Google так много вложил в Котлин; большинство разработчиков, которые начали работать над Kotlin, уже влюблены в него. Kotlin был 4-м наиболее любимым языком программирования в 2019 году. В Kotlin так много функций, которые вы очень редко встретите в других языках, таких как расширения, сопрограммы, запечатанные классы, функции высшего порядка, совместимость, и этот список никогда не заканчивается.

Бонус: где вы можете использовать Kotlin сегодня

Вы можете начать использовать Kotlin для разработки всего, что работает на JVM, создания приложений Android, js-версии для Интернета и собственного машинного кода для IOS.

С сегодняшнего дня вы можете кодировать Kotlin в intellij Ultimate IDE, Android studio, eclipse и многих других инструментах.

Бонус

Чтобы узнать больше о Kotlin, прочтите предыдущие части этой серии Advanced Programming With Kotlin:

Чтобы узнать больше о сопрограммах Kotlin и других расширенных функциях Kotlin, прочтите следующие статьи:

Прежде чем мы подведем итоги, я хотел бы поблагодарить Бритт Барак. Я узнал многие концепции, о которых упоминал здесь, из выступления, которое она сделала на KotlinConfig 2019.

Вы можете найти меня в Medium, Twitter, Quora и LinkedIn.

Спасибо за чтение.