Četvrtak, 23. siječnja, 2014. Komentiraj

Cross-platform razvoj s Xamarinom

Cross-platform razvoj s Xamarinom

Razvoj iOS, OSX i Android aplikacija u C#-u? Zvuči predobro da bi bilo istinito? Nema kvake; Xamarin vam daje mogućnost da razvijate nativne aplikacije za te platforme direktno iz vašeg Visual Studija.

Porastom popularnosti različitih platformi sve češće se javlja potreba da se razvije klijent za svaku od njih – od razvoja klasičnih desktop klijenata, do danas možda zanimljivijih mobilnih klijenata za Windows Phone, Android ili iOS. U zadnjih nekoliko godina, s porastom takvih zahtjeva, javljaju se i rješenja koja pokušavaju pojednostaviti taj proces. Umjesto da se jedno rješenje implementira više puta iznova u različitim razvojnim okruženjima i jezicima, proces se pokušava ujediniti za sve platforme.

Neka od najčešćih (ali ne i najsretnijih) rješenja su implementacije u jezicima otvorenog tipa poput HTML-a. Ideja je da se aplikacija realizira u jednoj okolini koju mogu interpretirati i prikazati sve platforme. PhoneGap tako nudi mogućnost razvoja web aplikacija koristeći HTML5, CSS i Javascript koje se tada prilagođavaju za izvođenje na pojedinoj platformi. Prednost takvog pristupa je visoka efikasnost prilikom izrade budući da se veći dio rješenja implementira samo jednom i to koristeći poznate alate koji su već dugo s nama. No rješenje je daleko od idealnog – Javascript se ne može mjeriti s brzinom nativnih aplikacija, razlike u interpretaciji HTML5 i CSS standarda na pojedinim platformama stvaraju glavobolje, a kao developeri imamo i iznimno ograničen pristup uređaju na kojem se aplikacija izvršava.

Xamarin

native-compilationNo tu dolazi Xamarin, rješenje koje donosi najbolje iz oba svijeta. Xamarin nudi razvoj Android i iOS rješenja u jedinstvenoj razvojnoj okolini koristeći jezik C# , ali tako da se u konačnici naš kod prevodi nativno na svaku platformu pružajući optimalne performanse. LINQ, TPL, anonimni tipovi, async await, lambda izrazi i ostali elementi koje znamo i volimo kod C#-a, postaju dostupni i kod izrade iOS i Android aplikacija.

Xamarin Studio IDE dolazi u Xamarin paketu i može se koristiti za razvoj na Windows ili Mac OSX uređajima. No, ipak, pravi highlight Xamarina je taj da podržava razvoj u Visual Studiju zajedno s njegovim brojnim raspoloživim alatima i dodacima (npr. Resharper).

Za pokretanje iOS aplikacija obavezan je Mac s instaliranim Xamarin.iOS-om. Aplikaciju možemo normalno razvijati u Visual Studiju, ali  za izvođenje potreban je Mac. Postupak povezivanja Visual Studija s Mac hostom automatski se radi putem mreže uz pomoć alata unutar Xamarin paketa.

Xamarin nudi dva komercijalna proizvoda – Xamarin.iOS i Xamarin.Android  (poznati još kao i MonoTouch  i Mono for Android).

Reusability

Xamarine_graph1Xamarin.Android i Xamarin.iOS razvili su se iz Monoa, open source implementacije .NET-a, i nude pristup velikom podskupu klasa unutar .NET-ovog BCL-a (Base Class Library). To nam otvara mogućnost da velik dio kôda dijelimo između različitih platformi. Pristup bazi podataka, pristup datotekama, serijalizacija, networking i drugi česti zadaci mogu se tako riješiti na identičan način na različitim platformama. Zajednička funkcionalnost obično se centralizira u portabilnim projektima (PCL – Portable Class Library) koji se potom referenciraju i koriste u klijentskim projektima (Xamarin.Android, Xamarin.iOS, Windows Phone, Windows Store Apps, WPF…). Alternativno, zajednički kôd može se dijeliti između projekata koristeći file linking unutar Visual Studija.

Platform specific solutions

Osim jezgrene funkcionalnosti .NET-a na mobilnim platformama, Xamarin.Android i Xamarin.iOS nude potpun pristup iOS i Android SDK-u putem odgovarajućih C# wrapper klasa.

C#Naravno, velik kolač našeg rješenja ovisan je o platformi, ne može se generalizirati i mora se pisati specifično za pojedinu platformu. Izrada korisničkog sučelja, logike koja organizira i upravlja korisničkim sučeljem, reagira na događaje, upravlja životnim vijekom aplikacije i sl. –  u potpunosti izvedivo u C#-u. U svojoj formi, razvoj Android i iOS aplikacija ne razlikuje se previše kada se pristupa sa Xamarinom – forma rješenja je ista, jezik je drugačiji. SDK-ovi su prilagođeni jeziku; Javine getter i setter metode zamijenjene su odgovarajućim propertyima, metode su pisane u camel caseu i sl.

Community and Support

Xamarin se brine da smo uvijek u toku s novim verzijama SDK-a koje dolaze. Tek nekoliko sati potrebno je da bi se obradila nova Android ili iOS verzija i plasirao Xamarin update.

Xamarin na svojim stranicama nudi bogatu dokumentaciju i hrpu primjera kako bi olakšao početne korake, no, zgodna je stvar da niste ovisni o tome. Budući da su iOS i Android već zrele platforme, brojna pitanja već imaju svoje odgovore koji se direktno translatiraju u Xamarin domenu. Generalno, sva funkcionalnost dostupna i izvediva u Objective-C-u ili Javi, može se realizirati s Xamarinom i C#-om.

Za one koje zanima nešto više, dobar pregled mogu naći u službenoj dokumentaciji i mogu se prijaviti za probnu verziju u trajanju od mjesec dana.

Podijeli s prijateljima

Ostavite komentar

  1. Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena s *
  2. Možete koristiti sljedeće HTML tagove i atribute: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Real Time Web Analytics