Szerző: Gálffy Csaba

2013. február 21. 12:19

iOS-programozás Visual Studióból

Fontos mérföldkőhöz érkezett a Mono-projekt. Az eredetileg nyílt forráskódú, linuxos .NET-et célzó csapat ma már messzébb lát, az új célpont a mobilalkalmazás-fejlesztés C#-ban, Visual Studio alól.

Bemutatta Xamarin 2.0 névre keresztelt eszköztárát az azonos nevű szoftverfejlesztő cég. A rendszer része a (Mono-alapú) Xamarin keretrendszer és a saját fejlesztésű fejlesztői eszköztár is, ez utóbbi különálló IDE-t, a Xamarin Studiót és a Visual Studióhoz használható beépülő modult is jelent. Ezzel lehetővé vált, hogy a Microsoft integrált fejlesztői környezetéből fejlesszen bárki akár Androidra, akár iOS-re mobilalkalmazást - ez eddig lehetetlennek számított.

Visual Studio és iOS - Szent Grál?

A Visual Studio beépülő modul a Xamarin szerint a fejlesztők messze legfontosabb igénye volt, a megkérdezettek háromnegyede Visual Studióban akar fejleszteni iOS-re. A Xamarin ki tudja használni a Microsoft valóban első osztályú fejlesztői környezetének minden funkcióját, így működnek a billentyűkombinációk, a szövegszerkesztő, a menük, az automatikus kiegészítés, de az IntelliSense és a debugger is a megszokott módon elérhetők. Ugyanígy használható a Visual Studio TFS-integrációja és a nemrég megjelent git-kompatibilitás is - ez valóban Visual Studióban való fejlesztést jelent.

iOS-emulátor és Visual Studio egymás mellett.

Az Apple iOS-fejlesztésre vonatkozó korlátai miatt azért nem ennyire egyszerű a helyzet, az iOS ugyanis csak natív kódot futtat és azt is csak és kizárólag OS X-et futtató gépen hajlandó létrehozni. Ezért a windowsos, Visual Studiót futtató gépet (ez lehet egyébként akár virtuális is), össze kell kötni egy OS X-et futtató Apple PC-vel, amelyen elérhető az iOS SDK, ez fogja majd a Xamarin-féle köztes kódból létrehozni a mobileszközön futó natív kódot. Az extra komplexitástól függetlenül a rendszer teljesen transzparensen működik, mind a debugolás, mind a töréspontok beszúrása a normális módon működik, egyedül a szerkeszt-és-folytat (edit and continue) funkció vész el.

MacBook vagy Mac mini továbbra is kell.

Egyelőre a Xamarin.iOS-nek nem része a felületépítő elem, ezt vagy kódban, vagy az Apple-féle Xcode Interface Builder segítségével kell létrehozni. Androidon azonban nincs ilyen korlátozás, a Google platformjára már elérhető a drag-and-drop felületépítő megoldás. Kezdő fejlesztők számára fájó pont lehet, hogy az ingyenes Visual Studio Express a korlátozásai miatt nem használható a Xamarinnal, a Microsoft ugyanis a legtöbb beépülő modul használatát csak a fizetős IDE felhasználóinak engedélyezi.

Előkészített blokkok

A fejlesztés megkönnyítése érdekében a Xamarin számtalan előre elkészített könyvtárat is kínál, ezek egy része ingyenes, másokért fizetni kell. Az ingyenesség egyébként sem áll távol a vállalattól, a Xamarin egyfejlesztős, kissé fapados, de használható változata térítésmentesen elérhető, a nagyobb, csoportmunkát támogató, nagyobb funkcionalitású csomagért azonban fizetni kell, támogatott platformonként.

A Xamarin nagy ígérete, hogy a többi keresztplatformos fejlesztői eszközzel ellentétben valódi natív alkalmazások készíthetőek vele, amelyek képesek maximálisan kihasználni a célplatform képességeit. Ezért nyilván a közös kódbázison túl külön-külön kell fejleszteni iOS-re vagy Androidra, cserébe viszont az Objective-C, illetve a Java teljes képességét kihasználhatjuk - C#-ban. A kiadással a nevezéktant is szépen feltakarította a fejlesztőcég, az ősszel bemutatott Xamarin.Mac-hez hasonlóan az androidos keretrendszer Xamarin.Android, az iOS-es pedig értelemszerűen Xamarin. iOS névre hallgat.

Közös, ami lehet

A platformok között vannak közös és platformspecifikus elemek is, a közösek közé tartozik a C# nyelv és a .NET Base Class Library, amely az alapvető funkcionalitást (hálózatelérés, adatstruktúrák, állományok és adatbázisok elérése és szálkezelés) nyújtja. A platformspecifikus elemek az adott operációs rendszer különleges rendszerhívásait és könyvtáraihoz adnak hozzáférést, Androidon például az NFC-hez vagy a Google Maps-hez, iOS-en a Core Animation-höz vagy az iAdhez. A Xamarin fejlesztési modellje szerint a megjelenítés és a felület használja a platformspecifikus részt, ezt a különböző platformok eltérő API-jai, design-irányelvei és az eltérő felhasználói elvárások miatt amúgy is külön kell fejleszteni, az alkalmazás megjelenítéshez szorosan nem kötődő része azonban a platformok között közös lehet.

A Xamarin hosszú utat tett meg az elmúlt 14 évben. Miguel de Icaza 1999-ben alapította cégét, amelynek kimondott feladata egy nyílt forráskódú .NET és C# implementáció, a Mono létrehozása volt, amellyel a .NET alkalmazások Linuxon és egyéb platformokon is futtathatóak. A Ximian nevű vállalkozást 2003-ban a Novell vásárolta fel, a fejlesztések pedig idővel a .NET mellett a Silverlightra, illetve a platformok közt iOS-re és Androidra is kiterjedtek. A Novell re aztán az Attachmate tette rá a kezét, a cég azonban nem tartott igényt a fejlesztők munkájára, a teljes Monóval foglalkozó csapat szűrét kitették. De Icaza nem adta fel továbbra sem, Xamarin néven újra saját vállalkozást kezdett, amelyhez sikerült megszerezni az Attachmate-től a Monóhoz fűződő szükséges licenceket is.

A Xamarin kezdő verziója ingyenes, azonban funkcionalitása csak kipróbálásra, illetve nagyon egyszerű alkalmazások létrehozására elegendő, a létrehozható bytekód hossza ugyanis nem haladhatja meg a 32 kilobájtot és nem engedélyezi a natív kódkönyvtárak (P/Invoke) meghívását. Az első fizetős szint évente 300 dollárba kerül, ez a két fent említett korlátot eltörli. A csapatmunka támogatásával érkezik a Business kiadás 1000 dollárért, ebben már megtalálható a fent említett Visual Studio-támogatás, SQL Server hozzáférés és email-támogatás is. A csúcskategória az Enterprise változat 1900 dollárért évente, további szoftvermodulokkal és eszközözzel, valamint egy napon belüli támogatási válaszadási garancia.

a címlapról