Цей Airbnb більше не є прикладом запуску з використанням React Native Це змушує нас замислюватися, чи правильні очікування, які ми покладаємо на цю технологію. Як роздум, ми можемо переглянути рішення Airbnb, важко медитував. Доказом цього є серія дописів у блозі, які супроводжували оголошення, пояснюючи причини від найбільш технічних до культурних.
Є чудове вивчення того, як технічна команда з певними вимірами та певними очікуваннями приймає нову технологію і згодом змушений його відкинути. З наслідками, які це тягне за собою. Давайте пам’ятатимемо, що React Native - це не проста бібліотека чи фреймворк, а має інші наслідки, які можуть змінити спосіб роботи або навіть культуру команди розробників.
Airbnb не єдина компанія, яка оголосила про відмову від React Native, за кілька днів Ударність, опублікувавши строгий допис із своїми причинами. Згадуючи багато головних болів, деякі з нас стикалися з спробами ввести React Native в існуючу програму. У цьому випадку рішення прийняла невелика команда з 4 розробників, на відміну від майже 100 інженерів Airbnb.
Навіть Facebook не позбувся чуток, що навіть вони відмовляються від частини React Native на користь рідної на Android і iOS, незабаром після цього вони категорично заперечують. У своєму ключовому доповіді F8 вони показали, як вони використовують його в різних частинах програми, таких як здача крові, відповіді на кризи, ярлики управління конфіденційністю або оздоровчі перевірки.
Факторами прийняття React Native зазвичай є деякі з таких:
- Вмійте швидко перемотувати вперед. Потреби стартапу в повному зростанні та еволюції вимагають можливості швидко розвиватися. І більше, якщо він мобільний. Відсутність розробників та «копіювання» в якійсь формі розробок в Android та iOs.
- Напишіть один і той же код лише один раз, замість того, щоб тиражувати його майже на кожній платформі. Тут ми повинні розрізняти запуск функції/програми з нуля в React Native або необхідність жити з кодом Java/Kotlin та Objective-C/Swift між ними.
- Поліпшити досвід розробки. У часи компіляції мобільних розробок навіть деякі IDE, такі як Xcode, не дають хорошого досвіду. З цієї причини React Native обіцяє покращити якість життя розробників або, принаймні, час компіляції.
- Досвід роботи з javascript та веб-розробкою. Наявність команди з досвідом роботи в інтерфейсі та недостатньо мобільних розробників є вагомою причиною, особливо якщо React вже використовується в Інтернеті.
- Залучити розробників, зацікавлених у новій технології. Незважаючи на те, що Android і iOS все ще є передовими технологіями, багато компаній розглядають React Native як спосіб залучення людей, зацікавлених у нових способах роботи, а також завдяки технології, що приходить від Facebook. Це, мабуть, не одна з найкращих заяв і не є простим для рекрутерів, але ми не вперше бачимо, що застосовуємо нову технологію, керовану маркетингом.
- Історії успіху деяких компаній хто ним користується: Airbnb був одним із них, але не хвилюйтеся, їх набагато більше.
Головні болі з React Native
Найбільший головний біль, який страждають від Udacity та Airbnb, полягає в тому, що приписуваний девіз "пиши раз, біжи скрізь" не так просто. Тим більше, що вони вже мали велику кількість функцій, розроблених у рідній мові. Але найголовніше в цьому полягає в тому, що основна частина програми повинна бути власною і спілкуватися з React Native. Щось нетривіальне, що не працює однаково залежно від платформи і вимагає додаткових зусиль і нічого тривіального.
Airbnb має велику кількість інженерів для створення необхідної інфраструктури. На перший погляд може здатися, що React Native спроститься, ні. Крім того, через незрілість React Native за той час, коли Airbnb використовував його, йому довелося латати певні речі. Ведучи їх тримати вилку з більш ніж 50 комітами попереду. Кожне оновлення версії ускладнювалось, крім великих зусиль у створенні бібліотек, щоб адаптувати свої потреби до React Native.
По дорозі, як докладно викладено в третьому дописі серії, на шляху є й інші камені:
Створення міжплатформенної команди
Одним з найбільш корисних висновків з розповіді Airbnb про React Native є частина команди. І це щось таке ми можемо застосовувати будь-яке технічне рішення, яке ми повинні прийняти в команді. Це не просто мова, бібліотека чи фреймворк. Є певні рішення, як у цьому випадку з React Native це може вплинути на роботу команди розробників, включаючи продукт та дизайн, звичайно.
React Native поляризований, Ви можете сказати, поговоривши з розробниками Android та iOS. Основна причина полягає в тому, що ця "срібна куля" не однаково працює на кожній платформі, а також проблеми та помилки для подолання однакові. Залежно від вашого досвіду, ви можете прийняти ту чи іншу думку. Звичайно, не всі ми створюємо однакові програми, вони не однаково складні або не мають однакових технологічних проблем.
Однією з перших реальностей, яку ви можете знайти, будуючи цю довгоочікувану крос-платформенну команду, є саме це вам і надалі будуть потрібні експерти з усіх трьох платформ. І в тому, що покращено досвід роботи з деякими нестандартними елементами.
Не тільки тому, що дизайн відрізняється залежно від платформи, але React Native має певну поведінку за замовчуванням у деяких ситуаціях, таких як візуалізація тексту, використання клавіатури або самі дії, які вам доведеться змінити. І не кажучи вже про частину налагодження, коли ви потрапляєте в глибину JavaScript-React та його зв’язок з рідним середовищем. Не всі розробники досить підготовлені до цього.
Цікавим фактом, який Airbnb висвітлює, було те, як це вплинуло на них під час найму інженерів. Багато розробників Android або iOS сумнівалися у приєднанні до компанії, яка так сильно робила ставку на React Native.
Розподіл команд також був складним. Кожна кодова база була розділена між рідною (Android та iOS) та React Native. Спільне використання бізнес-логіки, моделей, держав тощо ... ставало дедалі складнішим і дуже мало людей змогли зрозуміти весь потік всього цього. Обмеження коду між Інтернетом та мобільними пристроями було метою, але це вже не було реальною перевагою, оскільки його потрібно було використовувати та підтримувати незалежно.
Все залежить від того, чи ваш додаток запускається з нуля в React Native, чи є гібридним (Android/iOS)
Розробка міжплатформенного додатка з нуля - це не те саме, що інтеграція коду React Native. Тим не менш, маючи на увазі проблеми Airbnb та Udacity: це ваші ризики. Тепер все залежить від вас і типу програми, яку ви хочете створити.
1. Якщо ви хочете створити програму з нуля в React Native, де знаходиться більша частина коду Javascript
Вперед, можливо, це ідеальна ситуація. Сьогодні багатьом стартапам у перші місяці більше не потрібно мати програміст для Android та інший iOS. За допомогою програми 100% React ви можете будувати хороший mvp що працює на обох платформах. Для цього ви повинні знати всю екосистему React Native, ось хороша дорожня карта для неї. Поки ваш розвиток не виходить за рамки звичного.
У мене завжди був би хороший захисник із командою команди, яка добре володіє JavaScript. З огляду на це, може бути достатньо чудового досвіду роботи з React Native, навіть не торкаючись XCode або Android Studio.
2. У вас вже є відносно складний додаток у Swift/Objective-C або Java/Kotlin
Це зрозуміло мінне поле, де існуюча програма повинна зазнати численні зміни зробити перший крок із React Native: проблеми сумісності з бібліотеками, управління окремими сховищами, перенесення функціональних можливостей або взаємозв'язок рівня бізнесу або домену. Всілякі проблеми Airbnb та Udacity зіткнулися.
Вашій поточній команді доведеться вивчити нову технологію, або, можливо, знання деяких функціональних можливостей слід розділити між експертами з JavaScript та Java/Kotlin, наприклад. На додаток до мають тенденцію відокремлювати код програми щонайменше з 3 сховищ. На додаток до вирішення проблем, подібних до тих, про які повідомлялося раніше, щоб підтримувати узгодженість програми зі 100% власними частинами та іншими частинами React Native. Це буде навігація, макет, передача частин домену та перегляду тощо...
Безумовно, React Native багато в чому залежить від вашого типу програми та ваших прагнень. З досвідом Udacity або Airbnb ми можемо бачити, що відображає не дуже ідеальну реальність перспективної, але не досконалої технології для всіх.
- Рязань, Росія, липень 2018 Екран програми для схуднення на дні схуднення - Стокове редакційне фото ©
- Що таке і як використовувати команду wget 12 прикладів Підручники для Hostinger
- Хитрощі для схуднення Що потрібно зробити, щоб мобільний телефон допоміг вам схуднути
- Яку маску слід використовувати для захисту від коронавірусу; БОДАН БУКВА
- Ми навчаємо вас, як носити ремені, щоб виглядати як богиня