У цій статті ми порівняємо 6 рішень для крос-платформенної розробки, які були популярні в 2016 році і спробуємо знайти краще рішення.
Крос-платформні фреймворки PhoneGap, Xamarin, Unity, Qt і Appcelerator Titanium, Telerik Platform на сьогоднішній день займають 80% ринку крос-платформенної розробки для мобільних пристроїв.
У таблиці нижче представлені основні характеристики для кожного фреймворку:
|
PhoneGap |
Xamarin |
Unity |
Qt |
Appcelerator Titanium |
Telerik AppBuilder |
|
|
Мови |
JavaScript, HTML5, CSS3 і нативні мови (Java, Objective-C, C #) |
C#, Xaml |
C#, UnityScript, Boo |
C++ QML |
JavaScript, Python, Ruby, PHP |
.Net, JavaScript, HTML5, Java, PHP |
|
Підтримувані латформи |
Android, iOS, Windows Phone, Blackberry, WebOS, Symbian, Bada, Ubuntu, Firefox OS. |
iOS, Android, Windows Phone and Windows 8/RT, Tizen |
Android, iOS, Windows Phone, Tizen, PS 4, Xbox One |
Android, iOS, WinRT, Windows, Symbian, Linux, QNX |
iOS, Android, BlackBerry, Windows, Tizen, Denso |
iOS, Android, BlackBerry, Windows, Windows Phone |
|
Ціни |
Ціни PhoneGap Платна версія: від 9.99 $ Безкоштовна версія: доступна Adobe Creative Cloud Membership: доступно |
Ціни Xamarin Xamarin Studio Community: безкоштовно Visual Studio Community: безкоштовно Visual Studio Professional: доступно Visual Studio Enterprise: доступно |
Ціни Unity Personal Edition: безкоштовно Professional Edition: від 75 $ на місяць |
Ціни Qt Є безкоштовна версія. Платні версії починаються від 79 $. |
Ціни Appcelerator Є безкоштовний пробний період Indie: 39 $ на місяць Pro: $99 на місяць |
Ціни Telerik AppBuilder Є безкоштовний пробний період Ціна від 39 $ на місяць |
|
Open source |
+ |
- |
- |
+ |
+ |
- |
|
UI |
Web |
Native |
UI Canvas |
Native |
Native |
Web |
PhoneGap
PhoneGap дозволяє створювати мобільні програми використовуючи стандартні веб технології (HTML5, JavaScript and CSS3). В результаті це призвело до швидкого зростання популярності фреймворку, з його допомогою можна обійтися без розробки на таких мовах програмування як:Java for Android, Objective-C for iOS и C#.
PhoneGap Build дозволяє робити збірки для iOS, Android і Windows Phone одночасно, без необхідності встановлювати будь-які SDK tools (звичайно, в цьому є частка лукавства - при розробці все одно краще робити збірку локально, хоча б на Android, перед відправкою на тестування). Але що більш важливо, цей сервіс дозволяє робити збірки для iOS у хмарі без наявності Mac.
Встановлення PhoneGap вимагає неймовірних зусиль, тому раджу звільнити пів дня... Жарт. Встановлення для XCode зайняла хвилини 3 - полягала в скачуванні архіву, розпакуванні та установці. Ось власне і все.
PhoneGap представляє можливість використовувати нативні функції мобільного пристрою по роботі з:
- акселерометром,
- камерою,
- компасом,
- контактами,
- файлове сховище,
- геолокацією,
- базою даних,
- подіями, повідомленнями,
- медія та ін.
Якщо програма не виходить за рамки даних пунктів, швидкість розробки з використанням кадру PhoneGap буде на порядок вищою, ніж розробка нативної програми для кожної з платформ. Відео з розробкою програми та описом PhoneGap.
Переваги:
- PhoneGap має просте API, що дозволить легко почати розробку, для тих хто стикався з HTML, CSS і JavaScript.
- Використання будь-яких існуючих JavaScript бібліотек (JQuery, Prototype, Sencha Touch)
- Підтримка всіх мобільних платформ
Недоліки:
- Інтерфейс користувача візуалізується за допомогою вбудованого браузера. Це створює труднощі в отриманні зворотного зв'язку порівняно з нативним додатком.
- Часто існуючі плагіни виявляються застарілими, тому іноді доведеться писати свої.
Xamarin
Xamarin другий у нашому списку крос-платформенний фреймворк. Xamarin дозволяє створювати одну єдину логіку програми із застосуванням C # і .NET.
Функціонально платформа Xamarin представляє ряд субплатформ. Ці субплатформи відіграють велику роль - через них програми можуть направляти запити до прикладних інтерфейсів на пристроях. Визначається візуальний інтерфейс, прив'язується логіка на C #, і все це буде працювати на Android, iOS і Windows Phone. Відео з розробкою програми на Xamarin.
Переваги:
- Велика спільнота, що розвивається.
- Розробники можуть використовувати TestCloud для тестування програм автоматично.
- Якщо ви вже знайомі з C # і .NET то вам не потрібно буде витрачати багато часу на вивчення декількох нових фреймворків.
- Можна повторно використовувати вже написаний код.
- Програми під різними системами виглядатимуть дуже схоже.
- Динамічна верстка для iOS в нескінченне число раз простіше, ніж використання constraints вручну.
- За рахунок CustomRenderer'ів стандартні контролі легко доповнюються довільними властивостями (наприклад, зробити градієнтну заливку кнопок - справа пари хвилин, хоча «з коробки» це не працює).
Недоліки:
- Деякі інтерфейсні патерни важко реалізувати на monodroid і дуже важко на monotouch, оскільки рішення за замовчуванням для тієї чи іншої фітчі спираються на милиці платформи, які можуть просто не працювати в Xamarin.
- Виникають проблеми з боку платформи mono, monotouch і monodroid. Ваш додаток має задовольняти особливим вимогам стабільності.
- Android сторінки неможливо розташувати як частину вже існуючого Activity/Fragment.
- Реалізовані не всі контролі.
Telerik AppBuilder
Однією з основних причин використовувати AppBuilder є повноцінна онлайн IDE. Вона дозволяє створювати, тестувати і навіть публікувати гібридні програми з будь-якого комп'ютера або мобільного пристрою, без необхідності в його завантаженні.
Можливість створювати iOS програми працюючи на Windows або Linux ще одна перевага.
І наостанок, приналежність AppBuilder до Telerik Platform дає вам можливість користуватися такими фічами як аналітика, спливаючі повідомлення, авторизація користувачів і хмарним сховищем. Детальний опис у статті та відео.
Переваги:
- Telerik надає плагіни Visual Studio і Sublime Text для AppBuilder.
- AppBuilder пропонує швидкий спосіб імпорту плагінів Cordova.
- Повноцінна онлайн IDE.
- Легкий у використанні та вивченні
Недоліки:
- Невелика спільнота
Unity
Мультиплатформенний інструмент для розробки 2D і 3D додатків та ігор Unity, також один з кращих інструментів для демонстрації 3D контенту. Створені за допомогою Unity програми працюють під операційними системами Windows, OS X, Linux, Android, Apple iOS, Windows Phone, BlackBerry, а також на ігрових приставках Wii, PlayStation 3 і Xbox 360. Відео з розробкою мобільної гри на Unity.
Переваги:
- Відмінний варіант для створення мобільних ігор для цілого ряду пристроїв
- 3D-рушій дає високоякісні результати без будь-яких складних конфігурацій
- Є багато хороших безкоштовних плагінів
- Unity дозволяє розробнику зробити свої власні шейдери і змінити шлях, яким Unity візуалізує гру.
Недоліки:
- UI і складність у використанні для новачків
- Вихідний код недоступний
- Компілятори Unity не оптимізовані для ARM процесорів на деяких мобільних пристроях.
Qt
Qt бібліотека для створення кроссплатформних віконних програм на C++. Qt варто розглядати не стільки як набір класів для створення GUI, а швидше як повноцінний інструментарій класів на всі випадки життя. Є можливість розробляти програми не тільки C++, але і мовою QML, сильно схожою з JavaScript. Це особлива гілка розвитку Qt, спрямована на швидке прототипування і розробку мобільних додатків. Відео з розробкою Tiled Map Editor на Qt.
Переваги:
- Qt має безліч хороших інструментів, які допоможуть у розробці, наприклад: IDE QT Creator, Qt Designer и code profiling.
- Він має бібліотеки, що містять інтуїтивно зрозумілі API інтерфейси для елементів, таких як мережі, анімації та багато іншого.
Недоліки:
- Qt складний для початківців
Appcelerator Titanium
Titanium - це повністю відкрита платформа для розробки, розгортання, поширення, і, в кінцевому підсумку, для виконання веб-додатків. Appcelerator Titanium дозволяє створювати мобільні програми на JavaScript, HTML і CSS.
Ви можете створювати сучасні, а головне - нативні програми, використовуючи будь-яку популярну на сьогоднішній день операційну систему: Windows, GNU/Linux или MacOS X.
Програми створені за допомогою даного SDK будуть дійсно нативними. Контролер навігації на Андроїді буде виглядати звично і не так як на iOs. Причому не тільки вид, але і сам код програми буде теж нативний. Це до речі не заважає вам створювати і класичний WebView і наповнити його бажаним web контентом.
Переваги:
- JavaScript дозволяє легко розробляти програми без використання мов платформи.
- Appcelerator дозволяє робити аналітику в режимі реального часу
- Використання native API дасть більш високу продуктивність для програм, які не дуже великі.
Недоліки:
- Є затримки при запуску програми через завантаження бібліотеки
- Важко створювати складні програми, оскільки використання JavaScript негативно позначається на продуктивності програм.
React Native
Що таке React Native? Це JS-фреймворк, заснований на JS і React - JS-бібліотеці для створення UI (View-рівня).
Технологія дуже перспективна, але молода, тому платформа подекуди ще сира. Версія для Android з'явилася пізніше, тому для iOS-додатків поки є більше компонентів. Також варто враховувати, що при розгортанні програми на пристрій користувача потрапить весь JS, тому на рівні презентації не варто тримати секретну бізнес-логіку. Можна сказати, що зараз React Native можна використовувати для швидкого прототипування мобільних версій ваших веб-програм. Причому якщо веб-програма вже написана на ReactJS, то швидкість перенесення зростає в рази. Приклад розробки на React Native.
Переваги:
- Єдиний воркфлоу та інструменти: неважливо, чи працюєте ви на Android- або iOS-версією - все одно використовуєте одні інструменти.
- З цієї причини - швидкість і простота розробки.
- Обв'язка успадкованої програми в JS API і гібридні програми: припустимо, у вас вже є готовий додаток для iOS, і ви хочете перейти на React Native. Тоді можна обернути нативні компоненти так, щоб вони були доступні в React Native. Так ви можете поступово переходити на React, і виходить гібридний додаток - половина його нативна, а половина - в React, і кілька успадкованих компонентів - в JS API.
Немає ідеального рішення, кожен фреймворк має свої плюси і мінуси. Для дуже простих програм я б порадив використовувати PhoneGap поки чуйність не стане ключовим критерієм. А для більш серйозної розробки краще використовувати Xamarin, але навіть з Xamarin краще поєднувати нативну розробку для більшості елементів користувацького інтерфейсу.
Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.
З якими з цих технологій ви працювали?
24.51% PhoneGap 174
26.06% Xamarin 185
21.41% Unity 152
30.14% Qt 214
3.52% Appcelerator Titanium 25
1.13% Telerik AppBuilder 8
12.11% Інший 86
23.8% Не працював з жодним 169
Проголосували 710 користувачів. Утрималися 322 користувача.
Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.
Ваш досвід з PhoneGap?
11.69% Дуже задоволений 29
47.98% Працювати можна 119
40.32% Не сподобалося 100
Проголосували 248 користувачів. Утрималися 556 користувачів.
Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.
Ваш досвід з Xamarin?
31.88% Дуже задоволений 73
44.1% Працювати можна 101
24.02% Не сподобалося 55
Проголосували 229 користувачів. Утрималися 559 користувачів.
Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.
Ваш досвід з Unity?
40.98% Дуже задоволений 84
45.37% Працювати можна 93
13.66% Не сподобалося 28
Проголосували 205 користувачів. Утрималися 555 користувачів.
Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.
Ваш досвід з Qt?
49.6% Дуже задоволений 123
33.87% Працювати можна 84
16.53% Не сподобалося 41
Проголосували 248 користувачів. Утрималися 529 користувачів.
Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.
Ваш досвід з Appcelerator Titanium?
8.33% Дуже задоволений 7
32.14% Працювати можна 27
59.52% Не сподобалося 50
Проголосували 84 користувачі. Утрималися 582 користувача.
Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.
Ваш досвід з Telerik AppBuilder?
3.17% Дуже задоволений 2
17.46% Працювати можна 11








