Недавно полистал различные исследования и рейтинги, и с удивлением обнаружил, что Flutter не просто становится популярнее, а React Native нет. Flutter – единственный кроссплатформенный фреймворк с позитивной динамикой изменения популярности ЗА ПОСЛЕДНИЕ 5 ЛЕТ!!!
Об этом и данные statista говорят (https://www.statista.com/statistics/869224/worldwide-software-developer-working-hours/), и, косвенно, исследование от JetBrains подтверждает (https://www.jetbrains.com/lp/devecosystem-2023/development/#mobile_crossplatform_frmwrk_two_years).
Пример привести несложно, потому что Impeller улучшает производительность интерфейсов вообще во всех сценариях, по нашему опыту экспериментов с ним. Анимации, переходы, скролл – всё становится более плавным. А что касается 3D, то для Impeller это вообще уникальная особенность, которая до его появления была практически нереализуема во Flutter.
Стоит оговориться, что Impeller пока превью для разработчиков, поэтому реальный проект прямо сейчас с ним собрать ещё нельзя. Но совсем скоро уже будет можно.
Но уже сейчас можно скачать на обе платформы приложение Wonderous и оценить его производительность. Оно работает на Impeller.
Ну не от этого Wrike отказались, не надо мешать все в кучу. Отказались они от Dart. Flutter у них нет и никогда не было.
Так а с чего вы вообще решили, что аутсорс и наличие продакта на стороне заказчика - несовместимы? Вы понимаете, что вынос разработки на аутсорс, зачастую, это быстрый старт, за которым идёт передача в инхаус и постепенное наращивание команды?
Я не вижу логики в ваших словах.
Вот это нативочка. Вот только прежде чем высказываться, лучше всё же разобраться в субъекте высказывания.
Андрей, спасибо. На vc.ru ждать технических материалов не стоит, лучше следить за ними на https://habr.com/ru/company/surfstudio/. А их там уже много и постоянно появляются новые.
Выбор был именно в пользу кроссплатформы исходя из бизнес-целей заказчика: стоимость и простота процессов при должном уровне качества. Последнее слово за выбором технологии на ЛПР, Surf - это подрядчик.
Второй вопрос непонятен вообще. Причем тут данные в РФ, AppStore? В AppStore лежат сотни тысяч кроссплатформенных приложений, написанных на самых разных технологиях.
Про аймак также без комментариев. Для адекватной разработки кроссплатформы без маков не обойтись.
Вам спасибо! Надеемся, будем полезны и дальше.
Большое спасибо!
Интересный совет, не задумывался об этом. Спасибо!
1) По перфомансу - как в нативе, местами чуть хуже. Есть некоторые вопросы к iOS, но недавно выкатили поддержку Metal, стало намного лучше. Нельзя пренебрегать лучшими практиками, так как написать непроизводительный код по незнанию относительно легко.
2) Bloc - вполне нормальное решение, ничего против него не имею. Нормально подойдёт для небольших и средних проектов. В том, насколько он хорошо масштабируется под что-то большое пока есть сомнения.
Но мы своё архитектурное решение используем, про которое можно прочитать здесь: https://habr.com/ru/company/surfstudio/blog/510308/.
что вы подразумеваете под кроссплатформенным интерфейсом? UI?
не, больше нигде. только там
Вот именно такой вариант вряд ли имеет смысл. Только если Kotlin MPP модуль уже был написан для всех остальных компонентов большой системы и шарится между ними.
А какая кроссплатформа иные возможности предоставляет? Хотите делать что-то сложнее кнопок и списков - с этим придётся столкнуться в любом случае.
А в чём нейтив на Android? Что на Android, что на iOS всё устроено плюс-минус одинаково. И ни там, ни там, почти ничего нативного нет.
Потому что необходимость писать платформенный код всё-таки не уходит совсем.
В сторону Kotlin MPP я активно смотрю. Но чем дальше, тем мне всё больше кажется, что это технологии для решения совсем разных задач. На ближайшем Mobius я делаю воркшоп по интеграции Kotlin MPP либы с Flutter-проектом как раз.
Вы очень хорошо дополнили статью своими комментариями. Но на мой личный взгляд они немножко оторваны от реалий продашкн-проектов (во всяком случае теми, с которыми работаем мы).
Пройдусь по некоторым пунктам:
1) "А в худшем часть функционала вообще не будет реализована или отдастся на откуп написателям плагинов." - хороший Flutter-разработчик должен быть таким писателем плагинов потенциально для каждой из поддерживаемых платформ, это факт. Да, есть кейсы, который вы сами не решите, например, вы вряд ли напишете WebView. С каждым днём таких проблем всё меньше, а экосистема развивается.
2) "Только мобильная версия сайта в таком случае справится не хуже." - ну это не так, приложение остаётся приложением и даёт другой уровень UX и вовлечения. На чём бы ни было оно написано.
3) "То есть вы опять придете к 2 версиям ui и 2 версиям бизнеслогики." - а откуда берётся 2 версия бизнес-логики? Что касается дизайна, наши проекты (как и подавляющее большинство приложений из топов сторов) чаще всего имеют уникальный кастомный дизайн с оглядкой на бренд-гайды кастомера. И там да, есть место для платформенных адаптаций, но речь не идёт о двух принципиально различных дизайнах с нуля под две платформы никогда. Проблем с ревью в Apple никогда не было по этому критерию.
4) "ваш общий код будет просто нашпинован условиями if(IOS){} if(Android){}" - полез специально проверять, на 90к строк кода нашего проекта 20 таких условных проверок. Кажется не страшно.
Да, кодпуша нет. Но вопрос выбора технологии для проекта несколько сложнее, чем оценка по одному конкретному параметру. RN и безопасность несовместимые понятия. В наших банковских (особенно) и e-commerce приложениях мы RN никогда не будем использовать хотя бы по одной этой причине.
Буду рад, если найдёте минутку и напишете подробнее про свой пользовательский опыт мне в Telegram: @saturov. Мы постоянно оптимизируем её тут и там, и обратная связь поможет нам дошлифовать оставшиеся шероховатости.