Acest tutorial vă va arăta cum să proiectați o aplicație cross-platform care va maximiza reutilizarea codului și va oferi interacțiune nativă de înaltă calitate pe toate platformele mobile majore: iOS, Android și Windows Phone.
Abordarea utilizată în această lucrare se aplică de obicei celor două tipuri: aplicații productive și jocuri. Cu toate acestea, accentul principal se pune pe programe și utilități productive (aplicații non-jocuri).Expresia "scrise o dată, funcționează peste tot" este adesea folosită pentru a extrage virtuțile unei singure baze de cod, care funcționează fără modificări pe diferite platforme. Deși reutilizarea codului are, fără îndoială, un avantaj, această abordare conduce adesea la aplicații care au un set comun comun de funcții de numitor comun și o vedere generală a interfeței utilizator a "celui mai mic numitor comun" care nu este destul de organic se încadrează în oricare dintre platformele țintă.
Xamarin nu este doar o platformă pe principiul "timpului scris, funcționează peste tot", deoarece una dintre punctele sale forte este capacitatea de a implementa propriile interfețe de utilizator specifice pentru fiecare platformă. Cu toate acestea, cu un design atent, este încă posibilă partajarea majorității codului fără interfața cu utilizatorul și obținerea celor mai bune din ambele lumi: scrieți codul de stocare a datelor și logica de afaceri odată și prezentați interfața utilizator nativă pe fiecare platformă. Acest document discută o abordare arhitecturală comună pentru atingerea acestui obiectiv.
Iată un rezumat al punctelor cheie pentru crearea aplicațiilor cross-platform Xamarin:
- Utilizarea C # - Scrieți aplicațiile în C #. Codul existent scris în C # este folosit în mod explicit pe Windows Phone. și cu ajutorul lui Xamarin poate fi ușor ported la Android și iOS.
- Utilizarea modelului de proiectare MVC - Dezvoltați interfața utilizator a aplicației dvs. utilizând șablonul Model-View-Controller. Arhitectura aplicației dvs. folosește abordarea MVC, unde există o distincție clară între "model" și restul. Determinați ce părți ale aplicației dvs. vor utiliza elementele interfeței utilizator ale fiecărei platforme (IOS, Android, Windows Phone și Windows 8 / RT) și utilizați-o ca un ghid pentru împărțirea aplicației în două componente: "Core" și "Interfața de utilizator".
- Construirea UI nativ - Fiecare aplicație specifică OS oferă diferite straturi ale interfeței cu utilizatorul (implementată în C # utilizând instrumentele de proiectare UI încorporate):
- Pentru iOS, atunci când creați o aplicație nativă, utilizați API-ul MonoTouch.UIKit, dacă este necesar, utilizând proiectantul iOS Xamarin, pentru crearea vizuală a interfeței cu utilizatorul.
- Pentru Android, atunci când creați o aplicație nativă, se utilizează Android.Views, utilizând designerul UI Xamarin.
- Pentru Windows Phone, nivelurile de vizualizare XAML / Silverlight sunt utilizate utilizând interfața cu utilizatorul.
- Pentru Windows 8, se utilizează Metro API.
Numărul de cod reutilizabil va depinde în mare măsură de numărul de cod stocat în kernelul partajat și de cât de mult cod este pentru o anumită interfață de utilizator. Codul principal este tot ceea ce nu interacționează direct cu utilizatorul, ci oferă un serviciu pentru părți ale aplicației care vor colecta și afișa aceste informații.
Pentru a crește numărul de cod reutilizabil, puteți utiliza componente cross-platform care oferă servicii comune pe toate platformele, cum ar fi:
- SQLite-NET pentru stocarea datelor locale SQL,
- Xamarin Plugin-uri pentru a accesa capabilitățile unui anumit dispozitiv, inclusiv camera, contacte și geolocație,
- Folosind capacitățile platformei de a lucra cu rețeaua, serviciile web, I / O și multe altele.
Unele dintre aceste componente sunt puse în aplicare în studiul aplicației de instruire Tasky.
Separarea bibliotecii principale pentru reutilizarea codului
Urmând principiul separării funcționalității între straturile arhitecturii aplicației și apoi mutarea funcționalității core corelate cu platforma în biblioteca de kernel "reutilizabilă", puteți maximiza schimbul dintre platformele de cod, după cum se arată în figura de mai jos:
Studiu de caz
Există un exemplu de instruire care însoțește acest document - Tasky Pro. În exemplul real de aplicare, se ia în considerare implementarea conceptului prezentat în acest document. Exemplul este open source și este disponibil pe github.