

Ionic — це відкритий SDK для розробки гібридних мобільних застосунків, створений Максом Лінчем, Беном Сперрі та Адамом Бредлі з Drifty Co. у 2013 році  Оригінальна версія була випущена в 2013 році і створена на основі AngularJS і Apache Cordova.

Однак, останню версію було перебудовано як набір веб-компонентів, що дозволяє користувачеві вибирати будь-який фреймфорк користувацького інтерфейсу, наприклад Angular, React або Vue.js. Це також дозволяє використовувати компоненти Ionic цілком без інтерфейсу користувача. 

Ionic надає інструменти та сервіси для розробки гібридних мобільних, настільних і поступових вебзастосунків на основі сучасних технологій і методів веб-розробки, з використанням таких веб-технологій, як CSS, HTML5 і Sass .

Зокрема, мобільні застосунки можна створювати за допомогою цих веб-технологій, а потім розповсюджувати через нативні крамниці застосунків, такі як Google Play чи App Store, для встановлення на пристрої, за допомогою Cordova або Capacitor. 

Історія
Ionic був створений компанією Drifty Co. у 2013 році. У березні 2014 року Drifty отримав 1 мільйон доларів початкового фінансування від Arthur Ventures. 

Після випуску альфа-версії фреймворку в листопаді 2013 року, була випущена бета-версія 1.0 в березні 2014 року, остаточна версія 1.0.0 "uranium-unicorn" у травні 2015 року. 

25 січня 2017 року була випущена друга версія фреймворку Ionic. Він був значно перероблений і базувався на наступнику AngularJS — Angular . Це супроводжувалося переходом від JavaScript до TypeScript. 

Ionic 3 був випущений 1 квітня 2017 року. Нумерацію версій також було змінено і вона почала відповідати семантичній версії. Основними особливостями цієї версії є підтримка Angular 4, а також сумісність з новими версіями TypeScript. 

Ionic 4 був випущений як бета-версія фреймворку 24 липня 2018 року. Основними нововведеннями є підвищення продуктивності та сумісність із кількома іншими фреймворками. Версія 4 була остаточно випущена 23 січня 2019 року. Через нову структуру папок пряма міграція з версії 3 до версії 4 неможлива. Ionic 4 дозволяє розробникам обирати інші фреймворки, крім Angular, такі як React, Vue.js і веб-компоненти. 

Ionic 5 був випущений 11 лютого 2020 року. Окрім покращення продуктивності, було додано багато нових компонентів для iOS 13.

Послуги та функції
Ionic використовує плагіни Cordova та, нещодавно, Capacitor, щоб отримати доступ до функцій операційної системи, таких як камера, GPS, ліхтарик тощо.    Користувачі можуть створювати свої застосунки, а потім налаштовувати їх для Android, iOS, Windows та MacOS (з Electron) або сучасних браузерів.  Ionic дозволяє створювати та розгортати застосунки, поєднуючи інструменти збірки Cordova або Capacitor із спрощеним інструментом командного рядка. 

Ionic включає мобільні компоненти, типографіку, інтерактивні парадигми та розширювану базову тему. 

Використовуючи веб-компоненти, Ionic надає власні компоненти та методи взаємодії з ними. Один із таких компонентів, віртуальна прокрутка, дозволяє користувачам прокручувати список із тисяч елементів без будь-яких втрат продуктивності. Інший компонент, вкладки, створює інтерфейс із вкладками з підтримкою навігації у нативному стилі та керування станом історії. 

Окрім SDK, Ionic надає послуги, які розробники можуть використовувати для ввімкнення таких функцій, як розгортання коду, автоматичне збирання . Ionic також надає власну IDE, відому як Ionic Studio. 

Ionic також надає інтерфейс командного рядка (CLI) для створення проектів. Інтерфейс командного рядка також дозволяє розробникам додавати плагіни Cordova та додаткові пакети інтерфейсу, увімкнути push-повідомлення, генерувати піктограми застосунків і екрани-заставки, а також створювати власні двійкові файли. 

Підтримувані платформи
Для Android, Ionic підтримує Android 4.4 та новіші. Для iOS, iOS 10 і новіших версій.  Ionic 2 підтримує універсальну платформу Windows для створення застосунків Windows 10.  Ionic Framework, побудований на Angular.js, також підтримує застосунки для BlackBerry 10. 

Швидкодія
Застосунки Ionic працюють із сумішшю нативного коду та веб-коду, забезпечуючи повний доступ до нативної функціональності, якщо необхідно, із основною частиною інтерфейсу користувача застосунку, створеною за стандартною веб-технологією. Ionic використовує власні функції апаратного прискорення, доступні в браузері (наприклад, анімацію CSS), і оптимізує рендеринг (уникаючи ресурсозатратних маніпуляцій DOM ). Оскільки анімація CSS у веб-браузері забезпечується графічним процесором, ресурс головного процесора звільняється для інших операцій.

Встановлення
Ionic є модулем npm і вимагає Node.js. 

Командний рядок
Ionic пропонує набір команд для легкого використання своїх функцій, які розробник може використовувати після встановлення Ionic CLI. Приклад кількох основних команд:
 ionic init
Ініціалізує новий проект
 ionic build
Компілює код розробленого застосунку, і готує його до розгортання.
 ionic capacitor add 
Додає папку із зазначеною платформою до проекту, для якої розробник хоче створити застосунок. Варіанти: ios, android або electron.
 ionic capacitor build 
Команда виконує наступні операції:

* запускає команду ionic build
* копіює веб-файли для вибраної платформи
* відкриває середовище розробки для вибраної платформи (Xcode для iOS, Android Studio для Android)

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

За замовчуванням Ionic запускає сервер розробки в локальній мережі. Однак можна використати параметр — external, щоб установити команду на зовнішню адресу, де буде доступна поточна версія застосунку.

Альтернативні технології
Ionic — не єдиний інструмент у своєму роді, який дозволяє розробникам писати один вид коду для кількох пристроїв або платформ, наприклад веб-браузерів, мобільних застосунків Android та iOS. 

React Native
Однією з найкращих альтернатив для Ionic є React Native — фреймворк із відкритим вихідним кодом для розробки застосунків від Facebook. Використовуючи React Native, користувачі можуть розробляти застосунки для Android, iOS, Windows, MacOS та веб-застосунки. React Native є дуже вдалим вибором як для малих, так і для великих компаній. Він дозволяє створювани потужні застосунки для Android та iOS за допомогою попередньо написаного коду на JavaScript. Під час написання коду для застосунку на React Native використовуються компоненти React.

Flutter
Flutter — фреймфорк від Google з відкритим вихідним кодом для розробки мобільних і веб-застосунків. Цей SDK поєднує широкий спектр компонентів для розробки інтерфейсу користувача. Слід зазначити, що Flutter не використовує  OEM компоненти. Натомість він віддає перевагу використанню власних, які мають нативний вигляд у iOS та Android. З іншого боку, розробники також мають можливість створювати власні компоненти. Наразі Flutter є єдиним доступним SDK, який пропонує розробку без використання JavaScript. Це головна причина, чому так багато розробників розглядають Flutter для розробки своїх застосунків. 

Xamarin
Xamarin —це ще одна альтернатива Ionic, яка працює в керованому середовищі та чудово підходить для розробки застосунків для платформ Android, Windows та iOS. Цей інструмент із відкритим кодом полегшує розробникам роботу з кодом, який використовується на різних платформах під час розробки застосунків. Багаторазове використання коду є головною перевагою Xamarin. В результаті, розробники можуть використовувати одну мову програмування для написання бізнес-логіки для всіх платформ без обмежень продуктивності. Ще одна перевага Xamarin полягає в тому, що застосунки пишуться на Mac або ПК, а потім компілюються у файли APK та IPA.

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

Примітки


Зовнішні посилання

* 
*  Ionic на GitHub



