Este uimitor să credem că aproape zece ani în urmă, când Mono a fost lansat oficial, dezvoltatorii C # ar avea marea majoritate a peisajului mobil la îndemână. Îmi amintesc exact unde eram. A fost vara anului 2004 și am pus atingeri finale pe o aplicație desktop pentru utilizatori grași utilizând .NET Framework 2.0.
Am creat o aplicație pentru vizualizarea centrelor de date corporate în Visio și generarea automată a planurilor de migrare și a punctelor de control pentru virtualizarea mediilor lor. Au fost lucruri inovatoare atunci când mă întrebi.
Incercam sa stau pe partea de sus a .NET cat de bine am putut, asa ca atunci cand am auzit ca va fi o versiune deschisa, m-am gandit, "ingrijit". Poate aș putea rula aplicația mea pe o mașină Linux. Dar am lucrat la un magazin Microsoft și nu am văzut prea multe folosințe în el, așa că am respins-o pentru o vreme.
Aproximativ un an înainte ca Mono să intre în viață, compania care la creat, Ximian, a fost achiziționată de Novell și au continuat lucrările asupra produselor sale. Printre aceste produse a fost Mono. În timpul său sub umbrela Novell, Mono a continuat să fie îmbunătățit îndeaproape în urma creșterii și funcționalității .NET Framework prin Microsoft.
În acest timp, au apărut două progrese foarte mari în spațiul mobil cu privire la Mono, MonoTouch și Mono pentru Android au fost lansate în 2009 și respectiv 2011. Spre uimirea comunității .NET, am putea scrie acum aplicații mobile care vizează platformele iOS și Android într-o limbă cu care eram familiarizați. Din păcate, acest lucru nu a fost întâlnit imediat cu brațele deschise.
În timp ce platforma Android nu pare să aibă mari probleme cu acest lucru, Apple, pe de altă parte, nu a fost destul de receptivă. La jumătatea anului 2010, Apple a actualizat termenii programului iOS Developer, care le-a interzis dezvoltatorilor să scrie aplicații în alte limbi decât C, C ++ și Obiectiv-C și a restrâns orice tip de strat între platforma iOS și aplicațiile iOS.
Acest lucru ar fi putut fi cu siguranță un dezastru pentru MonoTouch înainte. Din fericire, la sfârșitul anului 2010, Apple a relaxat restricțiile lingvistice, iar viitorul lui MonoTouch arăta din nou strălucitor, chiar dacă doar pentru scurt timp.
Pe măsură ce perspectivele utilizatorilor MonoTouch au început să se lumineze din nou, a mai existat o altă problemă. La începutul anului 2011, Attachmate a achiziționat Novell și a anunțat sute de disponibilizări ale forței de muncă Novell. Printre acele disponibilizări s-au numărat mai mulți dintre fondatorii originalului cadru Mono, precum și arhitecții și dezvoltatorii celor două monitoare MonoTouch și Mono pentru Android. Încă o dată, ne-am preocupat de viitorul capacității noastre de a crea aplicații C # care rulează pe aceste noi platforme.
Abia la o lună după ce a fost concediat, Miguel de Icaza a creat o nouă companie numită Xamarin și a promis că va continua dezvoltarea și sprijinul lui Mono. Novell și Xamarin au anunțat că va fi acordată o licență perpetuă pentru Mono, MonoTouch și Mono pentru Android și că Xamarin va prelua oficial proiectul. Am avut din nou cheile regatului.
Aproximativ trei ani după crearea lui Xamarin, avem niște instrumente cu adevărat remarcabile. Aceste instrumente nu sunt doar remarcabile pentru faptul că ne permit să scriem aplicații C # care rulează pe platforme non-Microsoft, dar ele sunt și extrem de ușor de instalat.
Pentru a începe, pur și simplu vă îndreptați spre site-ul Xamarin, înscrieți-vă pentru un cont dacă nu aveți deja unul și vizitați pagina de descărcare. Cu fiecare cont, veți primi un studiu gratuit de 30 de zile al Business Edition al Xamarin, care vă oferă tot ce aveți nevoie.
În ultimii ani, procesul de instalare al lui Xamarin sa îmbunătățit mult din zilele lui MonoTouch și Mono pentru Android. Este o instalare complet autonomă care va detecta software-ul necesar și versiunile acestora pentru a începe, inclusiv versiunea corespunzătoare a SDK-ului Android.
În mintea mea, cea mai importantă caracteristică a ediției Business (și Enterprise) este suportul pentru Visual Studio. Aceasta înseamnă că puteți să scrieți toate aplicațiile dvs. iOS și Android utilizând nu numai un IDE cu care vă simțiți confortabil, ci și să beneficiați de orice alte pluginuri sau extensii pentru Visual Studio pe care le folosiți, de exemplu Resharper.
Nu știu despre tine, dar cu siguranță mă deranjează atunci când deschid Visual Studio, selectez Fișier> Proiect nou și priviți drept în fața opțiunilor pentru a crea o aplicație iOS sau Android.
Dacă încercarea gratuită de 30 de zile a ediției Business Edition a expirat în momentul în care ați citit acest lucru, puteți să treceți la Starter Edition și să continuați să jucați cu Xamarin. Cu toate acestea, există o serie de dezavantaje la ediția Starter Edition.
Dacă pur și simplu utilizați ediția Starter Edition pentru a juca cu Xamarin, aceste restricții nu sunt mari. Dacă lucrați la următoarea aplicație mare, va trebui să faceți o ponei pentru Business sau Enterprise Edition. Fiecare ediție are și un IDE gratuit, Studio Xamarin.
Xamarin Studio este un IDE complet echipat, care include multe caracteristici pe care le găsiți și în Visual Studio, deci cu siguranță nu trebuie să vă simțiți scurtcircuitați în nici un fel dacă alegeți să utilizați Xamarin Studio. Mă simt foarte confortabil folosind-o și este cu adevărat o bucurie de a lucra.
Lucrul frumos este că soluția și structurile de proiect sunt interschimbabile cu cele ale Visual Studio. Aceasta înseamnă că, dacă aveți o licență pentru o ediție a Xamarin care vă permite să utilizați Visual Studio, puteți lucra la aceeași soluție în cadrul fiecărui IDE. Acest lucru permite dezvoltarea de echipe între dezvoltatori care utilizează fie un sistem bazat pe Windows sau Mac. Nu este nevoie de software pentru virtualizare, deoarece Xamarin Studio este disponibil atât pentru Windows cât și pentru OS X.
Când începeți cu Xamarin, este important să fiți conștienți de opțiunile de configurare. Pentru a intra în configurația de bază, selectați Instrumente> Opțiuni din Visual Studio sau Xamarin Studio.
În prezent am doar Xamarin.Android instalat. Dacă ați instalat, de asemenea Xamarin.iOS, veți vedea mai multe opțiuni de configurare. Din partea dreaptă a dialogului de opțiuni veți vedea următoarele opțiuni în Visual Studio.
În studioul Xamarin, opțiuni similare sunt împărțite între ele Locațiile SDK, debugger, și Android arborele elemente de vizualizare în proiecte secțiune. Permiteți-mi să vă duc prin diferitele opțiuni de configurare.
Așa cum probabil ați ghicit, aceste setări sunt utilizate pentru a seta locația biților Android pe aparat. De obicei, nu consider că este necesar să le modificăm și, cel mai adesea, o instalare curată a Xamarin-uneori cu o actualizare sau două - va descărca și instala toate versiunile corespunzătoare în locațiile corecte. Dacă sunteți un dezvoltator mai experimentat în Android, care trebuie să aibă acces la mai multe versiuni și să poată schimba înainte și înapoi, aveți această abilitate.
Aceasta este probabil opțiunea de configurare pe care o folosesc cel mai mult. Când scriu o aplicație care funcționează cu date sandbox locale pe un dispozitiv sau în emulator, cum ar fi fișiere sau o bază de date, voi verifica eventual această casetă.
În timpul implementării unei aplicații pe un dispozitiv sau emulator, toate datele existente, inclusiv fișierele bazei de date, sunt eliminate și trebuie să fie create din nou. În primele etape de dezvoltare, când vreau să vă asigur că baza de date este creată cu succes, este bine. După acest punct, totuși, voi dori să lucrez cu o bază de date populată și nu trebuie să stabilesc acele date de fiecare dată când aplicația este implementată.
În timpul ciclului de dezvoltare, implementați depanarea pe un dispozitiv sau pe emulator. În mod prestabilit, pachetul inclus împreună cu aplicația dvs. sunt simbolurile de depanare care vă permit să depanați, să setați puncte de oprire în codul propriu și să treceți prin linii în timp ce aplicația se execută. Această opțiune vă permite să aveți, de asemenea, acces la simbolurile de depanare în timpul de rulare comun Mono, precum și la bibliotecile de clasă de bază pentru a vă oferi mai multe informații despre ceea ce se întâmplă în acele domenii, precum și propriul cod.
Acesta este folosit numai pentru depanare. O opțiune similară se găsește în Xamarin Studio. O puteți găsi sub debugger opțiune ca Debug cod de proiect numai; nu intra în codul cadru. Va trebui să debifați această casetă de selectare pentru a intra în cadrul Mono.
Dacă aveți nevoie să optimizați emulatorul Android cu setări suplimentare pe care le-ați putea seta de obicei manual atunci când rulează, această opțiune vă permite să transmiteți aceste argumente direct emulatorului prin Visual Studio sau Xamarin Studio.
Software-ul Xamarin evoluează constant și este actualizat. Este cu adevărat plătit să rămână în fruntea oricăror modificări ale versiunii pe care o utilizați în prezent, precum și ce urmează. Aici puteți seta tipurile de actualizări pentru care doriți să fiți informat (ă). Vi se va cere să descărcați și să instalați versiuni noi dacă bifați această casetă de selectare.
De obicei stau cu lansări stabile pentru aplicațiile care sunt programate pentru lansare, dar îmi place să am o alfa sau o versiune beta pe care să le joc. Există o opțiune similară în Xamarin Studio, dar într-o altă locație. Acesta poate fi găsit sub Ajutor> Verificați pentru actualizări. Aici puteți alege Actualizați canalul la fel de Grajd, beta, sau Alfa, la fel ca în Visual Studio.
Această opțiune permite logarea implementării dispozitivului. Când această opțiune este activată, Visual Studio direcționează ieșirea din jurnalul de desfășurare la monodroid.log fișier găsit pe desktop. Această opțiune nu este disponibilă în Xamarin Studio, cel puțin nu ca o configurație.
Studio Xamarin scrie întotdeauna jurnalele de implementare ale dispozitivului, dar acestea sunt puțin mai greu de găsit. Pe Windows, le puteți găsi în \ LOCALAPPDATA \ XamarinStudio- VERSION \ logs
dosarul în care VERSIUNE
este versiunea Xamarin Studio pe care o utilizați. Fișierele sunt create în acel folder cu convenția de numire a AndroidTools- DATE __ TIME
Unde DATA
este data curentă a desfășurării și TIMP
este momentul real al desfășurării.
Înainte de a aborda frumusețea acestui cod și băiatul este frumos, este important să înțelegeți că doar pentru că puteți scrie aplicații iOS și Android în C #, nu înseamnă că puteți scrie doar aplicații iOS și Android în C #. Echipa Xamarin a facut un job fantastic care sa permita dezvoltatorilor cu un background in C # sa aiba abilitatepentru a crea aplicații iOS și Android. Problema constă în cunoaștere. Permiteți-mi să explic acest lucru în detaliu.
S-ar putea să aveți cunoștințele C # de care aveți nevoie, dar dacă nu ați făcut conversații în iOS sau Android în trecut, nu aveți cunoștințe despre platformă. Pentru a face Xamarin utilizabil la toate nivelurile dezvoltatorilor iOS și Android, echipa Xamarin a cartografiat construcțiile de limbă și structurile de clasă din obiectivul C pentru iOS și Java pentru Android în C #.
Deci, ce înseamnă asta? Aceasta înseamnă că cel puțin trebuie să aveți o înțelegere de bază a modelului de programare iOS și Android și SDK-urilor pentru a putea profita de Xamarin. Asta înseamnă că platformei AV Foundation
clasa în Obiectiv-C este MonoTouch.AVFoundation
clasa în C #. Activitate
clasa în Java este Android.App.Activity
clasa în C #.
Dacă nu aveți nicio experiență cu iOS sau Android, nu lăsați-vă lipsa de cunoștințe să vă descurajeze să utilizați Xamarin. Nu este nevoie să petreceți luni, zile sau chiar ore în Centrul iOS Dev Center sau pe site-ul Android Developer. Ideea este că familiarizarea cu platforma pe care o dezvolți este mai mult decât merită timpul dacă ambiția dvs. este de a crea un produs de înaltă calitate.
Sugestia mea este sa mergeti direct la Xamarin Developer Center si sa intrati rapid in miscare. Veți găsi documentație, exemple de aplicații, tutoriale, videoclipuri și referințe API. Totul după ce începem să cercetăm pur și simplu cum să realizăm anumite sarcini. Odată ce obțineți un bun mâner pe API și fluxul de dezvoltare, puteți reveni la resursele iOS și Android pentru a obține o cunoaștere mai aprofundată a platformelor.
Acum, că aveți instrumentele necesare descărcate și instalate, hai să le luăm pentru o rotire. Pentru a urmări de-a lungul timpului, puteți utiliza fie Visual Studio, fie Xamarin Studio, pentru că mă voi concentra pe cod, nu pe IDE. Pentru acest tutorial, voi folosi Visual Studio 2013 care rulează pe Windows, dar sunteți liber să utilizați fie IDE pe Windows, fie Xamarin Studio pe OS X. Vom crea o aplicație Android simplă care va citi fluxul actual de știri de la Xamarin și o vom numi XamFeed.
Începeți ca și în cazul oricărei alte aplicații C #, creând un nou proiect / soluție și numind-o XamFeed. Conexiuni convenționale de denumire pentru o aplicație ca aceasta ar fi anexate .Android până la sfârșitul numelui. Aceasta este pentru a diferenția numele acestei aplicații de orice altă versiune specifică platformei pe care o puteți crea mai târziu (cum ar fi .iOS, .Mac, .Windows Phone, etc).
Aceasta va fi o aplicație foarte simplă, așa că vom păstra și numele simplu. Puteți alege oricare dintre șabloanele Android pe care le doriți, aplicația Android, aplicația Honeycomb Android sau aplicația Sandwich Android Ice Cream. Acestea au setat doar versiunea de bază Android pe care aplicația noastră o va viza. Voi folosi baza Aplicație Android șablon.
În Soluție Explorer, deschide Activitate principala
clasa, care va fi punctul principal de intrare al aplicației noastre. Îmi place să redenumesc acest lucru Activitate
pentru a reprezenta mai bine scopul pe care îl va servi, continuați și redenumiți-l FeedActivity
.
Dacă nu sunteți familiarizați cu activitățile, gândiți-vă la unul Activitate
ca ecran sau vizualizare în aplicația Android. Fiecare ecran de care aveți nevoie în aplicația dvs. va avea o clasă corespunzătoare care moșteneste de la Activitate
clasa de bază.
În FeedActivity
clasa, aveți posibilitatea de a suprascrie o serie de metode care vă sunt furnizate din cutie. Singurul care ni se pare îngrijorat în acest moment este OnCreate
metoda care va fi apelată atunci când ecranul nostru este creat și accesibil utilizatorului.
Primul lucru pe care îl vom face este să creați o nouă clasă care să reprezinte feedul. Se poate extinde în mod evident acest lucru, dar tot ce avem nevoie pentru moment este Titlu
, PubDate
, Creator
, și Legătură
la conținutul articolului.
clasa publică RssItem public string Titlu get; a stabilit; șir public PubDate get; a stabilit; șirul public Creator get; a stabilit; șir public public Link get; a stabilit;
Acum putem schimba implementarea OnCreate
în cadrul nostru Activitate principala
pentru a obține datele din fluxul Xamarin. Inlocuieste OnCreate
punerea în aplicare cu următoarele:
[Activitate (Etichetă = "XamFeed", MainLauncher = true, Icon = "@ drawable / icon")] Clasa publică FeedActivity: ListActivity private RssItem [] _items; async protejat override void OnCreate (pachet Bundle) base.OnCreate (pachet); folosind (var client = nou HttpClient ()) var xmlFeed = await client.GetStringAsync ("http://blog.xamarin.com/feed/"); var doc = XDocument.Parse (xmlFeed); XNamespace dc = "http://purl.org/dc/elements/1.1/"; _items = (de la elementul din doc.Descendants ("item") selectați noi RssItem Title = item.Element ("title"). dc + "creator") Valoare, Link = item.Element ("link") Valoare) ToArray (); ListAdapter = FeedAdapter nou (acest lucru, _items); suprascriere protejată void OnListItemClick (ListView l, Vizualizare v, poziție int, id lung) base.OnListItemClick (l, v, poziție, id); var second = intenție nouă (acest tip, (WebActivity)); second.PutExtra ("link", _items [poziție] .Link); StartActivity (a doua);
Să mergem prin linia de cod a acestui fragment de cod pentru a vedea ce se întâmplă.
[Activitate (Etichetă = "XamFeed", MainLauncher = true, Icon = "@ drawable / icon")]
ActivityAttribute
care decoreaza FeedActivity
clasa este mecanismul care Xamarin.Android utilizează pentru a lăsa dispozitivul țintă sau emulatorul să știe că acesta este un Activitate
(sau ecran) accesibil în cadrul aplicației. Acest lucru este necesar pentru toți Activitate
clase din aplicația dvs..
privat RssItem [] _items;
Vom salva toate elementele de alimentare pe care le tragem de pe site-ul Xamarin într-o variabilă pentru a ne împiedica să facem în mod constant cereri HTTP. Poate doriți să rezolvați acest lucru în mod diferit, în funcție de dacă doriți sau nu să actualizați acest ecran mai târziu cu conținut nou. În aplicația noastră simplă, nu vom face acest lucru.
asociere protejată asincronă void OnCreate (Bundle Bundle)
Apoi, noi suprascrie OnCreate
care este expusă prin Activitate
clasa de bază în nostru FeedActivity
clasă. Această metodă este numită de fiecare dată Activitate
este instanțiată de către. După cum puteți vedea, putem folosi și noul C # 5.0 async / astept
pentru a face această metodă asincronă.
base.OnCreate (pachet);
Asigurați-vă că apelați base.OnCreate
pe bază Activitate
clasă. Acest lucru va asigura că orice prelucrare a clasei de bază nu are loc în timpul OnCreate
metoda va continua să funcționeze.
folosind (var client = nou HttpClient ())
Pentru a prelua datele RSS de pe site-ul Xamarin, vom folosi httpclient
întrucât oferă o serie de metode convenabile asincrone pentru a prelua date prin HTTP.
var xmlFeed = așteptați client.GetStringAsync ("http://blog.xamarin.com/feed/"); var doc = XDocument.Parse (xmlFeed);
Apoi invocăm GetStringAsync
metoda pe httpclient
pentru a recupera datele de alimentare și Analiza
într-un XDocument
obiect de a face unele Linq2XML magie.
XNamespace dc = "http://purl.org/dc/elements/1.1/"; _items = (de la elementul din doc.Descendants ("item") selectați noi RssItem Title = item.Element ("title"). dc + "creator") Valoare, Link = item.Element ("link") Valoare) ToArray ();
Pentru a prelua corect elementele din rezultatul rezultat XDocument
obiect, trebuie să creați o instanță a XNamespace
clasa care reprezintă o parte din formatul personalizat folosit în feedul Xamarin RSS. Putem apoi să executăm o interogare LINQ împotriva XDocument
pentru a trage toate elementele și pentru a crea noi instanțe ale RssItem
clasă pe baza proprietăților elementului.
ListAdapter = FeedAdapter nou (acest lucru, _items);
În cele din urmă, folosim un adaptor personalizat pentru a popula ListView
din FeedActivity
, care este definită în Main.axml
document în Resurse / Layout
pliant. Gândiți-vă de adaptoarele Android ca un mecanism pentru a oferi unele formatări personalizate ale elementelor sau widget-urilor în cadrul interfeței utilizator. Toate componentele interfeței utilizator care utilizează adaptoare, cum ar fi a ListView
, utilizați adaptoarele implicite, dacă nu le specificați în mod explicit, însă le puteți înlocui întotdeauna cu propriile dvs..
Ultima piesă a puzzle-ului pentru FeedActivity
clasa este de a suprascrie OnListItemClick
astfel încât să putem deschide un nou Activitate
care ne arată conținutul real al elementelor de alimentare individuale pe care le atingem.
base.OnListItemClick (l, v, poziție, id);
Încă o dată, numim metoda de clasă de bază pentru a fi siguri că toate prelucrările normale sunt efectuate.
var second = intenție nouă (acest tip, (WebActivity)); second.PutExtra ("link", _items [poziție] .Link); StartActivity (a doua);
Acum urmăm modelul de design Android pentru transmiterea datelor către un nou model Activitate
. Acest lucru va deveni foarte familiar pentru tine, pe măsură ce creați mai multe aplicații care implică mai multe ecrane. Noi creăm un nou scop
obiect, care este modul Android de a transmite date unui nou Activitate
. Îi transmitem două obiecte care reprezintă contextul în care este inițiat apelul, acest
, si Tip
obiectează unde se îndreaptă.
Odată ce avem noul scop
obiect, noi a pune lucruri, de obicei, șiruri de caractere, în ea și să le transmiteți. În acest caz, folosim PutExtra
metoda de adăugare a valoare cheie
pereche la scop
, și începe procesul de tranziție la WebActivity
ecran cu StartActivity
metodă.
Pe baza codului implicat în crearea FeedActivity
ecran, trebuie să creați acum FeedAdapter
clasa care populare și formate RssItem
datele noastre ListView
și a WebActivity
pentru a reprezenta următorul ecran. Să începem cu FeedAdapter
clasă.
clasa publica FeedAdapter: BaseAdapterprivat RssItem [] _items; activitate privată _context; public FeedAdapter (context de activitate, elemente RssItem []): base () _context = context; _items = elemente; suprascrieți publicul RssImite această [int position] get return _items [position]; suprascrie public int Count get return _items.Count (); suprascrie publicul lung GetItemId (int poziție) retur; suprascriere publică Vizualizare GetView (poziție int, Vizualizare convertView, parentă ViewGroup) var view = convertView; dacă (vezi == null) view = _context.LayoutInflater.Inflate (Android.Resource.Layout.SimpleListItem2, null); view.FindViewById (Android.Resource.Id.Text1) .Text = _items [position] .Title; view.FindViewById (Android.Resource.Id.Text2) .Text = șir.Format ("0 pe 1", _items [position] .Creator, _items [position] .PubDate); retur;
Hopa. E multă cod. De fapt, este destul de simplu. Trebuie să ignorăm patru metode / proprietăți din clasa de bază, BaseAdapter
. În cazul nostru, parametrul generic va fi al nostru RssItem
clasă. Primele trei sunt destul de auto-explicative.
această poziție [int]
returnează un RssItem
la poziția dată în matrice.Numara
returnează numărul RssItem
obiecte din matrice.GetItemId
returnează id-ul
a unui RssItem
la o anumită poziție, poziția din exemplul nostru.Ultima, și puțin mai complicată, depășire este GetView
metodă. Această metodă devine o instanță a ListView
în cadrul nostru Activitate
și Umfla
ca un a SimpleListItem2
, care este un tip de ListItem
vizualizare în Android care permite două rânduri de text într-un singur element. Apoi, setăm primul rând de text la RssItem.Title
proprietății și al doilea rând de text la o concatenare a textului RssItem.Creator
proprietate și RssItem.PubDate
proprietate.
Cu adaptorul setat, ne putem concentra pe al doilea ecran al aplicației noastre, WebActivity
.
[Activity (Label = "WebActivity")] WebActivitate clasa publica: Activitate override protected void OnCreate (pachet pachet) base.OnCreate (pachet); SetContentView (Resource.Layout.WebActivity); Vizualizare WebView = FindViewById(Resource.Id.DetailView); view.LoadUrl (Intent.GetStringExtra ( "link-ul"));
Structura este similară cu cea a modelului FeedActivity
clasă. Noi folosim din nou ActivityAttribute
pentru a decora WebActivity
clasă. Există doar trei linii puțin diferite în această metodă pe care nu le-am întâlnit înainte.
SetContentView (Resource.Layout.WebActivity);
SetContentView
metoda este o metodă de ajutor frumos, care va cartografia C # Activitate
clasă la fișierul de aspect specificat. În acest exemplu, facem referire la WebActivity.axml
fişier.
Vizualizare WebView = FindViewById(Resource.Id.DetailView); view.LoadUrl (Intent.GetStringExtra ( "link-ul"));
Ultimele două linii sunt specifice pentru WebView
control în aspectul nostru. Noi folosim FindViewById
metoda pentru a obține o referință la specificat WebView
controlați și apelați LoadUrl
și trimiteți datele trimise la aceasta Activitate
, prin intermediul unui scop
, de la FeedActivity
clasă.
Ultimele bucăți ale puzzle-ului sunt fișierele de aspect care definesc plasarea și denumirea comenzilor pe ecranele individuale. Primul este Main.axml
fișier în Resurse / Layout
folder în soluția dvs. Pur și simplu înlocuiți conținutul cu următoarele:
Apoi, creați un nou fișier de aspect Android în Resurse / Layout
dosarul, denumiți-l WebActivity.axml
, și înlocuiți conținutul cu următoarele:
Odată ce ați finalizat crearea tuturor pieselor acestei aplicații, ar trebui să puteți construi cu succes aplicația și să o implementați în Emulator Android. Procesul de construire este la fel ca orice altă aplicație pe care ați creat-o în Visual Studio. Puteți depana aplicația apăsând tasta F5 sau executați aplicația utilizând Control-F5. Singura diferență este că aveți o serie de opțiuni de implementare pe care le puteți configura. Pentru acest tutorial, suntem interesați să rulați aplicația în Emulator Android, dar dacă aveți un dispozitiv fizic puteți rula aplicația dvs. și acolo.
În bara de instrumente Xamarin.Android, aveți mai multe opțiuni diferite. Aveți un meniu derulant care vă permite să specificați versiunea Android pe care ar trebui să o execute emulatorul. Pentru această aplicație, am ales să rulez pe cea mai recentă versiune de Android, Android_API_19 sau KitKat la momentul scrisului.
Dacă nu aveți cea mai recentă versiune a SDK-ului, așa cum o fac aici, puteți deschide Managerul Android SDK și puteți descărca versiunea pe care doriți să rulați aplicația. Dacă deschideți Managerul SDK Android, puteți alege dintr-o multitudine de versiuni Android SDK diferite și câteva instrumente suplimentare.
Aveți, de asemenea, opțiunea de a configura emulatorii disponibili sau de a vă crea propriul. Acest lucru se face prin Managerul Emulator Android, în care puteți crea, edita, copia și șterge emulatorii.
Făcând clic pe Nou sau Editați | × din dreapta, vi se prezintă un dialog prin care puteți configura emulatorul.
Odată ce totul este configurat așa cum vă place, este timpul pentru momentul adevărului, executând aplicația Android. Apăsați F5 și așteptați lansarea emulatorului, ceea ce poate dura ceva timp. Prin urmare, este o idee bună să lăsați emulatorul deschis, deci nu trebuie să așteptați să se pornească de fiecare dată când implementați aplicația. Odată ce aplicația dvs. rulează în emulator, ar trebui să vedeți ceva de genul acesta.
Vizualizarea dvs. poate diferi ușor, în funcție de modul în care ați configurat emulatorul. Dacă atingi sau dai clic pe unul dintre titluri, ar trebui să te duci la o vizualizare web din cadrul aplicației care arată asemănătoare celei de mai jos.
Acolo îl aveți. Ați creat cu succes o aplicație Android utilizând Visual Studio, C # și un mic ajutor de la prietenii dvs. de la Xamarin.
De aici puteți face o serie de pași. Puteți personaliza această aplicație pentru ao face complet proprie sau lăsați-o așa cum este și impresionați-vă prietenii. În orice caz, ați făcut un pas important în lumea dezvoltării mobile non-Microsoft utilizând instrumentele Microsoft. Asta e destul de răcoros în sine dacă mă întrebi.
Data viitoare vom aborda lumea dezvoltării iOS utilizând Xamarin.iOS, care este un proces foarte asemănător, cu doar câteva diferențe. Excitat? Stiu ca sunt. Până la data viitoare și codare fericită.
Dacă doriți să aflați mai multe despre Xamarin, verificați cursul pe care l-ați construit Aplicații multi-platformă cu C # în Xamarin.
În curs, veți învăța cum să creați o aplicație cross-platformă dintr-o bază de cod unică, care va funcționa pe trei platforme diferite: iOS, Android și Windows Phone 8. Credeți că nu se poate face? În doar puțin timp o veți face singur. Sa trecem la treaba.
Puteți să o luați imediat cu un complet gratuit Studiu de 14 zile al unui abonament Tuts +. Aruncati o privire la optiunile noastre de abonament pentru a incepe sau, daca sunteti interesat doar de acest curs, o puteti cumpara individual pentru 15 $! Iată o previzualizare pentru a începe: