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

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

Поправьте, пожалуйста, если ошибаюсь, но кажется, что все альтернативные варианты, кроме progressive web apps, так или иначе, требуют MacOS и Xcode для того, чтобы на выходе получилось мобильное приложение, работоспособное на настоящем iPhone / iPad.
Tabris.js может делать билды в облаке, но тестировать все равно где-то нужно. Он на базе Кордовы, но работает не в webview.

У меня нет мака, но приложение на кордове как то надо сабмитить в аппстор. Мой набор такой: osx sierra на virtualbox. Там очееь тупит xcode, боль вести отладку, еще не хватает клавишь. Поэтому js часть приходится править в visual studio code. Удобнее чем в xcode. Отладку на девайсе залочили для новых иос. Не видит макос проброшеннок юсб устройство. Сборка и публикация через xcode. Как то так. ))

Ну или hackintosh для сборки и публикации, linux/win для разработки
На хакинтоше и разрабатывать вполне себе можно. Особенно если железо нормальное, то это еще и удобнее, чем на нетоповых макбуках (например, у меня с i5 6500 компиляция в 4 раза быстрее происходит, чем на макбук про 14 года)
Насколько мне известно, XCode, а соответственно Mac нужен для написания любого приложения под iOS, в обычном понимании.
Как бы, можно кодить и под Windows, но для сборки нужен будет Mac.
Про Vue Native забыли написать, там тоже есть пару вариантов, но сам с ними детально не разбирался.
Weex.
Вроде как на Xamarin можно без мака обойтись, только айфон нужен.

Сборка для IPhone только при подключению к макбуку

использовать веб-страницу как отдельное приложение

Похоже самый бюджетный вариант, вполне пригодный для прототипа.
Есть сервисы которые могут опубликовать такое приложение в Apple store?
Если не хочется тратиться на мак и айфон/айпад, есть интересное решение на основе React Native: expo.io оно умеет в облаке собирать и apk и ipa (и, что интересно, умеет OTA обновление JS бандла). Я от этого инструмента в восторге. Кстати, create-react-native-app, который предлагается разработчиками RN, сделан на его основе.

Так же у них есть сверх лайтовый вариант: простой веб-редактор кода, в котором можно накидать простой прототип и тут же (да, во время набора кода!) смотреть результат на реальном устройстве / встроенном в страницу эмуляторе. Вот он: snack.expo.io.

Скриншот по которому всё сразу понятно
image
А эту штуковину можно с С++ библиотеками скрестить?
Можно eject сделать, тогда оно сформирует нормальный iOS и Android проекты, которые можно либо кастомизировать напрямую (в смысле дописать какой надо код), либо добавлять нативные плагины, как указано в инструкции. Правда, пропадет возможность облачной сборки, как я понимаю.
В топике еще про Qt/QML забыли. Самое оно.
Ни одна кросплатформенная система не позволит написать качестввенное приложение одинаково хорошо работающее и на iOS и на Android. А есили испольвзать для написания толкьо под айос по причине «не хочу разбиратсья с новым языком», то как мне кажется над заканчивать с программированием вообще.
flutter

Долгие матырства с кордовой меня в этом убедили. Правда иногда посещают мысли, что я не умею просто, но я гоню эти мысли подальше)) так и живем

Потому-что не знают о нем. Популярность довольно-таки низкая.
Кстати тоже нужен xcode.
Посмотрел эту штуку. Вопрос. Чем оно концептуально отличается от React Native? Понятно что и там и там используется нативный UI для каждой ОСи. Интересует программная часть там выполняется в некой VM, как RN выполняется в JavaScriptCore или всё таки магически транслируется в полностью нативный бинарь?
я пока сам не копал глубоко, только в планах стоит поиграться с Flutter. Но вот, что я видел из материалов по нему и что может помочь найти ответ: статья от Гугл и презентация с Дроидкон Берлин недельной давности
Спасибо, да там есть прямой ответ:
Dart is compiled “ahead of time” (AOT) into native code for multiple platforms.

Согласен, интересная вещь. Вот если бы не Dart (не имею ничего против него, просто это ещё один язык в отличие от JS, который много кто знает), то вообще неоценимая была бы.
В react-native нету вебсервера. Да и от там просто не нужен. Весь UI работает используя нативные компоненты, в то время когда логика работает на js в отдельном потоке и обменивается данными с UI через специальную прослойку. Это убирает всевозможные фризы и торможения интерфейса какие есть в случае кордовы или ионика.
Интересный нюанс (я, например, не знал): Apple реджектит приложения в которых ничего нет кроме WebView. Просто обернуть страницу в приложение, как предлагается в последнем разделе, не получится.

Не совсем так — если у вас приложение на какой-либо гибридной платформе (Cordova/PhoneGap и мильон производных от них) то приложение и есть ВебВью, но в нем доступно разнообразное API и соотв. если ваше приложение просто показывает контент — например, каталог в точности как на сайте, то приложение зареджектят, но если приложение предлагает какой-либо функционал, то претензий не будет. У нас был случай когда разработчик создал чисто гибридное приложение на нашей платформе где по сути был его сайт без функционала, Эпол зареджектил, а разработчик очень хотел — предложили ему добавить нативный таббар для переключения между ВебВью — и Эпол пропустил — типа есть нативный функционал.

React native не использует веб вью, поправьте меня если я не прав. Там ведь нативные вьюшки строятся.

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

Вроде бы статья "быстрый старт" называется. Нужен мак, нужен мак, а почему нет ни слова о виртуалке с MacOS или хакинтош? Именно таким и может быть быстрый старт...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий