169 похожих чатов

Народ, вопросец такой. Если делать апликуху под Андроид и IOS,

то какую платформу лучше выбрать? Из вариков: React Native, Flutter, KMM. Взглянув на тесты, React Native по производительности проигрывает, а KMM, насколько я знаю, является что-то вроде экспериментальной фичей, которая работает, но с некоторыми ограничениями.

21 ответов

10 просмотров

React Native

Flutter, кмп еще в альфе, до бетки далеко ещё

Sergey-Glushko Автор вопроса

Я вот взглянул на КММ, поскольку на Java и Котлине апликухи делаю. Не знаю, как в React Native, вроде там один код и под разные платформы, только некоторые мелочи меняешь, но вот на KMM, у тебя 3 папки. В одной shared ты пишешь общие классы, а в специальных, их реализуешь. Многое строится на "actual" и "expected" флажках для классов, где в "expected" ты определяешь общее поведение без реализации, а в "actual" классах, ты реализуешь функционал. И вот в Андроиде ты реализуешь по своему, а в iOS по своему. Как пример, переменная по показу версий. Тебе надо написать метод в Shared, папке, а потом для Андроида "android.os.Build.VERSION.SDK_INT", и для иОСа: "UIDevice.currentDevice.systemName()". То есть. в случае с КММ, выходит, что для каждого метода, нужна своя реализация, кода будет больше, да и знания в SWIFT надо иметь.

Так это везде так. Везде пишешь под иос и под андроид раздельно. Просто общий дизайн и базовые классы. В остальном требуются знания обеих платформ.

Sergey-Glushko Автор вопроса

То есть, в Реакт Нативе, тоже надо писать отдельно реализацию под иОС и отдельно под Андроид?

Уверен

да, RN же использует нативные вьюхи, они все реализованы раздельно

Но смотря какую реализацию. Если домейн слой, то он работает под 2 платформы.

Sergey-Glushko Автор вопроса

Я думал, что ты вызвал метод, который подсоединяется к серверу и по запросу, забирает JSON объект, а дальше, система отдельно конвертирует это под Андроид и отдельно под иОС. То есть, ты не пишешь отдельно реализацию для Андроида, например, с использованием Реакта, ну и отдельно под иОС, с другой реализацией

Не, писать придется полюбэ)

И я думаю библиотеки все тоже нативные и разные для каждой платформы (окхттп клиент, жсон сериализаторы и т.д.)

Ты думаешь или был опыт?

Sergey-Glushko Автор вопроса

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

ну да, логика пишется одинаково

пока гуй примитивный — всё так)

Опыта не было, но слышал от других кросплатформ девов.

Sergey-Glushko Автор вопроса

Просто я хочу сделать приложение, но хотелось бы, чтобы ее можно было использовать на иОС - либо уже написанную, либо иметь перспективу без переписываний с нуля, ее адаптировать. Вот начал разбирать. Судя из рассказов кореша, на Реакт Нативе, ты пишешь общий код, который работает на обоих платформах, но при этом, какие-то фичи надо переписывать отдельно, если они не реализованы в Реакте, ну и интерфейс подправлять. Ну а потом увидел, что можно на Котлине сделать мультиплатформу, и исходя из примеров и того, что я понял, там общий код написать не выйдет. Только какую-то логику, не использующую специфичные библиотеки, а для специальных вещей, придется отдельно катать под Андроид и под иОС. Это и вызвало некий диссонанс с тем, что мой кореш рассказывал и тем, что я увидел, разбирая КММ

Неправда, на KMPP можно писать общий код. Для того он и нужен.

имхо флаттер лучше, от жс у меня глаза вытекают =)

Флаттер не пробовал. Но про жс категорически плюсую🌚

Sergey-Glushko Автор вопроса

Да. Я начал разбирать, что лучше: Реакт натив, КММ или Флаттер. Разные мнения. По производительности, Реакт проигрывает. Флаттер примерно на 20% медленнее нативной реализации, ну а КММ, для Андроида норм, а для иОС-а пока не видел. Но в перспективе, говорят, что доля Реакта для мобильных кросс платформ, снижается, и растет популярность Флаттера, но при этом, его не рекомендуют для больших приложений. Ну а КММ пока в альфе находится, что значит, релизнится он только через год как минимум.

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Какое виндузовое сообщение приходит TTabSheet, что риэлайняться контролы на нем, даже у которых парент другой? Ситуация: открываю форму - кнопок нет, перелистываю на другой т...
Катерина Свиридова
7
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Карта сайта