Комментарии 27
Игры, например, почти все делают на кросс-платформенных движках.
И, опять же, придирки к классификации, если сделать всю логику приложения в виде dll-ки, а на платформах делать только морду и связующий слой, оно считается кросс-платформенным или нет?
Недавно Dropbox выпустил похожую статью.
В проекте где я работаю организованно таким образом что есть portable ядро C/C++ и UI нативный для каждой платформы. UI хоть и нативный, но с ним все равно свои проблемы. Во первых, вы добавили фичу, нужно обновить 6 UI и каждый по своему. Второе что нативные средства также устаревают как и кросс-платформенные. Например Windows UI основный на Win32 или MFC уже не такой уж нативный в современном Windows 10. Андроид тоже постоянно сдвигает парадигму, Android 2.x -> Фрагменты -> Kotlin -> Jetpack Compose или Flutter.
Мне кажется было бы ок если бы у нас был кросс-платформенный UI, написанный единожды. Однако подходящих технологий пока нет. Flutter вроде бы планирует поддерживать и desktop и Web, но по текущим демкам видно что оно не готово.
Наша фирма разрабатывает проекты на xamarin и я не согласен с вашими выводами. Я так понимаю вы писали больше о xamarin forms? Xamarin forms сейчас очень быстро развивается и в данный момент получил важные фичи: списки на основе recyclerview, collectionview, быстродействие которых на порядок выше, hot reload, carousel view, indicator view и т.д. (с мобильного не очень удобно писать, так бы много чего перечислить можно). Да, бывают обновления что-то ломающие, но обновляться постоянно без причины на последнюю версию, это странное решение, все нужно проверять тестами. Также большинство проектов мы пишем на xamarin.native и это наше спасение по ускорению работы и, что самое главное, одинаковому поведению на разных платформах. Только переход на общее ядро дал возможность нормально унифицировать работу приложений. C# дает огромное преимущество в работе по сравнению с java или swift.
Я мог бы описать все плюсы и минусы, с которыми приходится мириться, но это будет целая огромная статья.
Популярность кроссплатформенных решений никогда не перевалит популярность инструментов от гугл и apple, но все не так уж плохо как вы пишите
По языку тоже есть плюшки: реализация асинхронной работы, LINQ, реализация делегатов и событий, неймспейсы (swift) но это больше уже нюансы.
Я ни разу не против разработки используя Kotlin/Swift, у нас эти подходы тоже используются. Есть и приложения на Xamarin Forms, а также на Xamarin.Native. Везде свои преимущества.
я тоже делаю на xamarin, правда у меня сам алгоритм портируется, но зато идеально (программа ёфикатор)
Почему я отказался от кросс-платформенных решений в мобильной разработке