UZBUDLJIVO VRIJEME

Zašto je Microsoft kupio Xamarin (i što od toga imaju developeri)?

Sviđa vam se članak?

Preporučite ga prijateljima i kolegama putem društvenih mreža!

Microsoft je 24. veljače ove godine objavio kako kupuje Xamarin za nepoznat iznos, iako Wall Street Journal procjenjuje kako je riječ o cifri između 400 i 500 milijuna američkih dolara. Planovi su još uvijek nedefinirani, iako je internet prepun dobronamjernih savjeta Microsoftu što da naprave s najnovijom akvizicijom.

xamarin FB

Dok se čeka odobrenje regulatornih tijela te Microsoftova Build, odnosno Xamarinova Evolve konferencija kako bismo dobili više detalja o cijeloj priči, većina medijskih objava svodi se na kratku priču o tome što je Xamarin i koliko klijenata ima. Umjesto na suhoparne detalje, ovdje ću se fokusirati na to što Microsoft i Xamarin dobivaju jedan od drugoga te što to znači nama, postojećim i potencijalnim klijentima.

Microsoftovu najnoviju kupnju ljudi uglavnom komentiraju na tri načina: “Konačno!”, “Prekasno, ali bolje ikad nego nikad.” I, meni najdraži: “Mislio sam da je Xamarin Microsoftov proizvod.” Naravno, postoje i oni koji su zaključili kako će Microsoft uništiti Xamarin te da je najpametnije u potpunosti ga otpisati, uspoređujući akviziciju Xamarina s akvizicijom Nokije.

Na stranu ti komentari i puste želje i nagađanja, Microsoft je odmah sljedeći dan pokazao kako mu je Xamarin bitan i u kojoj će mjeri staviti fokus na njega time što je službeno otkazao razvoj projekta Astoria. Projekt Astoria bio je most pomoću kojeg se moglo prebaciti Android aplikacije na Universal Windows Platformu (ovo nije emulator, nego alat za developere). Pomoću njega i sličnih projekata za prebacivanje iOS, web, Silverlight i Win32 aplikacija, Microsoft je pokušao dovući što veći broj developera i aplikacija na svoju platformu. Otkazivanjem projekta Astoria, Microsoft je definitivno pokazao fokus na Xamarin, ali i na Xamarinovu akviziciju RoboVM firme, no idemo po redu.

Što je Xamarin i zašto je opsjednut majmunima?

Xamarin je alat koji omogućuje cross platform razvoj nativnih aplikacija za Android, iOS i Mac OS X. Budući da je baziran na .NET platformi, moguće je prethodno navedene platforme proširiti i sa Windows Phone, Windows Store i Universal Windows Platform podrškom, ali samo ako se plati Business licenca i koristi Visual Studio za razvoj.

Neovisno o podršci za Windows platforme, Xamarin je stabilan i izuzetno koristan alat koji donosi popriličnu uštedu vremena potrebnog za razvoj, kroz dijeljenje dijela koda. Količina dijeljenog koda ovisi o kompleksnosti aplikacije, korištenju platform-specific značajki, kvaliteti pisanja aplikacije i kreće se između 40 i 100 posto, a u pravilu se očekuje oko 60 posto dijeljenog koda.

Iako je Xamarin osnovan tek 2011. godine, povijest tvrtke opčinjene majmunima počinje još 1997. godine. Tada je Miguel de Icaza, suosnivač Xamarina, započeo GNOME projekt, desktop okoline za Linux. Dvije godine kasnije, de Icaza i Nat Friedman, drugi suosnivač Xamarina, osnivaju Helix Code koji se orijentira na razvoj GNOME softvera. U 2001. godini najavljuju razvoj Mono (španjolska riječ za majmuna) projekta s ciljem implementacije Microsoftove .NET platforme na Linuxu te su preimenovali Helix Code u Ximian. Novell, unutar kojeg su nastale preteče Xamarina, MonoTouch i Mono for Android, ih kupuje 2003. Nakon što je Novell prodan Attachmateu, koji je raskomadao tvrtku, cijeli Mono tim je dobio otkaz te je 2011. osnovan Xamarin koji je u dogovoru s Novellom preuzeo Mono projekt. Tu ste još uvijek? Prelazimo na Microsoft.

A što je tu za Microsoft?

Microsoft se zadnjih godina jako trudi privući što veći broj developera na Visual Studio i u Azure pa su zbog toga usavršili i nadodali mnoge stvari. Visual Studio je postao stvarno dobar IDE za web developere, izdana je besplatna Community edicija Visual Studia koja dozvoljava komercijalni rad i podržava ekstenzije, dodana je podrška za izradu hibridnih mobilnih aplikacija pomoću Apache Cordova platforme, moguće je pisati C++ aplikacije za Android, a u beti je moguće pisati i Java aplikacije za Android.

Microsoft ovom akvizicijom osigurava svoju poziciju na tržištu, a svojim klijentima donosi nešto novo.

Iako Microsoft ima vlastitu mobilnu platformu, njena zastupljenost nije ni blizu onoj za Android i iOS. Visual Studio omogućuje razvoj hibridnih mobilnih aplikacija, ali neovisno o njihovim performansama i kvalitetama, većina developera hibridnih mobilnih aplikacija pretjerano ne koristi Visual Studio. Podrška za razvoj Android aplikacija pisanjem C++ i Java koda je odlična, ali Android Studio je miljama ispred. Xamarin se može koristiti u Visual Studiu, ali zbog cijene dosta ljudi koristi Xamarin Studio. native_xamarin_resize

Microsoftu je jednostavno nedostajalo nešto što će privući više developera na Visual Studio, a Xamarin je odlično rješenje za taj problem.

Osim znatno veće cijene, Xamarin u Visual Studiu je donedavno imao probleme i nedostajalo mu je nekih funkcionalnosti u odnosu na Xamarin Studio, pogotovo za iOS development. Sve je to pokrpano krajem prošle godine, ali ostalo je nepovjerenje da će se Xamarin ekstenzija za Visual Studio redovno razvijati. Ovom akvizicijom bi Xamarin konačno trebao postati građanin prvog reda u Visual Studiu, a kako ga je moguće koristiti i u besplatnom Visual Studiu, Microsoft bi mogao dobiti podosta novih korisnika ako usput i smanji cijenu Xamarina.

Početak Visual Studia izvan Windowsa?

Kako je Microsoft kroz kupovinu Xamarina dobio i Xamarin Studio, koji je stvarno dobar IDE, iako miljama iza Visual Studia, Microsoft konačno ima IDE koji radi na Mac OS X-u. Istina, izdao je Microsoft i Visual Studio Code, ali to realno nije IDE, nego super editor koji niti nema svrhu postati IDE. Microsoft u zadnje vrijeme gura cross-platform development i ne samo na mobilnim platformama pa je malo vjerojatno da će Xamarin Studio biti ugašen. Puno je veća vjerojatnost da će se na Xamarin Studiu puno intenzivnije raditi i da će konačno biti uslišane želje velikog broja ljudi – Visual Studio izvan Windowsa. Kako se uz Xamarin Studio razvija i MonoDevelop, IDE iz kojeg je nastao Xamarin Studio, postoje dobri temelji i za „Visual Studio“ na Linuxu jednog dana.

Xamarin Insights trenutno prati događaje i greške u Xamarin aplikacijama bolje od svih alternativa, a pošto Microsoft razvija vlastiti sustav za istu svrhu (Application Insights), najvjerojatnije će u njega ugraditi i mogućnosti Xamarin Insightsa, kao što trenutno radi i s HockeyAppom.microsoft_xamarin_resize

Xamarin Test Cloud trenutno podržava automatizirano testiranje samo Xamarin aplikacija, ali Microsoft bi to mogao proširiti i iskoristiti postojeću infrastrukturu.

Uz Xamarin, Microsoft dobiva i RoboVM, švedsku firmu koja je razvila sustav za razvoj Android i iOS aplikacija kodiranjem u Javi. Kako je Microsoft ugasio svoj “most” za “prebacivanje” Android aplikacija na Universal Windows Platform, RoboVM bi mogao dobro poslužiti kao novi i kvalitetniji ‘most’.

Što Xamarin dobiva?

Xamarin trenutno ima nešto više od 350 ljudi od kojih nisu svi developeri, ali oni koji jesu doslovno rade čuda. U relativno kratkom periodu uspjeli su doći od poluproizvoda do stvarno relevantnog igrača na tržištu cross platform aplikacija. Uz Xamarin za Android i iOS razvili su i library koji donosi dodatnu razinu apstrakcije i ubrzanja razvoja uz sve manju cijenu performansi (Xamarin.Forms), sustav za praćenje grešaka i događaja u aplikacijama (Xamarin Insights), Xamarin Profiler i Xamarin Test Cloud putem kojeg se mogu raditi automatizirani UI testovi na preko 2000 različitih fizičkih uređaja. Uz sve to moraju i razvijati Mono, njihovu open-source verziju .NET-a.

Xamarin bi od Microsofta trebao dobiti pristup dodatnoj radnoj snazi koja bi im olakšala i ubrzala razvoj te smanjila količinu bugova. Dio njihovog portfelja (Xamarin Insights i Xamarin Test Cloud) bi Microsoft mogao spojiti s nekim postojećim uslugama i osloboditi Xamarin tog “tereta”. Možda će najveća pomoć biti postupni prelazak s Mono na .NET Core ili njihovo postepeno spajanje, čime će prestati potreba za konstantnim održavanje kopije .NET-a.

xamarin_test_cloud_resize

Što ćemo mi (možda) dobiti?

Iako se može očekivati u kojem će smjeru ići ova priča, ni Microsoft ni Xamarin još uvijek nisu rekli ništa o daljnjim planovima. Microsoft će više informacija objaviti na svojoj Build konferenciji krajem ožujka, a Xamarin na svojoj Evolve konferenciji krajem travnja.

Xamarin je imao dva velika problema – velike firme su bile skeptične može li “mali” Xamarin biti dugotrajno dobar i stabilan izbor, a hobistima i manjim firmama je bio preskup, odnosno neisplativ.

Prvi problem Xamarin uspješno rješava u zadnjih pola godine do godinu. Osim što su prije godinu dana pokrenuli partnerstvo s Microsoftom, naknadno su ušli u partnerstva s Amazonom, IBM-om i Oracleom. To im je donijelo popriličan kredibilitet, a nisu im škodile ni razne objavljene studije o velikim firmama koje su se odlučile prijeći na Xamarin i nisu požalile. xamarin-hero_resize

Iako godišnja cijena licence od 300 dolara, odnosno 1000 dolara s Visual Studio integracijom, po platformi i nije toliko velika kada se uzme u obzir koliko Xamarin ubrzava razvoj mobilnih aplikacija i smanjuje troškove firmama, ostaje činjenica da si hobisti teško mogu priuštiti Xamarin licence. Najglasniji zahtjev na internetu je da Microsoft plasira Xamarin besplatno na tržište. Da budemo iskreni, postoji i sada besplatna Starter licenca, ali ona zbog ograničenja od 128 kB veličine aplikacije omogućuje izradu jedno malo naprednije “Hello World” aplikacije. Iako sumnjam da će Microsoft dati cijeli Xamarin besplatno, vjerujem da će preraditi trenutno licenciranje i ponuditi neku besplatnu licencu sa smislenijim ograničenjima od trenutne Starter, kao što je to napravio i s Visual Studio Community. Kako velik dio firmi koje razvijaju nešto na Microsoftovim tehnologijama, kao i startupi koji koriste Microsoftov BizSpark program, imaju MSDN pretplate, za očekivati je da će Xamarin biti uključen u te pretplate i samim time dostupan velikom broju startupa i svim developerima koji na ovaj ili onaj način imaju MSDN pretplate.

Kako Microsoft preuzima Xamarin Studio, mogli bi dobiti i kvalitetniju podršku za razvoj na raznim Microsoftovim tehnologijama na Mac OS X-u, a bilo bi lijepo i da podrže Visual Studio ekstenzije.

Jednostavnije testiranje mobilnih aplikacija

Po završetku ove akvizicije Microsoft će, uz svoj Application Insights, imati tri kupljena sustava za praćenje rada korisnika u aplikaciji i njihovih grešaka. Kroz godinu dana bi se sve to moglo stopiti u jedan stabilan i koristan sustav, kroz koji ćemo moći pratiti naše mobilne, desktop i web aplikacije, neovisno o tehnologijama koje smo koristili pri razvoju.

Podrška za Xamarin aplikacije u Test Cloudu bi se mogla proširiti s podrškom za hibridne aplikacije i “obične” nativne Android, iOS i Windows aplikacije čime bi svi developeri mobilnih aplikacija imali priliku u manje od sat vremena istestirati svoju mobilnu aplikaciju na širokom spektru mobilnih uređaja, umjesto ručnog testiranja na limitiranom setu uređaja.

xamarin_resize

Ekosustav koji raste

U zadnje dvije godine Microsoft intenzivno gura svoju novu filozofiju mobile first, cloud first i time sve više postaje prodavatelj/iznajmljivač usluga, što prema krajnjim korisnicima, što prema developerima. Više nije najvažnije gurati Windowse gdje god mogu, nego je važno gurati Microsoftove usluge. Tako su kupili Wunderlist koji nema sve mogućnosti kao njihov OneNote, ali je daleko popularniji. Kupili su Swiftkey nedavno, a Cortana dolazi predinstalirana na sve više Android mobitela.

Sa stajališta mobile app developera najznačajnije akvizicije, osim Xamarina, su HockeyApp i Capptain. HockeyApp je njemačka firma koja prati ruši li se mobilna aplikacija (slično kao Xamarin Insights, Crashalytics, Ray Gun) te pruža platformu za distribuciju beta aplikacija za više platformi s jednog mjesta. HockeyApp i dalje funkcionira kao samostalna platforma, a njegove funkcionalnosti se kopiraju u Application Insights. Capptain je francuska firma koja omogućuje praćenje ponašanja korisnika mobilnih aplikacija (čak i rušenje aplikacija), segmentaciju tih korisnika po nekim parametrima te organizaciju kampanja prema tim korisnicima, odnosno omogućava da pratite što vaši korisnici rade te da ih zadržite i usrećite. Capptain je preimenovan u Azure Mobile Engagement i u intenzivnom je razvoju, a uskoro dolazi i podrška za Xamarin kao dodatak na trenutno podržani Android, iOS i Windows platforme.

Osim spomenutih usluga, vrijedi spomenuti i Azure Mobile Apps – backend za mobilne aplikacije koji na jednostavan način omogućuje developerima da implementiraju autentifikaciju na društvene mreže, offline sinkronizaciju podataka i datoteka, slanje push notifikacije koristeći Azure Notification Hubs, ali i izradu backenda bez programiranja istog (Easy Tables i Easy API). Visual Studio Team Services developerima pruža ne samo mogućnost version controla koristeći TFVC ili git, nego i automatske buildove, automatske testove i automatski deployment.

Kad pogledamo cijeli Microsoftov ekosustav vidimo da im je cilj stvoriti jedno zaokruženo rješenje za mobile app development – od razvojnih alata u kojima se razvijaju cross platform aplikacije, preko clouda za backend, testiranje i praćenje tih aplikacija do upravljanja korisnicima. U cijeloj priči još samo fali Unity.

Dobar smjer i za jedne i za druge

Iako ćemo za detalje ove akvizicije čuti tek kroz mjesec-dva, bilo kakva ozbiljnija integracija će potrajati barem osam do dvanaest mjeseci. Smatram da Microsoft korača u dobrom smjeru gdje će biti atraktivna opcija svim developerima, a ne samo onima vezanim uz .NET. Xamarin je dobio vjetar u leđa koji će, po meni, bez sumnje jako dobro iskoristiti kad uzmemo u obzir povijest i kompetencije ljudi koji su ga osnovali i vode.

Ovo je definitivno jako zanimljivo vrijeme za biti developer i nadam se da ćemo uskoro od stvarno dobrog dobiti vrhunski alat po pristupačnijim cijenama i samim time povećati zajednicu.

Za kraj malo bezobrazne samopromocije – udruga IEEE na FER-u organizira seriju besplatnih predavanja o razvoju mobilnih aplikacija koristeći Xamarin.Forms. Oni koji su zainteresirani mogu se prijaviti na službenim stranicama udruge te će dobiti email s terminom i lokacijom prvog sljedećeg predavanja.