2010-11-04 2 views
17

Я хочу разработать приложение для устройств Android и iOS. Есть ли способ разработать приложение один раз и развернуть на обоих? Или это необходимо разрабатывать для каждой платформы отдельно?Android & iOS: как разработать для обоих?

+0

Также см. Http://stackoverflow.com/questions/6171128/ios-android-cross-platform-development, который задает один и тот же вопрос, но был закрыт, поскольку он запросил рекомендации IDE/framework , – sashoalm

ответ

6

Если вам нужны приложения, которые обеспечивают родной опыт, вам придется писать отдельные приложения.

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

Существует также несколько опций, таких как Titanium или PhoneGap, которые являются своего рода гибридными сетевыми/родными системами. Они используют веб-технологии для создания собственных приложений.

5

Ну, у вас есть http://monotouch.net и http://monodroid.net. Таким образом, вы можете иметь общую бизнес-логику и только повторно развивать свой интерфейс.

+1

Многие мобильные приложения просто представляют информацию и имеют очень небольшую бизнес-логику. – mikerobi

2

Все зависит от типа приложения, которое вы хотите разработать. Если это игра, я предлагаю вам написать большую часть ее как собственный код и воспользоваться тем преимуществом, что OpenGL ES 2.0 поддерживается на обеих платформах. Очевидно, что все ваши Java-коды не будут использоваться повторно в iOS, поэтому все, что может быть сделано в качестве переносимой родной библиотеки, помогает уменьшить количество неиспользуемого кода.

0

Codename One - это еще один вариант для разработки Java на обеих платформах. Однако опыта у него нет.

0

Если это игра или в первую очередь графическое приложение, BatteryTech Engine будет делать то, что вы хотите. Yo по-прежнему нужно XCode для сборки для iOS, но в остальном это одна основная база кода для обеих платформ.

1

Используя Qt, которая является платформой C++ для кросс-платформенного развития, которая имеет как LGPL, так и коммерческую лицензию, вы можете разрабатывать для обеих платформ и просто перекомпилировать свое приложение из того же источника. В качестве бонуса вы можете настроить таргетинг на Windows, Linux и Mac.

Имейте ввиду, что Qt предоставляет собственные элементы управления, поэтому виджеты не будут выглядеть как на Android, так и на iOS. Кроме того, как и для всех кросс-платформенных платформ, он предоставит вам самый низкий общий знаменатель с точки зрения возможностей.

От their official blog:

С Qt вы можете разработать поистине кросс-платформенные приложения, которые будут работать на рабочем столе, встраиваемых и мобильных платформ. Qt 5.2 обеспечивает полную поддержку платформ Android и iOS и, таким образом, позволяет создавать кросс-платформенные мобильные приложения, которые упакованы и развернуты как в Google Play, так и в App Store с одной базы кода. Вместо того, чтобы писать две версии одного и того же кода с двумя разными технологиями, вы можете написать его один раз с помощью Qt!

Apple App Store не может принимать приложения, которые используют dylibs, однако, что может force you to use the commercial license для закрытым исходным кодом приложений:

КСН можно использовать динамически связанную версию библиотек Qt, и связать их с приложением. Это позволяет приложению использовать лицензию LGPL для Qt, в то время как приложение само закрывается. Остается неизвестным, будут ли Apple принимать приложения, которые объединяют dylib в iOS App Store.Если Apple не принимает приложения, которые используют в комплекте поставки dylib в App Store, тогда необходимо будет связать Qt статически с приложением. И поскольку порт Qt для iOS использует версию Qt LGPL, правила статической привязки к LGPL начнут работать - это может быть проблемой для приложений с закрытым исходным кодом.

И, наконец, поскольку Qt является основой C++, вам нужно будет использовать C++ для разработки вашего приложения.

0

Я начал использовать NativeScript, и это выглядит многообещающим.

NativeScript - это то, как вы создаете кросс-платформенные, родные приложения для iOS и Android без просмотра веб-страниц. Используйте Angular, TypeScript или современный JavaScript, чтобы получить действительно собственный пользовательский интерфейс и производительность при обмене навыками и кодом в Интернете. Получите 100% доступ к собственным API через JavaScript и повторное использование пакетов из NPM, CocoaPods и Gradle. Открытый исходный код и поддерживается Telerik.

2

Есть много вариантов. Это зависит от того, хотите ли вы уроженец, или хотите, чтобы все было в веб-просмотре. С собственным опытом вам, возможно, придется немного поработать, но это все же лучше, чем разработка 2 отдельных собственных приложений.

Ниже приведены некоторые примеры, с которыми у меня есть опыт.

Родной Опыт

Webview

0

Я использовал много кросс-платформ в течение последних нескольких год, и с моей точки зрения Xamarin является лучшим, потому что в конце концов, вы можете сказать если приложение является кросс-платформенным или нет. но с Xamarin он компилируется в native, поэтому нет очевидной разницы между ними с точки зрения пользовательского интерфейса. Вы можете начать здесь: https://www.xamarin.com