Кроссплатформенная разработка iOS / Android [закрыто]

113

Я некоторое время занимался разработкой приложений для Android на Java и начинаю понимать это. Однако, если я хочу начать работу с версией iOS, мне нужно все кодировать с нуля, что, в общем, нежелательно.

Мне было интересно, какие кроссплатформенные решения существуют и насколько хорошо они работают на практике. Я думал о веб-приложениях - возможно, с использованием jQuery Mobile или Titanium или Adobe Flash / Flex / Air. У меня еще нет Mac, в который, вероятно, придется вложиться.

Итак, мои вопросы:

  1. Какие кроссплатформенные среды разработки существуют для iOS / Android (и / или других устройств)?

  2. Какой у вас был опыт работы с этими инструментами? (это то, что я действительно хочу знать)

Алистер
источник
1
Алистер, вы определенно не первый, кто задает такой вопрос, и не вы первый, кто хочет получить ответ! :) Не забывайте PhoneGap, о котором я слышал неоднозначные отзывы, и Red Foundry, который больше подходит для печенья, но выглядит хорошо - еще не кроссплатформенный.
makdad
1
Вы также можете использовать PhoneGap. Я использовал это и советую вам пойти на это. Существует возможность создания exe-файла (IPA для iOS) с помощью приложения, разработанного на PhoneGap для Android.
Jayprakash Dubey
Я хочу обновить этот вопрос, так как сейчас конец 2016 года, и ландшафт кроссплатформенных инструментов изменился. Я бы сказал, что это зависит от выбранного вами языка программирования и от того, где у вашей команды больше всего опыта: 1. JavaScript: Phonegap Производительность на мобильных устройствах плохая, поэтому рекомендуется использовать инструменты с собственными компонентами, но для логики приложения рекомендуется использовать JS. Возможные варианты: V-Play ( v-play.net/apps ) или React ( reactnative.com ). 2. C #: Xamarin - ваш друг. 3. C ++: используйте фреймворк C ++, например Qt ( qt.io ). Заявление об отказе от ответственности: я один из разработчиков V-Play, основанного на Qt.
Кристиан Фельдбахер
Ответ: Flutter , это новый фреймворк для мобильных устройств от Google для создания собственных интерфейсов на iOS и Android в рекордно короткие сроки.
naXa
Также есть многообещающий активный проект haxe.org .
Евгений Гр. Филиппов

Ответы:

104

Отказ от ответственности: я работаю в компании Particle Code, которая создает кросс-платформенный фреймворк. В этом пространстве масса компаний. Кажется, что каждую неделю появляются новые. Хорошие новости для вас: у вас есть большой выбор.

Эти структуры используют разные подходы, и многие из них в основном предназначены для решения разных проблем. Некоторые из них ориентированы на игры, некоторые - на приложения. Я бы задала следующие вопросы:

Что вы хотите написать? Корпоративное приложение, персональное приложение для повышения производительности, игра-головоломка, шутер от первого лица?

Какую среду разработки вы предпочитаете? IDE или простой текстовый редактор?

Есть ли у вас сильные чувства к языкам программирования? Из знакомых мне фреймворков вы можете выбрать ActionScript, C ++, C #, Java, Lua и Ruby.

Моя компания больше занимается игровым пространством, поэтому я не так много играл с фреймворками JavaScript + CSS, такими как Titanium, PhoneGap и Sencha. Но я могу рассказать вам немного о некоторых фреймворках, ориентированных на игры. Игры и многофункциональные интернет-приложения - это область, в которой кроссплатформенные фреймворки могут проявить себя, потому что эти приложения, как правило, придают большее значение визуальной уникальности и меньше сочетаются с собственным пользовательским интерфейсом. Вот несколько фреймворков, на которые стоит обратить внимание:

  • Unity www.unity3d.com - движок для 3D-игр. Это действительно не похоже на любую другую среду разработки, в которой я работал. Вы создаете сцены с 3D-моделями и определяете поведение, прикрепляя сценарии к объектам. Вы можете писать скрипты на JavaScript, C # или Boo. Если вы хотите написать игру, основанную на 3D-физике, которая будет работать на iOS, Android, Windows, OS X или консолях, этот инструмент, вероятно, для вас. Вы также можете писать 2D-игры, используя 3D-ресурсы - прекрасным примером этого является инди-игра Max and the Magic Marker., 2D-скроллер на основе физики, написанный на Unity. Если вы этого не знаете, я рекомендую проверить это (особенно, если в вашей семье есть дети). Max доступен для ПК, Wii, iOS и Windows Phone 7 (хотя последняя версия является портом, поскольку Unity не поддерживает WinPhone). Unity поставляется с некоторыми примерами игр с 3D-активами и текстурами, которые действительно помогают разобраться в довольно сложной среде.

  • Corona www.anscamobile.com/corona - это движок для 2D-игр, который использует язык сценариев Lua и поддерживает iOS и Android. Смысл продажи Corona - это возможность очень быстро писать игры на основе физики с помощью нескольких строк кода, и большое количество игр на основе Corona в магазине приложений iOS является свидетельством его успеха. Среда очень скудная, что понравится некоторым людям. Поставляется с симулятором и отладчиком. Вы добавляете текстовый редактор по выбору, и у вас есть среда разработки. Базовый SDK не включает в себя какие-либо компоненты пользовательского интерфейса, такие как кнопки или списки, но надстройка CoronaUI доступна для подписчиков.

  • Particle SDK www.particlecode.com - это немного более общее кроссплатформенное решение с опытом работы в играх. Вы можете писать на Java или ActionScript, используя модель приложения MVC. Он включает IDE на основе Eclipse с редактором пользовательского интерфейса WYSIWYG. В настоящее время мы поддерживаем сборку для устройств Android, iOS, webOS и Windows Phone 7. Вы также можете выводить Flash или HTML5 для Интернета. Фреймворк изначально был разработан для сетевых многопользовательских социальных игр, таких как покер и нарды, и подходит для 2D-игр и приложений со сложной логикой. Фреймворк поддерживает 2D-графику и включает 2D-физический движок.

NB:

Сегодня мы объявили о приобретении Particle Code компанией Appcelerator, создателем кроссплатформенной платформы Titanium.

...

С 1 января 2012 года [ Particle Code ] больше не будет официально поддерживать платформу [ Particle SDK ].

Источник

  • Airplay SDK www.madewithmarmalade.com - это платформа C ++, которая позволяет вам разрабатывать как в Visual Studio, так и в Xcode. Он поддерживает как 2D, так и 3D графику. Airplay нацелен на iOS, Android, Bada, Symbian, webOS и Windows Mobile 6. У них также есть надстройка для создания приложений AirPlay для PSP. Мой C ++ очень ржавый, я мало с ним играл, но выглядит круто.

Что касается кривой обучения, я бы сказал, что у Unity самая крутая кривая обучения (для меня), Corona была самой простой, а Particle и Airplay находятся где-то посередине.

Еще один интересный момент - это то, как фреймворки работают с различными форм-факторами. Corona поддерживает динамическое масштабирование, знакомое разработчикам Flash. Это очень легко использовать, но это означает, что вы в конечном итоге тратите пространство экрана при переходе с экрана 4: 3, такого как iPhone, на 16: 9, как новые устройства qHD Android. Редактор пользовательского интерфейса Particle SDK позволяет создавать гибкие масштабируемые макеты, но также позволяет настраивать макеты для отдельных размеров экрана. Это займет немного больше времени, но позволит вам настроить приложение для каждого экрана.

Конечно, то, что работает для вас, зависит от вашего индивидуального вкуса и стиля работы, а также от ваших целей, поэтому я рекомендую загрузить пару этих инструментов и попробовать их. Все эти инструменты можно попробовать бесплатно.

Кроме того, если бы я мог просто сделать объявление для общественности - большинство этих инструментов действительно активно разрабатываются. Если вы найдете фреймворк, который вам нравится, обязательно отправьте отзыв и сообщите им, что вам нравится, что вам не нравится и функции, которые вы хотели бы видеть. У вас есть реальная возможность повлиять на то, что войдет в следующие версии этих инструментов.

Надеюсь это поможет.

DocDude
источник
Я думал больше о корпоративной разработке, но вы, возможно, вдохновили меня изучить один из этих SDK для развлечения.
Alister
ссылки на каждый фреймворк были бы полезны
Петрус Терон
2
Обновление: Particle Code был приобретен Appcelerator, производителями Titanium, поэтому судьба Particle SDK остается неопределенной. Airplay необъяснимо сменила название на «Мармелад».
DocDude
15

MonoTouch и MonoDroid, но что теперь будет с этой частью Attachmate, остается только гадать. Конечно, даже с монорешениями вы по-прежнему создаете некросс-платформенные представления, но идея заключается в повторном использовании бизнес-логики.

Следите за http://www.xamarin.com/, будет интересно посмотреть, что они придумали.

Дерек Битти
источник
12

Мой опыт создания чего-то очень простого в PhoneGap + jQuery Mobile был прекрасен. Я быстро сделал это для iOS. Однако он не работал на моих телефонах Android без внесения некоторых изменений. Проект представлял собой очень простое приложение, позволяющее делать снимки и размещать их на веб-сайте. И, в конце концов, оно было «неуклюжим» по сравнению с настоящим нативным приложением.

Я не верю, что когда-либо будет легкая кроссплатформенная разработка. Я думаю, что браузер максимально приближен к вам. Я думаю, что, выбирая что-то вроде PhoneGap, вы просто меняете один набор болевых точек на другой.

Evan
источник
7

Если вы не хотите использовать полноценный фреймворк для кросс-платформенной разработки, обратите внимание на C ++ как на вариант. iOS полностью поддерживает использование C ++ для логики вашего приложения через Objective-C ++. Я не знаю, насколько хорошо поддержка Android C ++ через NDK подходит для выполнения вашей бизнес-логики на C ++, а не только для некоторых критических для производительности фрагментов кода, но в случае, если этот вариант использования хорошо поддерживается, вы можете попробовать.

Этот подход, конечно, имеет смысл только в том случае, если логика вашего приложения составляет большую часть вашего проекта, поскольку пользовательские интерфейсы должны быть написаны индивидуально для каждой платформы.

Фактически, C ++ является единственным наиболее широко поддерживаемым языком программирования (за исключением C) и, следовательно, основным языком большинства крупных кроссплатформенных приложений.

йомен
источник
3
Кстати, на самом деле Android, похоже, напрямую поддерживает действия, написанные только на C ++: developer.android.com/reference/android/app/NativeActivity.html
yeoman
4
С одной оговоркой - нет доступа к Java (то есть без интеграции сторонних библиотек или доступа к SDK) от NativeActivity. Делает его непригодным для многих целей.
rbgrn
6

Хотя я только начал изучать эту область разработки, я думаю, что все сводится к этой основной разнице: некоторые инструменты сохраняют исходный код, а некоторые переносят на нативный ...

например, PhoneGap просто хранит код HTML / CSS / JS, который вы пишете, и обертывает его достаточным количеством кода iOS, чтобы считаться приложением, тогда как Appcelerator предоставляет вам проект XCode ... так что, если вы не знакомы с iOS, тогда это не принесет вам никаких преимуществ по сравнению с PhoneGap, но если вы ДЕЙСТВИТЕЛЬНО знаете немного, это может дать вам немного больше возможностей для настройки собственных версий после ваших больших усилий по кодированию.

Я сам не использовал appcelerator, но пару недель назад работал над проектом, в котором один из членов нашей команды создал с его помощью целое приложение для iPad примерно за 24 часа.

И да, чтобы действительно представить Apple, вам понадобится Mac, но если это не ваша основная рабочая платформа, вы можете уйти дешево.

Робот Вудс
источник
3

Капучино или PhoneGap .

Иногда попытка найти ярлык не экономит ваше время и не дает сопоставимого конечного продукта.

SK9
источник
3

Если вы когда-либо использовали LUA, вы можете попробовать Corona SDK может создавать приложения, которые работают на IOS и Android.

https://coronalabs.com/

Я скачал его и кое-что испортил, я считаю LUA очень простым в изучении языком сценариев без обычных проблем / ограничений языка сценариев ....

Джефф
источник
2

Также есть BatteryTech, который мы используем в течение последних 18 месяцев и выпустили на его основе несколько игр. http://www.batterypoweredgames.com/batterytech

Вся поддержка C ++, Android и iOS, все пользователи получают полный исходный код. Новая версия 2 включает привязки lua.

Роб
источник
3
По состоянию на 30.05.12: 200 долларов США за лицензию для 5 или менее разработчиков. 800 долларов за более чем 5. Не может использоваться для проектов с открытым исходным кодом.
Роджер Даль