18 червня 2019 р. 6 хв читання
В останні тижні ми говорили про React, Flutter та характеристики, які роблять ці два фреймворки важливими інструментами у вашому наборі інструментів для розробки сучасних веб-програм та мобільних додатків.
Я впевнений, що ви вже обрали один із двох варіантів для своїх проектів, але сьогодні мені цікаво викласти їхні розбіжності та допомогти вам у прийнятті рішення щодо розробки мобільних додатків, якщо ви все ще сумніваєтесь.
Перш ніж продовжувати, я рекомендую вам прочитати наступні статті:
Як ми вже говорили раніше, React Native та Flutter - це дві основні основи розробки крос-платформних додатків. Ось чому порівняння системи Facebook із системою Google є гарною ідеєю, оскільки вона дозволяє вирішити та визначити, який із цих двох варіантів є кращим для розробки вашого нового додатка.
Мерехтіння
Однією з найкрутіших особливостей Flutter є його реактивна парадигма. Для вирішення проблем, пов’язаних з асинхронними даними - проблем, дуже знайомих розробникам JavaScript - Flutter успадковує реактивне програмування від Dart. Ми поговоримо про це в наступних сесіях, але він дуже потужний у розробці додатків, наприклад, для роботи з нульовими посиланнями.
Як ми бачили в статті Серджо, Flutter має на основі крапки “віджет”, тоді як React Native використовує компоненти. Цікавим у віджетах Flutter є те, що більшість із них вже готові до використання з концепціями “матеріального дизайну”. Віджети також можуть бути або як у React.
Початок роботи з Flutter порівняно простий, оскільки вам достатньо завантажити його, створити середовище та розпочати розробку. Звичайно, дуже можливо, що вам також доведеться встановити Android Studio. Flutter також підтримує IntelliJ Idea та Visual Studio Code.
Як правило, Flutter потребує більше часу на розробку, ніж React Native, і завдяки Hot Reload ви зможете знову запускати свою програму щоразу, коли ви вносите будь-які зміни.
React Native
React Native має важливу характеристику те, що він перевіряється програмами Facebook або Airbnb, що використовується в усьому світі.
Його конкретні компоненти для розробки мобільних додатків відрізняються від веб-компонентів та компонентів React. Окрім того, React Native використовує віртуальну DOM для зв'язку з власними елементами інтерфейсу.
Деякі компоненти React Native називаються адаптивними, оскільки вони можуть зрозуміти, на якій платформі - iOS або Android - вони працюють.
Як і у Flutter, розпочати роботу з React Native досить легко, і це також питання встановлення відповідного пакету та початку розробки. Якщо ваші розробники вже знають JavaScript і React, чудово!
Що стосується часу розробки, React Native дуже ефективний, і завдяки готовим до використання компонентам процес розробки PMV простий і швидкий.
Я думаю, що однією з основних характеристик, яка не дозволяє прийняти фреймворк розробниками, є відсутність документації або відсутність належної документації.
Мерехтіння
Flutter має корисну, організовану та дуже повну документацію. Якщо ви зайдете на офіційний веб-сайт Flutter, ви побачите, як піклуються про цю деталь. Ви не тільки зможете знайти очікувані приклади кодів та посилання на API, але Google також включив відео, де вони навчають вас, як дізнатись про набір інструментів.
React Native
Висока популярність React Native - навіть якщо немає відео - також пов’язана з її гарною документацією, дуже повчальною, але не завжди добре організованою. На офіційному веб-сайті React Native можна дізнатись, як використовувати фреймворк, використовуючи React Native CLI і, перш за все, Expo cli, бібліотеку, яка надає широкий спектр власних API на основі iOS та Android, а також дозволяє вам запустити додаток, який розробляєте, на своєму мобільному пристрої, прочитавши QR-код.
Ефективність, як правило, є одним із найбільш визначальних факторів у прийнятті нового інструменту. Думаю, варто зазначити, що в роботі програми завжди є кілька факторів, таких як тип програми, пристрій, який її використовує, та досвід розробників на вибраній мові чи фреймворку.
Мерехтіння
Завдяки Dart програми Flutter компілюються з використанням власних бібліотек C/C ++. Це дозволяє вам бути ближче до машинної мови та отримати кращу природну продуктивність, як і ближче до рідних програм.
React Native
React Native за рейтингом продуктивності вищий, ніж його конкуренція - Cordova або Ionic, оскільки йому вдалося запустити свій JavaScript в окремий потік, а також ускладнивши свої компоненти інтерфейсу користувача на їх рідні еквіваленти. Тим не менше, він використовує міст для зв'язку та виконання дій у власних модулях.
Мерехтіння
Flutter з’явився на ринку пізніше, але його понад 7500 форків, понад 65000 зірок на Github та понад 1400 пакетів, доступних у сховищі Dart, - це лише деякі показники, які показують, що він залучає громаду та зростає. цікавий ритм.
React Native
React Native існує на ринку вже набагато довше, і це видно, як ми бачили у статті про React. Завдяки прийняттю React організації, розробники та постачальники внесли свій внесок у розробку інструменту. Таким чином, природно, що у вас є набагато більше пакетів, ніж Flutter, з тією ж метою підвищення продуктивності. Крім того, оскільки це більш зрілий фреймворк, він також стабільніший, ніж Flutter.
На додаток до різних спільнот, які дають життя обом структурам, їх використовують також великі організації. Незважаючи на те, що React є впевненістю на ринку, Flutter, оскільки він новий, все ще намагається бути поміченим. Ось деякі приклади продуктів, що використовуються кожною з основ:
На додаток до різних спільнот, які дають життя обом структурам, їх використовують також великі організації. Незважаючи на те, що React є впевненістю на ринку, Flutter, оскільки він новий, все ще намагається бути поміченим. Ось деякі приклади продуктів, що використовуються кожною з основ:
Мерехтіння
React Native
Як ми бачили, різні проекти вимагають різних технологічних рішень. Якщо у вашій команді є розробники як для фреймворків, так і для мов, може бути непоганою ідеєю вивчити життєздатність кожного з них. Обидва фреймворки пропонують стабільність, продуктивність, хорошу документацію та активну спільноту.
Ось чому прийняти рішення непросто. З моєї особистої точки зору, React Native сьогодні має перевагу завдяки довшому життю на ринку та стабільності у відомих нам продуктах. Крім того, React Native розроблений мовою того моменту.
У той же час, я думаю, що особливості Flutter and Dart можуть бути важливими, особливо якщо ви хочете, щоб ваш додаток надав вашим користувачам максимально можливий досвід роботи. Однак Флаттеру ще потрібно пройти довгий шлях, але багато можливостей для досягнення своїх цілей.
Чи використовуєте ви React Native або Flutter у своїх проектах? Як був досвід?