Огляд крос-платформенних рішень для розробки мобільних додатків

Огляд крос-платформенних рішень для розробки мобільних додатків

У цій статті ми порівняємо 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

Image