arrow

Xnet gre samozavestno globlje tudi v vode mobilnega razvoja

01.02.2022

Septembra 2021 smo pričeli z izdelavo mobilne aplikacije za eno izmed naših strank, kjer smo kot platformo, na kateri bomo razvijali univerzalno aplikacijo, vzeli novo (v tem trenutku še ne izdano) Microsoftovo platformo, ki temelji na novem .NET 6.0 Frameworku - .NET Multi-platform App UI - .NET MAUI.

 

Stranka je želela univerzalno aplikacijo za katerokoli mobilno platformo, sami pa smo za izdelavo le-te vzeli novo, zgoraj omenjeno platformo. Razlogov za to odločitev je bilo več. Prvi je ta, da smo podjetje, ki se v 99,9% ukvarja z razvojem na Microsoftovih tehnologijah. Drugi razlog je ta, da smo hoteli izbrati čim novejši framework, saj smo s tem vsi na varni strani, da bo rešitev možno nadgrajevati in uporabljati čim dlje časa. Zavedamo se situacije v svetu v preteklosti s takimi in podobnimi frameworki za izdelavo univerzalnih aplikacij. Svet mobilnih operacijskih sistemov se razvija s svetlobno hitrostjo in temu morajo vse te univerzalne platforme slediti, sicer lahko hitro prideš do tega, da si enostavno ostal »out-of-support« in svoje aplikacije ne moreš več oddati na store ali jo zgolj posodobiti. Druga opcija je seveda vedno najbolj zanesljiva – spišeš mobilno aplikacijo v native okolju vsakega operacijskega sistema. Ukvarjamo se tudi s tem, ampak to potegne za sabo 2x večje stroške za stranko, 2x več dela za razvojno ekipo, pa seveda tudi sam izgled aplikacije v tem primeru ni nikoli točno 1:1 (Android:iOS). 

Seveda pa je ta odločitev prinesla tudi nekaj pomanjkljivosti. Odločitev o razvoju v tej platformi smo s stranko sprejeli že v prvi polovici leta 2021, ko je bila le-ta še v zelo zgodnji fazi razvoja, nestabilna, z veliko mero še nerazvitih funkcionalnosti. Takrat je bila s strani Microsofta podana informacija, da bo platforma uradno objavljena v septembru 2021, kar je bilo za stranko sprejemljivo.

Začeli smo z razvojem designa aplikacije, za kar je poskrbela naša odlična designerka Urška Premzl. Tako kot vsaka stvar, ki pride izpod njenih rok, je bila grafična predloga tudi tokrat na nivoju. Njeni designi niso nikoli »developer friendly« - enostavni za razvoj. Kot vemo sta si izraza »developer friendly« in »user friendly« nasprotna - če želiš spisati aplikacijo, ki bo uporabniku čimbolj enostavna, pregledna in učinkovita, bo to prineslo več dela programerju, več izven standardnih postopkov in komponent. Ker smo izbrali še nedokončano platformo, je seveda v njej teh komponent manj. Tukaj nam je že v začetku, kot zelo dobra rešitev, prišel prav Blazor, ki smo ga predhodno že do potankosti spoznali v enem izmed prejšnjih projektov.

Ker smo torej razvojna ekipa, ki se v veliki meri ukvarja z razvojem v najnovejših spletnih tehnologijah, tudi vemo, da se razvoja v spletnih tehnologijah vsekakor splača učiti in slediti napredku. Le tako imaš določeno zagotovilo, da če se lotiš razvoja s pomočjo nove tehnologije, boš lahko isto tehnologijo uporabljal tudi čez nekaj let. 

Na podlagi vsega navedenega, smo seveda izbrali to opcijo, saj imamo v hiši nekaj dobrih front-end razvijalcev. Domen Gričar in Andraž Bergant imata spletno programiranje designa v mezincu. Tako smo si implementacijo Urškinih idej v .NET MAUI platformo olajšali s pomočjo frameworka Blazor, ki omogoča, da mobilno aplikacijo izdelamo na tehnološkem stacku spletnih aplikacij.

.NET MAUI platforma je naslednik zelo znane Xamarin platforme. Kljub temu na spletu ni bilo takrat prav nobene dokumentacije, v resnici je tudi dandanes ni nič več. Zato bi lahko rekli da je bil ta projekt kar ena velika raziskovalna naloga, polna mejnikov, pregrad in neznank. Seveda pa na koncu, ko smo vse skupaj pripeljali do implementacije pri naročniku, tudi uspešna naloga, na katero smo upravičeno ponosni.

Naj omenim še to, da platforma še vedno ni v release verziji – ja, Microsoft je izzid platforme prestavil s septembra 2021 na konec Q1 leta 2022. Sami smo projekt pripeljali do konca tako, da smo si pomagali z znanjem in izkušnjami iz raznih drugih frameworkov, ter ga poskusili implicirati tukaj. Seveda je velika prednost v tem, da vse skupaj temelji na .NET Core, ki je že v osnovi res lepo zastavljen, modularno razširljiv in lahko stvari razmeroma enostavno tudi implementiraš. Vsekakor pomagajo tudi izkušnje in poznavanje predhodne platforme Xamarin, iz katere se je .NET MAUI tudi razvil. Veliko pripomore tudi to, da je .NET MAUI odprtokodni projekt, kjer lažje vidiš tudi v njegovo drobovje, preko GitHub kanalov pomagaš razvojni ekipi pri odkrivanju napak ter seveda predlagaš določene funkcionalnosti. 

Vse skupaj smo pripeljali do točke, ko je potrebno aplikacijo objaviti v Storu. Aplikacijo smo uspešno poslali v Google Play Store. Manjka pa nam še to, kako aplikacijo poslati v Apple Store.  Za to seveda aktivno sodelujemo z Microsoftom in sedaj čakamo, da bo stvar speljana z Microsoftove strani tako, da bo objavo mogoče stabilno tudi izvesti.

Ker imamo glede razvoja v .NET MAUI platformi še veliko povedati, polno je bilo problemov, za katere imamo rešitve, ki se jih po spletu še niti ne dobi, bo v naslednjih izdajah Pike sledilo nekaj bolj tehničnih člankov na to temo. Do takrat pa lep pozdrav.


Celotno vsebino članka si lahko preberete v reviji Pika. 

 

 

Gašper Rupnik
Vodja razvoja, predavatelj
MCT, MS, MCSD, MCPS
gasper.rupnik@kompas-xnet.si

 


Potrebuješ pomoč?
Potrebuješ pomoč?