React native сурсан түүх
Анхлан суралцагчид даа зориулаад өөрийнхөө react-native сурсан түүхээ бичихээр шийдлээ. React native сурах хамгийн хялбар арга бол мэдээж видео хичээл дагаж хийх. www.udemy.com дээр react-native дажгүй хичээлүүд их байгаа. Миний хувьд documentation уншихыг илүүд үздэг. Учир нь юу боломжтой, юу хийх боломжгүй вэ? гээд бүх зүйлийг тодорхой болгоод өгдөг.
Өмнөх туршлага: КтМС төгссөнөөс хойш С#, Java хэл дээр голчлон объект хандалтад код бичиж desktop application, SharePoint дээр хөгжүүлэлт хийдэг байв. Мөн 2014 онд themeforest.net дээр wordpress theme хийж зарахаар болоод баг бүрдүүлж wordpress, PHP, JS жил гаран нүдээд 2 ч загвар явуулаад design тэнцэлгүй soft reject авснаар олон улсын зах зээлээс доллар импортлох мөрөөдөл замхрав. Сурсан зүйл нь өнгө, зай, фонт зэрэг загварын бага зэрэг ойлголттой болов.
2016 онд цуг ажилладаг Жавхаа найзаасаа angularJS ашигласан туршлагаас нь сонсоод сүүлийн үеийн технологиудын талаар судлахаар шийдлээ. Angular2 дөнгөж гарч байсан үе, angularJS -с ялгаатай нь typescript хэлний support -тай байв. Source code to source code буюу transcompile хийгээд typescript хэлнээс javascript руу хөрвүүлдэг. Надад С# хэлтэй төстэй static type -тай байсан нь код бичихэд илүү амар санагдлаа. Ажлынхаа хажуугаар Angular2 documentation уншиж эхлээд бараг 2 сар судлаад олигтой юм болдоггүй шүү. Front-end талд хэтэрхий их тооцоолол хийх боломжууд, ng- тэй баахан командууд сурах хэрэг гарлаа. Дэмий санагдав angular2 сурч чадсангүй, ололт нь async, Promise зэргийн талаар ойлголт авлаа.
Гэтэл ажлын шаардлагаар SharePoint Framework (SPFx) ашиглан хөгжүүлэлт хийх төсөл дээр ажиллах боллоо. Microsoft -с гаргаад удаагүй 1 жил болж байгаа office 365 дээр буюу SharePoint -ийн cloud хувилбар дээр хөгжүүлэлт хийдэг framework байв. Microsoft шинэхэн framework доо react -г сонгож хэрэглэсэн байв. За ингээд react documentation нэг өдөрт л уншаад дуусчхав. Angular2 -ийг бодвол хамаагүй бага documentation -тай байлаа. Thinking in React буюу react аар сэтгэ гэдэг зүйлийг ойлгох хамгийн чухал. Component, Props, State -ийн талаар мэдсэн байхад л бүх зүйл OK болоод явчихна. SPFx, React хоёроо ашиглаад 5 сарын дараа төслөө дуусгав. Төслөө дуусгахын өмнөхөн React Native хөгжүүлэгчид — группээс зохион байгуулсан meetup дээр typescript -ийн талаар илтгэл тавилаа.
Би 10+ жил Microsoft -ийн технологиуд дээр ажилласан байв. Ахиж Microsoft технологи оролцсон хөгжүүлэлт хийхгүй гэж шийдлээ. Ингээд Microsoft -с зодог тайлав. Ажлаасаа ч гарлаа. Гар утасны апп хийхээр шийдээд front-end талд react-native сонгож авлаа. Front-end, bacк-end хоёроо нэг хэл дээр хөгжүүлэлт хийх хүсэлтэй байсан тул bacк-end талд nodejs, өгөгдлийн сан дээр багана автоматаар нэмж хасах боломж хийе гэж бодож байсан шаардлагад маань mongoDb илүү тохирч байлаа. Bacк-end -ийн хувьд та өөрийн мэддэг технологио ашиглаад явахад ямар ч асуудалгүй. Хэрэв та python мэддэг бол react-native + python + PostgreSQL хослол бас их дажгүй сонголт. Ахиад л сурах шаардлага гарлаа react-native documentation уншиж эхлэв. Хэрэв mobile developer болох гэж байгаа бол миний бодлоор заавал macOs тай төхөөрөмж ашигласан нь дээр. Manual буюу гар тохиргоо хийх дуртай учраас EXPO ашиглая гэж огт бодсонгүй. Хөгжүүлэлтийн орчин бэлдэж тохиргоо хийх, ашиглагдах сангуудаа сонгох зэрэгт бараг 1 сар зарцууллаа. Энэ хугацаанд нэг ч мөр код бичсэнгүй. Npm сангуудаас сонгоход хамгийн их хүн ашигладаг байхаас гадна гол шалгуур нь хэр цөөн dependencies ашигласан сан гэдгийг харж сонголтоо хийв.
Ингэснээр апп -ын хэмжээ бага байх болно. Native-base, react-native-navigation хоёроос бусад нь дажгүй сонголтууд болж чадсан. Aпп size android 11Mb, iOS 20Mb болсон.
Хөгжүүлэлт: Хийх бүтээгдэхүүн маань тодорхой байсан тул сүртэй гоё загвартай апп хийе гэж бодсонгүй энгийн минимал байхаар төлөвлөв ажиллагаандаа илүү анхаарлаа. Style бичихэд нэмэлт сан ашиглалгүй үндсэн react native style -ийг нь ашиглав. React native style CSS тэй төстэй боловч бага зэрэг өөр. Нямаа маань wordpress theme хөгжүүлэлт дээр CSS -ийг хашраадаг байсан тул би style бичих ажлаас чөлөөлөгдөв. Ихэнх desktop суурьтай програмистуудын хувьд вэб дээр CSS бичих ажил relative, absolute зэргээ сайн мэдэхгүйгээс болоод байрлуулах ажилд их цаг зарцуулах тохиолдол бий. Харин flex-box гарснаас хойш арай амар болсон. React-native мөн адил typescript дэмждэг ба та JS эсвэл typescript хоёроос аль нэгийг нь сонгоно. Объект хандалтаар бичдэг байсан болохоор дан class ашиглан Hook ашиглахаас зайлсхийв. Урт удаан хугацаа зарцуулж суралцангаа хийсэн хөгжүүлэлт дуусч 300+ файл 35к мөр код бичсэний эцэст бүтээгдэхүүн маань тестийн шатанд ирлээ. Гол зүйлс дээрээ цөөн хэдэн тест бичээд хурдхан л бэлэн болгох гэж яааааарлаа. Андройд дээр нилээн краш болсны эцэст алдаануудаа засаж дууссан. Тест дээр үнэтэй шүүмж хэлж олон алдаа олж туршиж өгсөн Ганзо доо талархъя. Ямар апп юм бол гэж сонирхож байгаа бол www.mart.mn гэж ороод суулгаад үзээрэй. Вэб хувилбарт нь Nexjs ашиглаж хийж байгаа бөгөөд хийж дуусгаад дараагийн постоор Nexjs -ийн талаар дэлгэрэнгүй бичнээ.
Дүгнэлт: Хэрэв та вэбийн талаар мэдлэггүй, С++, C#, Java зэрэг аппликейшн суурьтай хөгжүүлэгч бол Flutter сурах таны хувьд зөв сонголт. Харин вэб хөгжүүлэгчдийн хувьд гар утасны апп руу хөрвөх гэж байгаа бол React-Navite сурах нь хамгийн зөв сонголт байх болно.