Pandemiaren ostean, mugikorrentzako aplikazioen garapenean gorakada handia izan zen, eta plataforma anitzeko aplikazioak garatzeko tresnen erabilera areagotu zuen Flutter bezalakoak.
Ospea izan arren, Flutter-ek hainbat eragozpen ditu. Beraz, garatzaileak alternatiba hobeen bila ari dira.
Flutterren alternatiba onenetako batzuk eztabaidatu aurretik, jakin dezagun Flutterri buruz gehiago.
Zer da Flutter?
Flutter, 2017ko maiatzean aurkeztua, Google-ren UI tresna-tresna da mugikorretarako, weberako eta mahaigainerako natiboki sortutako aplikazio erakargarriak sortzeko kode-base bakar batetik.
Laburbilduz, mugikorrentzako aplikazio natibo bat eraikitzeko aukera ematen dizu kode-base bakar batekin. Hau da, bi aplikazio desberdin diseina ditzakezu programazio-lengoaia eta kode-oinarri bakarra erabiliz (iOS eta Androidentzat).
Dart, programazio-lengoaia, Flutter aplikazioak sortzeko erabiltzen da. Flutterren oinarrizko kontzeptua, berriz, widgeten inguruan datza. Widgetak erabiliz, erabiltzaileek erabiltzaile-interfaze osoa sor dezakete.
Widgetak egitura-elementuetan, elementu estetikoetan, UI diseinuaren elementuetan eta abarretan sailkatzen dira.
Flutter softwarea garatzeko kit oso bat da, errendatze-motorrak, CLI (komando-lerroko interfaze-tresnak), garatzaile-tresnak, widget guztiz aldagarriak, probak, pluginen laguntzarekin arazketa zabala, widget zuhaitz ikuskatzailea, API interfazeak eta askoz gehiago.
Flutter Funtsezko Ezaugarriak
- Garapen azkarra: Flutter-ek garatzaileei aplikazioak azkar sortzen eta zabaltzen laguntzen dieten funtzio asko ditu, lineaz kanpoko dokumentazioa barne. Aplikazio baten diseinu eta elementu garrantzitsu asko flutter batean widget gisa eraikita daude, eta ezaugarri garrantzitsuena, egoera beroko birkargatzea, eta horrek denbora asko aurrezten du aplikazioa segundo batean baino gutxiagoan berreraikitzeko aukera emanez.
- Jatorrizko errendimendua: Flutterri buruzko alderdirik onenetako bat kode irekikoa dela da, eta adimen egokia duen edonori bere hazten laguntzea da. Ondorioz, flutter-ek berezko aplikazioak bezain bikaina den errendimendu aurreratua lortu du.
- Erabiltzaile Interfaze (UI) adierazgarri eta malgua: Erabiltzaile-interfaze (UI) on batek ezinbesteko alderdia izan behar du merkatuan dauden aplikazioak garatzeko teknologiak. Hala eta guztiz ere, bere ontzi azkarreko ezaugarrien laguntzarekin, adibidez, materialaren diseinua, aplikazioa lanik gabe bikain agertzen laguntzen duena, flutter-ek beste maila batera eraman du.
- Plataforma anitzeko eragiketak: Flutter-en ezaugarririk onena mugikorretarako aplikazio bat sortzen duzunean web eta mahaigaineko aplikazio bat ere eskuratzen duzula da.
Flutter Pain Puntuak
Flutter-ek ezaugarri bikainak ditu. Hala ere, faktore askok garatzaileek erabiltzea eragozten dute. Besteak beste:
- Garatzaileek denbora pixka bat eman behar dute programazio-lengoaia berri bat ikasten, plataforma Dart-en gainean eraikita dagoelako.
- Gailuaren gaitasun espezifikoak dituzten aplikazioak sortu nahi badituzu, Flutter ez da zuretzat.
- Gainera, garatzaile batzuek diote Flutter ez dela eraginkorra komertzialki konplikatuak diren aplikazioak sortzeko.
Horregatik guztiagatik, Flutter-en alternatibarik onena bilatzea erabaki egokia izan daiteke.
1. Erreakzionatu natiboa
Erreakzionatu natiboa mugikorretarako aplikazioak sortzeko aukera ematen du guztiz JavaScript-en. React-en kontzeptu bera du eta osagai deklaratiboak erabiliz mugikorrentzako UI sofistikatua sortzeko aukera ematen du.
Ez duzu mugikorretarako web aplikaziorik, HTML5 aplikaziorik edo aplikazio hibridorik egiten React Native-rekin; Mugikorretarako benetako aplikazio bat egiten duzu, Objective-C edo Javarekin egindako batetik bereiztezina dena.
React Native-n UI eraikitzeko funtsezko osagaiak iOS eta Android aplikazio estandarretan berdinak dira. Pieza horiek elkarrekin jarri besterik ez duzu JavaScript eta React-ekin.
Esparru honekin, plataforma askotarako aplikaziorik onenak sor ditzakezu kode-oinarri bakarra erabiliz. React Native Framework, kode irekiko eta plataforma anitzeko mugikorren esparrua, 2015ean argitaratu zen.
Bere gaitasun eta onura izugarriengatik, plataforma anitzeko aplikazio mugikorretarako plataforma handienetako bat bihurtu da azkar. Hala ere, gero eta garatzaile gehiagok React Native-ra jotzen du plataforma anitzeko aplikazio indartsuak sortzeko.
Ezaugarriak
- Kode irekia den plataforma.
- Live React kodearen berrerabilgarritasuna.
- Arkitektura modularra eta erabilerraza dena.
Pros
- Azkarrago eraikitzen - Garapen denbora murriztea da React Native-ren salmenten ezaugarri nagusia. Prozesua bizkortzen lagun dezaketen erabiltzeko prest dauden osagai ugari biltzen ditu esparruak.
- Esparru bakarra, plataforma anitz - React Native-k zure kode-basea (edo haren zati bat) berrerabiltzeko aukera ematen dizu iOS eta Android artean. Zure programan erabilitako jatorrizko moduluen kopuruaren arabera, plataforma anitzeko benetako garapena egin daiteke neurri batean.
- Talde txikiagoak - Android eta iOS-erako garapen natiboak bi talde independente sortzea eskatzen du. Garatzaileen lankidetza ito dezake eta, ondorioz, garapena moteldu. React Native aukeratzen baduzu, batik bat nahi izango duzu JavaScript garatzailea bi plataformetarako kodea idatzi dezakeena.
- UI sinplifikatua - React Native erabiltzaile mugikorren interfazea sortzera irmoki orientatuta dago. Jatorrizko garapenean programan ekintzen sekuentzia bat eraiki beharko duzu. RNk programazio deklaratiboa erabiltzen duenez, ez da beharrezkoa inplementazio-zereginen sekuentzia hori. Ondorioz, erabiltzaile batek ibil ditzakeen bideetako akatsak askoz errazagoak dira identifikatzen.
Cons
- Bateragarritasun- eta arazketa-arazoak - Garatzaileek hainbat arazo aurki ditzakete paketeen bateragarritasunarekin edo arazketa-tresnekin. Zure garatzaileek ez badute ondo ezagutzen React Native, horrek eragin kaltegarria izan dezake zure garapenean arazoak konpontzeko denbora ematen baitute.
- Garatzaile natiboen beharra - Jatorrizko ezaugarri eta modulu batzuek plataforma jakin baten esperientzia sakona behar dute. Aplikazio natiboen gaitasun askorentzat lehenbailehen laguntzarik ez izatea (adibidez, push jakinarazpenak) lehen React Native garapenaren kezka nagusia zen.
2. jonikoa
Ionikoa da kode irekiko UI tresna-kit errendimendu handiko eta kalitate handiko mugikorretarako aplikazioak, mahaigaineko aplikazioak eta web aplikazio aurrerakoiak sortzeko, HTML, CSS eta JavaScript bezalako web teknologiak erabiliz.
Front-end bat da SDK kode-base bera erabiliz iOS, Windows eta Android gailuetarako mugikorretarako aplikazioak eraikitzeko aukera ematen duen esparrua.
Gailu mugikorrentzako plataforma anitzeko programazio tresna bat dela frogatzen du. Programatzaileei behin sortu eta edonon exekutatzeko aukera ematen die.
Ionic aplikazio hibridoetan zentratzen den HTML5erako mugikorrentzako aplikazioak garatzeko esparru bat da. Ionic-ek erabiltzailearen fronte-end esperientziarekin edo UI elkarrekintzarekin arduratzen da batez ere, hau da, zure aplikazioaren itxura eta sentimendu orokorraren arduraduna.
Marko honen hasierako bertsioa, Angular JS eta Apache Cordova-n oinarritutakoa, 2013an kaleratu zen, eta nolabait Flutterren antzekoa den irtenbide bikaina da.
Ulertzeko erraza da eta beste liburutegi edo esparru batzuekin funtziona dezake, adibidez, Angular, Cordova eta beste batzuekin. Frontend-eko markorik gabe ere erabil daiteke script-a sartze sinple bat erabiliz. Komando-lerroko interfazea du, programa eraikitzeko aukera ematen duena kodetze-denbora murriztuz.
Ezaugarriak
- CSS osagaiak- Osagai hauek, jatorrizko itxura eta sentimenduarekin, mugikorrentzako aplikazio batek behar dituen ia pieza guztiak eskaintzen dituzte. Osagaien estilo lehenetsia erraz alda daiteke zure diseinuetara egokitzeko.
- Ionic CLI - Ionic aplikazioak abiarazteko, garatzeko, exekutatzeko eta simulatzeko komandoak dituen NodeJS utilitatea da.
- AngularJS - AngularJS Ionic-ek orrialde bakarreko aplikazio sofistikatuak eraikitzen ditu gailu mugikorretarako egokitutako AngularJS MVC arkitektura erabiliz.
- Cordova pluginak - Apache Cordova pluginek jatorrizko gailuen funtzionaltasuna JavaScript kodearekin aprobetxatzeko beharrezkoa den APIa eskaintzen dute.
Pros
- Jatorrizko iOS/Android aplikazioekin alderatuta, garapen azkarragoa ahalbidetzen du.
- Plugin laguntza batzuk izan ezik, hainbat sistema eragiletarako aplikazioak eraikitzeko aukera ematen dizu kode-oinarri bera erabiliz.
- Moduluen eta osagaien proba errazak ahalbidetzen ditu.
- Plugin eta osagai berrerabilgarri asko ditu.
- UI osagai ugari biltzen ditu eta prototipo azkarra egiteko aukera ematen du.
- Mugikorretarako aplikazio dinamikoagoak sortzeko plugin ugari eskaintzen ditu.
- Erabiltzeko eta kudeatzeko erraza izango diren UI osagai asko jasoko dituzu.
Cons
- Arazketa zaila izan daiteke ionikoa erabiliz, eta denbora gehiago behar da arazoa konpontzeko. Akatsaren zergatia zehaztea zaila egiten du, eta errore-mezua anbiguoa izan daiteke batzuetan.
- Fidagarriak ez diren eta elkarren artean talka egin dezaketen jatorrizko plugin batzuk biltzen ditu.
- Aplikazio hibridoak garatzen ari bazara, baliteke segurtasun arazoak aurkitzea eta zure kodea hackerrentzako ahula izatea.
- Mugikorretarako aplikazio korapilatsuak eta baliabide ugariak garatzean, errendimendu-kezka batzuk egon daitezke.
- Marko ioniko batekin hasten bazara, jatorrizko funtzionaltasunetara sartzeko pluginetan oinarritu behar duzu.
3. Cordova
Apache Cordova kode irekiko esparru bat da, web garatzaileek lehendik dauden HTML, CSS eta JavaScript edukia aprobetxatzeko aukera ematen diena gailu mugikorretarako jatorrizko aplikazioak sortzeko.
Cordova-k jatorrizko WebView bat erabiltzen du zure web aplikazioa errendatzeko. WebView bat aplikazio-osagai bat da (botoi edo fitxa-barra baten antzekoa) web-edukia jatorrizko programa baten barruan bistaratzen duena.
Demagun WebView bat web arakatzaile bat dela, hala nola, URL eremu bat edo egoera-barra erabiltzailearen interfazearen ezaugarririk gabe.
Nitobik Cordova ere sortu du, hau da, aplikazioak garatzeko esparru erabilgarria.
Edukiontzi honen barruan funtzionatzen duen web-aplikazioak mugikorreko arakatzaile batean exekutatzen den beste edozein web-aplikazioaren antzera funtzionatzen du: HTML orrialde gehigarriak ireki ditzake, JavaScript kodea egin, multimedia-fitxategiak erreproduzitu eta kanpoko zerbitzariekin komunikatu.
Mugikorretarako aplikazio mota honi aplikazio hibridoa deitzen zaio batzuetan. Cordova aplikazioak jatorrizko gailuen APIetarako sarbidea duten gailu mugikorren aplikazio gisa biltzen dira. Esparru honek kode zati natiboak eta hibridoak konbinatzeko aukera ere ematen du.
Ezaugarriak
- Cordova Oinarrizko Osagaiak: Cordova-k edozein aplikazio mugikorrek eskatzen dituzten oinarrizko osagaiak biltzen ditu. Osagai hauek aplikazio baten oinarria eskaintzen dute, eta gure logika propioa garatzen kontzentratzeko aukera ematen digu.
- Cordova Pluginak: mugikorren funtzionaltasun natiboak gure JavaScript proiektuan integratzeko API bat eskaintzen du. Plugin hauei esker, programa bati kamera, bateria, kontaktuak etab.
- Komando lerroko interfazea (CLI): utilitate hau hainbat plataformatarako prozesuak sortzeaz eta pluginak instalatzeaz arduratzen da. Ekimenak martxan jartzeko eta garapen-prozesua arinago egiteko erabiltzen da.
Pros
- Ikasteko erraza da eta plataforma anitzeko aplikazioak sortzeko erabil daiteke.
- Doako eta irekia den plataforma da.
- Cordova aplikazioen garapena azkarra da, plataforma ezberdinekin bateragarria den aplikazio bat bihurtzen baita.
- Plataforma ugaritarako aplikazioak sortzeko aukera ematen du programazio lengoaia berriak ikasi beharrik gabe.
- Gailuaren kamera, GPS eta fitxategi-sistemara sarbidea ahalbidetzen duten aurrez eraikitako pluginen bilduma da.
Cons
- Bere abiadura jasaten du bere kodea arakatzailearen ikuspegian exekutatzeagatik.
- Ez da egokia aplikazio handietarako, aplikazio hibridoak jatorrizko aplikazioak baino motelagoak baitira.
- Ez da aproposa joko-aplikazioak garatzeko, gaur egun erabilgarri ez dauden goi-mailako hainbat plugin behar baititu.
4. Xamarin
Xamarin kode irekiko plataforma bat da, iOS, Android eta Windows aplikazio garaikideak eta performact.net garatzeko.
Xamarin aplikazioak PC edo Mac batean egin daitezke eta gero jatorrizko aplikazio-paketeetan konpilatu daitezke Android-erako an.apk fitxategia edo iOS-erako an.ipa fitxategia.
Kodea, probak eta negozio-logika plataformetan partekatu eta Visual Studio erabiliz C#-n plataforma anitzeko aplikazioak sortu nahi dituzten garatzaileentzat diseinatuta dago.
Mugikorretarako aplikazio bat sor dezakezu erabat jatorrizko itxura eta sentimenduarekin. Xamarin-en, jatorrizko SDK funtzionalitate guztietarako sarbidea duen C# kode-base bakarra eraiki dezakezu.
Eredu honi esker, garatzaileei beren negozio-logika guztia hizkuntza bakarrean idazteko (edo lehendik dagoen aplikazio-kodea berrerabiltzeko) plataforma guztietan jatorrizko errendimendua, itxura eta sentimendua lortzen dituzte.
Ezaugarriak
- SDK lotura osoa - Xamarin-ek iOS zein Android-en azpiko plataforma SDK ia guztietarako loturak ditu. Gainera, aurkikuntza hauek oso idatzita daude, hau da, nabigatzeko eta erabiltzeko errazak direla esan nahi du, eta motaren egiaztapen integrala ahalbidetzen dute eraikuntza garaian eta garapenean. Biziki idazten diren loturak exekuzio-denborako errore gutxiago eta kalitate handiagoko programak eragiten dituzte.
- Hizkuntza modernoaren eraikuntzak- Xamarin aplikazioak C#-n idatzita daude, Objective-C eta Javaren aurrean abantaila handiak dituen hizkuntza modernoa, hala nola, hizkuntza gaitasun dinamikoak, lambdas, LINQ, programazio paraleloa, generikoak eta abar bezalako eraikuntza funtzionalak.
- Gailu mugikorrentzako plataforma anitzeko laguntza- Xamarin-ek plataforma anitzeko bateragarritasun osoa eskaintzen du iOS, Android eta Windows hiru plataforma nagusietarako. Xamarin-ekin, aplikazioak garatu daitezke beren kodearen % 90 arte partekatzeko. Essentials-ek API uniforme bat eskaintzen du hiru plataformetan partekatutako baliabideetarako sarbidea lortzeko. Garatzaile mugikorrentzat, kode partekatuak garapen kostuak eta merkaturatzeko denbora nabarmen murriztu ditzake.
- Robusta Base Class Library (BCL) - Xamarin aplikazioek .NET BCL aprobetxatzen dute, XML, Datu-base, Serializazioa, IO, String eta Networking euskarria barne, gaitasun zabal eta erraztuak dituen klase multzo handi bat, besteak beste. Lehendik dagoen C# kodea konpilatu daiteke aplikazio batean erabiltzeko, BCL-ren gaitasuna hedatzen duten ehunka liburutegitara sarbidea ahalbidetuz.
Pros
- Garapen-ziklo laburragoak- Xamarin aplikazioaren garapenaren abantaila esanguratsu bat kodearen % 90 berrerabili edo birziklatu daiteke plataforma mugikor askotarako aplikazioak sortzeko. Bing C# eta jatorrizko kodearekin eraiki da. Net liburutegiek eta Xamarin aplikazioen garapenak denbora eta lan kopuru handia aurrezten laguntzen dute. Garapen-epeak laburtzen ditu hainbat plataformatarako aplikazioak sortzen dituen bitartean.
- Gailuaren laguntza osoa (adibidez, kamera, GPSa) - Xamarin-ek natibo mailako aplikazioen funtzionaltasuna eskaintzen duenez, hardware bateragarritasun kezkak, pluginak eta APIak saihesten ditu. Bertako liburutegiekin lotzeko aukera ere ematen du. Garatzaileek gailuaren funtzio arruntekin aplikazioak sor ditzakete, eta aplikazio horiek ezin hobeto funtzionatuko dute plataforma nagusi guztietan. Xamarin aplikazioak garatzeko zerbitzuen pertsonalizazio hobea eta jatorrizko esperientzia bat lor daitezke gastu orokorrak txikiagoak izanik.
- Open source laguntza sendoa duen teknologia- Microsoft-ek Xamarin erosi ondoren, politika aldaketa nabarmenak izan ziren. Xamarin SDK kode irekiko bihurtu da, eta gaur egun guztientzako eskuragarri dago MIT lizentziapean. Plataformak ospea handitu zuen oztopo nagusia —lizentzia erostea— kendu baitzen. Xamarin plataforma anitzeko aplikazioen garapenerako soluzioetarako teknologia pila fidagarri eta sendo bihurtu da.
Cons
- UI garapenak denbora behar du - Xamarin software gehienak plataformetan berrerabili daitezkeen arren, oinarrizko interfazearen eraikuntza ez da eramangarria oraindik. Baliteke garatzaileei kodeketa batzuk egin behar izatea edo plataforma ezberdinetan lan egitea, hau da, denbora asko eskatzen duen prozedura da.
- Baliteke fitxategiaren tamaina egokitu behar izatea. Baliteke garatzaileek aplikazioaren fitxategien tamainan aldaketak egin behar izatea. Horren oinarrizko arrazoia da oinarrizko liburutegiak eta funtzionaltasunak erabiltzeak presio handia eragiten duela aplikazioen dendan. Xamarin aplikazioa dagokion aplikazio-dendan bidali aurretik, ziurtatu behar duzu aplikazioaren fitxategi-tamaina egokia duela. Tamainak normalean 3MB eta 15MB bitartekoak dira.
Ondorioa
Beraz, hauek dira kontuan hartu beharreko Flutter alternatiba nagusietako batzuk plataforma anitzeko aplikazio errazak eta bikainak diseinatzean.
Hala ere, erabaki baino lehen, ezinbestekoa da zure aplikazioaren ezaugarriak aztertzea, horrek esango dizulako zein esparru den egokiena.
Azkenik, zure irtenbide-hautaketak harpidetzen zaren edozein filosofian oinarrituta egon behar du, non eta nola zabaldu nahi duzun zure aplikazioa, eta zer talentu dituzun edo etorkizunean eskuratu nahi dituzun.
Noski, zuretzako zein den aproposa zehazteko planteamendurik onena horiek guztiekin garatzen hastea eta gero zure emaitzak alderatzea da.
Utzi erantzun bat