„Научете се веднъж, пишете навсякъде“ срещу „пишете веднъж, стартирайте навсякъде“ и защо избирам Nativescript над React Native за Koalisi Pejalan Kaki

Наскоро създадох приложение, за да помогна на пешеходците да защитят правото си, като докладвам за всяко нарушение по отношение на тяхната безопасност. Той няма много функции, потребителите могат да преглеждат списък на отчетените отчети и те също могат сами да добавят такъв. Много просто.

Налични са три вида доклади, доклад за оплакване (pengaduan), които съдържат списък на нарушенията срещу правата на пешеходците; картографски (пеметански) доклад, който съдържа местоположението за чешмяна вода и парк за велосипеди; и докладваме, че ние нарекохме „доклад за вдъхновение“, който съдържа някои добри съоръжения / поведение, които вече са изградени / случили се.

скрийншоти на приложението KoPK

Освен че разглеждат списъка с отчетите, потребителите могат да добавят нов отчет всеки път, когато намерят дадена от трите категории. Всеки отчет съдържа информация за местоположение (автоматично получена от GPS), категория и подкатегория, прикачен (и) снимки и незадължителни забележки.

скрийншоти на приложението KoPK

Решихме да разгърнем това приложение за Android, но аз прекарах толкова пъти само за избора на библиотека / рамка, която ще използвам. Роден Android, използващ Java / Kotlin? Не, твърде сложно е, защото трябва да го науча от нулата (дойдох от фона на уеб разработчиците). Прогресивно уеб приложение (PWA)? Не, трябва ни родно приложение, а не уебсайт вътре в приложението (затова не избрах Ionic или Apache Cordova поради производителност). Няма да си направя труда да избирам Xamarin, защото не исках да използвам c # (и трябва да изчакате да се прехвърлят при всяко пристигане на нови функции).

Моите опции са само две: React Native или Nativescript. Не исках да избирам Flutter, защото е все още млад и не исках да уча Dart: |

„Научете се веднъж, пишете навсякъде“ и „пишете веднъж, пуснете навсякъде“ е основната тема на тази публикация. Трябва ли да се подготвя за възможността за споделяне на код? Трябва ли да свикна с една среда и само да се придържам към нея през останалото време? Трябва ли първо да избера най-добрата рамка, преди да започна да разработвам моето приложение?

Добре, да видим тези две:

Екип „Научете се веднъж, пишете навсякъде“

Казват, че React Native е най-добрият начин за разработване на мобилно приложение в момента. Простата крива на обучение улеснява много хора да я пробват за създаване на приложения. Повярвайте ми, React Native изобщо не е лош.

Екип „пише веднъж, пусни навсякъде“

Nativescript се разглежда като една от новите рамки в света на разработването на приложения на междуплатформа. Въпреки че версията е достигнала версия 5.1 по времето, когато тази статия е била произведена, все още има много хора, които вярват, че има малки общности, които ги подкрепят. Е, някои от техните твърдения не са грешни; размерът на общността от Nativescript не е толкова голям, колкото общността зад React Native. Но имаме ли нужда винаги от толкова много сума?

И така, кой е най-добрият?

По времето, когато тази статия е произведена, React Native има над 73 хиляди + звезди в Github:

докато Nativescript има само 16 хиляди + звезди:

Какво ще кажете за Stackoverflow?
Реагирайте местните все още напред с 10+ пъти повече зададени въпроси!

От тези два резултата става ясно, че React Native> Nativescript, ... нали?
Е, всъщност не. Хората задават въпроси всеки път, това не е абсолютният показател, ако нещо е по-добро от другото.

Нека да разгледаме Йоний:

36k + звезди!Много хора питат за Йоний

С този начин на мислене можем да заключим, че Ionic е по-добър от Nativescript, нали? Не точно. Не можем да сравним тези две. Те са различни. Ionic е рамка, която произвежда хибридно приложение / PWA, междувременно Nativescript е рамка, която създава истинско естествено приложение.

Ако не можем да сравним Ionic с Nativescript, защо да си правим труда да сравняваме Nativescript с React Native? (Ум = разпенени)

Присъединявайки се към Google Trends, Ionic е кралят. Така ли?

Можем да прочетем няколко статии за „React Native vs Nativescript“ от тези източници:

И двамата казаха, че не можем да сравним тези две. Те са различни. React Native е библиотека, докато Nativescript е рамка. Никой не е по-добър. Те възприемат различна философия. Те възприемат различен подход.

Nativescript е рамка. Това е нещото, което ме накара да го избера. Можете да използвате обикновен машинопис, Angular, Vue, за да създадете код. Това е страхотно. Nativecript (с Angular) може да отговори на всички мои нужди за развитие. Прекарването? Вграден инча Обслужване? Разбира се! Тръба? Абсолютно.
За мен тук липсва React Native.

Не ме разбирайте погрешно, използвам React Native в миналото и вероятно ще го използвам отново в бъдеще. Това, което ме кара да не го използвам е, че не искам да прекарвам цялото си време в търсене на библиотеки на трети страни за всяко нещо, което ми трябва (добре, не за всичко, но разбирате).
Имате ли нужда от рутер? Добре, можете да изберете от React Native Router Flux, React Router, React Native Navigation, React Navigation или няколко други. Това ме подчертава, докато мога директно да използвам Angular Router с Nativescript. Лесно, без караница.

Друго нещо, което ме кара да избирам Nativescript over React Native е, че мога да използвам уменията си Angular. Това е добавена стойност, която не е споделена от други рамки / библиотеки (съжалявам Ionic, все още произвеждате хибридно приложение и PWA).
Пиши веднъж, тичай навсякъде може да е нещото, което ми трябва в бъдеще. Не искам да се удавя в специфична среда с „научи се веднъж, пиши навсякъде“. Нямам нужда / харесвам такъв вид ангажименти: |

Споделянето на код е нещо, от което може да се нуждаем при разработване на приложение. Кой знае дали по-късно в бъдеще може да се нуждаем от PWA? Ъгловите могат да го направят, докато използвате почти цялата си логика, която е написана в Nativescript.

Можете да научите повече за споделянето на код в Nativescript от тези източници:

Целта на тази публикация е да ви подтикне да изпробвате различни опции, различни рамки, различни библиотеки. Трябва да го използвате, за да знаете кой ви е най-подходящ. Трябва да знаете какъв стил на програмиране използвате. Трябва да знаете на каква парадигма сте продадени, дали „научете се веднъж, пишете навсякъде“ или „пишете веднъж, бягайте навсякъде“?

Както казах в заглавието, предпочитам подхода „напиши веднъж, бягай навсякъде“. Дава ми възможност да разгърна приложението си в друга платформа, без да се налага да се гмурнам в конкретна среда, като това, което Facebook направи с React / React Native. Други хора може да имат различно мнение, не е грешно.

Можете да проверите приложението тук (използвам Bahasa Indonesia, но скоро планирам да пусна световната версия):

https://play.google.com/store/apps/details?id=org.nativescript.KoPKapp