Как стать автором
Обновить

Почему я отказался от кросс-платформенных решений в мобильной разработке

Время на прочтение9 мин
Количество просмотров11K
Всего голосов 10: ↑8 и ↓2+6
Комментарии27

Комментарии 27

Как насчет Delphi? Нативная кроссплатформенная разработка в одной среде. Есть бесплатная версия.
Ни одной вакансии не видел)
Насчёт iOS и Android не знаю (не пробовал), а вот на десктопе (Windows, Mac, Linux) работает (пробовал). Не без косяков, с особенностями, но работает.
об этом и говорится в статье, что кроссплатформа несет очень много накладных расходов и чаще бывает проще написать код два раза, чем один, который работает везде
Зависит от приложения. Чем оно больше и сложнее, тем меньше эти накладные расходы в процентном соотношении (конечно, если не основано на специфических для платформы фичах).
Игры, например, почти все делают на кросс-платформенных движках.
И, опять же, придирки к классификации, если сделать всю логику приложения в виде dll-ки, а на платформах делать только морду и связующий слой, оно считается кросс-платформенным или нет?
hygrid

Согласен про сложное приложение. Пишу клиентов со сложной интерактивной картой используя Cordova и Electron. Большой плюс в том, что выглядит и работает одинаково. Накладные расходы были в самом начале и совсем немного.

Как насчет Qt?
53 вакансии QT против 1200 Android и 1000 вакансий iOS по данным HH
А сравнение было между вакансиями на один qt и вакансиями на все языки программирования и инструменты для андроида?
Elements от RemObjects пытаются совместить нативный подход к разработке UI и общую кодовую базу на одном из языков: Oxygene (Object Pascal), C#, Swift, Java. Не знаю на сколько успешно (не пробовал).
к сожалению вообще первый раз слышу
На мой взгляд идея очень правильная — UI родной для каждой платформы, а бизнес-логика общая.
идея правильная, но пока еще никем нормально не реализованная
а как же моднейший Flutter, например?
ну так суть статьи — не вестись за хайпом, он приходит и уходит
Но суть статьи еще и в том что нативные средства разработки хороши тем что их поддерживают эпл и гугл. Ну, собственно, Flutter это гугл.

Недавно 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, но все не так уж плохо как вы пишите

Уточните пожалуйста, какие огромные преимущества у С# по сравнению с Java и Swift?
Возможно прозвучало слишком холиварно. Имел ввиду больше преимущество для бизнеса. Есть возможность быстрой переквалификации Xamarin работника с разработки приложений c Android на iOS и обратно, использование одного кода на нескольких платформах.
По языку тоже есть плюшки: реализация асинхронной работы, LINQ, реализация делегатов и событий, неймспейсы (swift) но это больше уже нюансы.
Я ни разу не против разработки используя Kotlin/Swift, у нас эти подходы тоже используются. Есть и приложения на Xamarin Forms, а также на Xamarin.Native. Везде свои преимущества.

я тоже делаю на xamarin, правда у меня сам алгоритм портируется, но зато идеально (программа ёфикатор)

прочитал статью и не заметил серьезных доводов за и против. Нативная разработка позволяет сделать приложение более качественным, многогранной. Но не всегда это нужно. Одно дело делать игры, другое калькулятор. Не всегда идеальное пользователям необходимо идеальное качество. Иногда банально надо мобильную версию сайта перетащить в приложение и добавить уведомления
Как раз игры делают в основном кроссплатформенными, а вот калькулятор все-равно как писать))
Скорее неправильно выразился, хотел донести, что нативная разработка не единственное правильное решение ))
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации