Mellékleteink: HUP | Gamekapocs
Keres

iOS-programozás Visual Studióból

Gálffy Csaba, 2013. február 21. 12:19
Ez a cikk több évvel ezelőtt születetett, ezért előfordulhat, hogy a tartalma már elavult.
Frissebb anyagokat találhatsz a keresőnk segítségével:

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.

Facebook

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.