Розробка крос-платформ 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.
Джайпракаш Дюбі

Я хочу розповісти про це питання, оскільки зараз кінець 2016 року, а ландшафт міжплатформних інструментів змінився. Я б сказав, що це залежить від обраної вами мови програмування та місця, де ваша команда має найбільше xp з: 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

Відмова від відповідальності: я працюю в компанії, яка містить частину коду, яка створює міжплатформові рамки. У цьому просторі є багато компаній. Здається, що щотижня виникають нові. Гарна новина для вас: у вас багато варіантів.

Ці рамки використовують різні підходи, і багато з них принципово розроблені для вирішення різних проблем. Деякі зосереджені на іграх, деякі - на додатках. Я хотів би задати наступні питання:

Що ти хочеш написати? Корпоративний додаток, програма особистої продуктивності, гра-головоломка, шутер від першої особи?

Яке середовище розвитку ви віддаєте перевагу? 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 та Magic Marker, двовимірний скроллер на основі фізики, написаний в Unity. Якщо ви цього не знаєте, рекомендую перевірити це (особливо якщо у вашому домогосподарстві є діти). Макс доступний для ПК, 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 двигун фізики.

Примітка:

Сьогодні ми оголосили, що Кодекс частинок придбав Appcelerator, виробник кросплатформенної системи Titanium.

...

З 1 січня 2012 року [ Код частинок ] більше не буде офіційно підтримувати платформу [ Частинка SDK ].

Джерело

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

Щодо кривої навчання, я б сказав, що в Єдності була найкрутіша крива навчання (для мене), Корона була найпростішою, а Частинки та Ейрпіл - десь посередині.

Ще один цікавий момент - це те, як рамки обробляють різні факторні форми. Corona підтримує динамічне масштабування, яке буде знайоме розробникам Flash. Це дуже просте у використанні, але означає, що ви втрачаєте простір екрану, переходячи від екрану 4: 3, як iPhone, до 16: 9, як нові пристрої Android QHD. Редактор інтерфейсу інтерфейсу Particle SDK дозволяє розробляти гнучкі макети в такому масштабі, але також дозволяє налаштувати макети під окремі розміри екрана. Це займає трохи більше часу, але дозволяє додаток виглядати на замовлення для кожного екрану.

Звичайно, те, що працює для вас, залежить від вашого індивідуального смаку та стилю роботи, а також від ваших цілей - тому я рекомендую завантажити пару цих інструментів і дати їм знімок. Усі ці інструменти можна спробувати.

Крім того, якщо я міг би просто розмістити оголошення про державну службу - більшість цих інструментів реально активно розвиваються. Якщо ви знайдете вподобану вам рамку, обов'язково надсилайте відгуки та повідомте їм, що вам подобається, що вам не подобається та функції, які ви хочете бачити. У вас є реальна можливість впливати на те, що переходить у наступні версії цих інструментів.

Сподіваюся, це допомагає.


Я думав більше про розвиток підприємства, але ви, можливо, надихнули мене розглянути один із цих SDK для розваги.
Алістер

посилання на кожен фреймворк були б корисні
Petrus Theron

2
Оновлення: Код частинок був придбаний Appcelerator, виробниками Titanium, тому доля пакета SDK не визначена. Airplay змінив назву, досить незрозуміло, на "Мармелад".
DocDude

15

MonoTouch і MonoDroid, але що буде з цією частиною Attachmate зараз, вже ніхто не здогадується. Звичайно, навіть завдяки моно рішенням ви все ще створюєте непересічні погляди на платформу, але ідея полягає у повторному використанні бізнес-логіки.

Слідкуйте за http://www.xamarin.com/, буде цікаво подивитися, що вони придумують.


12

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

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


7

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

Такий підхід, звичайно, має сенс лише в тому випадку, якщо логіка вашої програми становить найбільшу частину вашого проекту, оскільки користувацькі інтерфейси повинні писатися індивідуально для кожної платформи.

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


3
Btw, 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, але якщо ви DO трохи знаємо, що може дати вам тільки трохи більше можливостей налаштувати власні версії після ваших великих зусиль кодування.

Сам я не використовував програму-прискорювач, але працював над проектом пару тижнів тому, коли один з членів нашої команди зробив цілий додаток iPad приблизно за 24 години, використовуючи його.

І так, щоб насправді подати яблуко, вам доведеться придбати mac, але якщо це не ваша основна робоча платформа, ви можете дешевше.


3

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

Іноді спроба знайти ярлик не економить ваш час і не дає порівнянному кінцевому продукту.



3

Якщо ви коли-небудь використовували LUA, ви можете спробувати Corona SDK може створювати додатки, які працюють на IOS та Android

https://coronalabs.com/

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


2

Є також BatteryTech, який ми використовували протягом останніх 18 місяців і випустили кілька ігор. http://www.batterypoweredgames.com/batterytech

Вся підтримка C ++, Android та iOS, усі користувачі отримують повний вихідний код. Новий v2 включає в себе прив'язки lua.


3
Станом на 5/30/12: 200 доларів за ліцензію для 5 або менше розробників. 800 доларів більше ніж 5. Не можна використовувати для проектів з відкритим кодом.
Роджер Даль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.