Shipping Feyz: аплікацыя для размышленняў пра веру на базе React Native, якая перайшла з падпроекта ў магазіны.
Як база коду TypeScript React Native пераканала Tawakkul на Feyz за дапамою керавання магазінамі, пасляўдкі гэтага для старыях прыстроёў, а таксама за дапамою UX, якая не пераскрадвае увагу.
Багато інжынераў ставяць сабе таямны цель — прынясіць незалежную ідею з порожнья базы дадзеных да публічных магазінаў. Гэта досягненне можа здавацца далекай метай прыгожа часу. Завдяк крос-платформенаму мобільнаму продукту пад назвай Feyz — які спачатку называўся Tawakkul — гэтая цель стала реальнаю у вигляде дапрацаванага бінарнага файлу для App Store і Play Store. Серед проектаў на React Native гэты прыклад выдзеляецца як особліва значны, таму што ён спрыяў прыняцчы практычных рашэнняў, а не проста навучальным практыкам.
Паходжэнне продукту і болей ясны направлення UI
Feyz не з’явіўся з нізкі. Развіцца прышлось быстрей пасля саавтарства з іншым разработчыкам, які пазнакоміў з крос-платформенымі фреймворкамі і адказваў за наставніцтва пры першых кроках у навучэнні.
Візыя продукту — это відшліфаваная прастора без зайвых відволікаючых фактараў, якая дапамагае людям адчуваць духоўную свядомасць і рэфлексіявацыя над ўпаважненням у повсякдзенны жыццё праз насыцаны графік. Аналіз існуючых дапрыямоў у той жа катэгорыі паказаў значны прывод. Большасць з іх альбо хавала корыстнае відчуття пад перасоранымі, застарэлымі інтерфейсамі, альбо відвлекала увагу через медленную, пасляпэльна оптымізаваную структуру. Тое, што спачатку было простым эскізам маленькага інструменту, ператворылася на сфокусаваны проект вышэйшай якосці.
Выбор React Native для обох платформ
Планаванне розгортання выклікала звычны выбар: аддзельныя кодавыя базы на Swift і Kotlin, чы ўжо спільны падход для кантролю разных платформ. React Native перамогла з точкі зору логістыкі. Адна кодавая база на TypeScript, якая стварае бінары UI для Android і iOS, скорачыла час розробкі і усунула дублікацыю логіки продукту.
Праект таксама стаў мясцам практычнага навучэння React Native. Работа выйшла за межы структураваных відеокурсаў і загальных прыкладных репазітарыёў. Узамест стварэння стайляў для статычных экранаў увага была сфокусавана на асінхронной прыемле стану, дынамічных канцах і компонентах лейауту, якія павінны правільна працаваць у розных значэннях ўплотнення пікселей.
Архітектура росту і кераванне пасля запуску
Пераклад працоўнае аплікацыю для кантролю разных платформ з локальнага эмулятора ў офіцыяны магазін прыводзіць да іншых труднасцей. Выявілася, што стварэння чыстага коду компонентаў ёсць простыяй задачай. Зроўнасць у розвіце аплікацыі была досягнута праз рашэнне проблем з развяртанням.
Паўначальна патрабавання было такое: восьбаваць прыемнасць апыту выкарыстоўвання — усунуць зайвыя элементы меню, застаўці мінімалістычны лейяут, а да духоўных размышленняў было можна дасягнуць проста праз адну лёгкую для спраўлення кнопку. Друга патрабавання — адносна тэлеметрыі і прайму дадзеных было неабходна рэтельна налаштаўваць, каб стан системы заставаўся стабільным без блакавання галоўнага потока на старэйшай апаратыце. Трэцяя патрабавання — налаштаванні самай платформы значылі, што права Android, дрэвы залежнасцяў CocoaPods і локальныя настройкі пакетаў трэба было скоректаваць, каб ужо пад час роботы не выйшлі крахі.
Перайменаванне Tawakkul у Feyz было не проста косметычным заходам. Калі накаплялася тэлеметрыя з робочай сістэмы і профілі аудытарыі стабілізаваліся, назва Feyz лепей адпавядала зрэламу, інклюзыўнаму і шырэйшаму продукту. Це перайменаванне відбівала пакращэння ў якосці коду і масштабах продукту, так і прыбліжэнне да бренду.
Што навучыла практыка розповсюджэння пра інжынерную майстэрнасць
Стварэнне і выпуск прыложэння падзяйліла уявленне, што элітна інжынерыя адпавядае сабой самай хітрой синтаксы. Чыраганне рэальнага продукту вымагае адкінуць эго і думаць як той, хто стварае продукты. Тэрпенне да зламаных налашчэнняў среды, адносна стабільнасць праз циклы адхоўлення ў магазінах і скромнасць пад час аналізу рэальных адгукатаў корыстувачаў маюць большое значэнне, чым проста показваць алгорытмы. Завершэнне прыложэння і яго падтрымка ў режыме працы вымагаюць дисцыпліны, якой няма можна навучыцца, проста стварыўшы новы репазітарый. Feyz больш не ёсць проста папкай у GitHub; гэта доказ таго, што сфокусаваная ідея можа перайсці межу прамышленнага выпуску.
Прабуйце жывыя версіі
Інжынеры, дзяржаўцы дизайна і чытальнікі, якія заінтересаваны ў аудытэ разлічных інтерфейсаў, тэставанні рэндарынгу на разных платформах чыта абстракцыйнай архітэктуры, могу запусціць готовыя бінарныя файлы з публічных каталагаў Apple App Store і Google Play для прылады Feyz.
Шлях ад абстрактнай ідеі да публікацыі ў магазіне застаецца тым жа для будзь-яго падобнага практычнага проекту: выберыце тэхналогічную структуру, якая дазволіць працаваць на розных платформах, спроектуйце раштунакі так, каб усё было проста і зрозумела, а не перасыпана додатковымі функцыямі, і ставіцеся да правіл магазіна і аналізу дадзеных пасля выпуску як да важных інжынерных задач, а не да дробных праблем. React Native спрыяў стварэнню версій для двух платформ, а практычныя абмежэння зробілі ўсё гэта реальнасцю. Функцыяны, якія не блакуе старэйшыя прылады, разрешэнняя, якія перазнаходзяцца пасля перагледу, і структуры CocoaPods, якія застаюцца цэлесообразнымі, можа і не выглядаюць прыгожа, але самэ гэта вярнайша, чы будуць корыстувальнікі вообща магчымыя паблікуваць абстрактныя раштунакі.
Аплікэцыя для духоўнага розвитку без адвалерсіяў таксама вымагае жорсткага скарочэння функцый. Кожны дапамоглівы пункт меню конкуруе з можнасцю быстрага выканання практыкі, калі чалавек ачынае прыстройку. Абсалютная чытаемасць тэксту, прагнозаваныя змены стана і сінхронізацыя на фоне, якая не стварае перакантрацій, — гэта не просто додатковыя элементы дизайну, а сама сутнасць продукту. Самэй ты Фейз прадалаў просты і без перакантраційны спосаб уведзення ў ўседневныя размышленні працоўна ўсуперак насычанай панелі керування з дапамоглівымі інструментамі.
Для команд, які адаптуюць React Native для стварэння спецыялізаваных додатакаў, урок ёсць практычны. Спяльны TypeScript можа пераносіць інтерфейс і бізнес-логіку між рынкамі выдавання, але проблемы, связаныя з натіўным кодам, застаюцца: патрабаванні Android, графы залежнасцяў iOS і разлікі ў характэрыстыках апаратуры. Заздалегідь выдзеляйце час на рашэнне такіх проблем. Розглядвайце версіі, створаныя на эмуляторах, як проміжны результат, а не канець процесу. Процесы зберагчэння, прыметкі па адхіленням і перагляд карыстоўнасці на старэйшых прыстроях — гэта тое, што ператварае падпрыект на адтульны бінарны файл.
Додаткі, якія належаць аднособам, таксама навучаюць контролю над усім цыклам — ад ідеі, па UX, модулях TypeScript, настаўкам натіўнага коду, падачы на рынак і стану працы ў часе експлуатацыі. Самэ гэты цыкл ператварае абстрактны этап у ўсё, што корыстувачы можаць завантажыць вечарам.