Rares Serban, Sr. Mobile Developer at Soft to you - cross-platform development.
1 of 14
Download to read offline
More Related Content
Rares Serban, Sr. Mobile Developer at Soft to you - cross-platform development
1. Criterii de decizie
Cross Platform
Mobile Application Development
Rares Serban
rares.serban@soft-to-you.com
2. Ce este Cross Platform?
Multi-platform sau platform independent
Capabilitatea software-ului sau
hardware-ului de a rula identic pe mai
multe platforme
Cross-platform development
Dezvoltarea de produse software sau servicii
pentru mai multe platforme
Write once, run everywhere
5. Criterii
Nr. platforme
Functionalitate
Ergonomie/UX
Costuri & Timp
Control asupra actualizarii aplicatiei
Resurse disponibile
6. Comparatii
0 1 2 3 4 5 6
Functionalitate
Ergonomie/UX
Costuri
Timp
Control Update
Resurse disp.
Xamarin
Appcelerator
PhoneGap
Native
importanta
7. Cross Platform cu Xamarin
Mono = .NET cross-platform
Xamarin companie orientata spre mobile
development
Xamarin Studio
Parteneriat
Microsoft
Feb. 2016 Microsoft
cumpara Xamarin
11. Aplicatii care folosesc Xamarin
Slack
EZOrder
Aplicatie care permite agentilor de vanzari sa preia
comenzile pe care le fac live, in timp ce discuta cu
clientii si sa le transmita direct la server
Flota de device-uri heterogena tablete iPad,
Surface1 pana la Surface4, notebook-uri Windows,
desktopuri Windows
Aplicatie internationalizata (engleza, germana,
franceza, italiana)
12. EZOrder Cross Platform
Costuri reduse dezvoltare + mentenanta
Interfata usor adaptabila la iOS si Windows UI
Developeri ce stiu C# si au experienta cu iOS si
Windows
Timp de dezvoltare 3 luni
UI iOS UI Windows
MVVM Cross
Core/Business Logic
WSCalls SQLite
#3: Serviciu Cross Platform.
O aplicatie poate rula pe orice platforma sau mai bine spus pe cat mai multe platforme. Ideal pentru un dezvoltator de aplicatii, este de a scrie un cod de baza si de a-l rula pe cat mai multe platforme.
Cand vbim de cross platform mobile, vorbim de o aplicatie ce ruleaza pe cat mai multe platforme mobile. In speta, cele 3 mari platforme ios, android, windows.
#4: Exista cele doua grupuri ce sustin dezvoltarea aplicatiilor native si celor care sustin dezvoltarea aplicatiilor cross platform.
Expunerea noastra va va da argumente in favoarea tehnologiilor cross platform.
#5: Exista 3 grupuri de tehnologii de dezvoltare a aplicatiilor mobile.
La aplicatiile native avem ergonomie si performata si un acces nelimitat la functiile hardware. In schimb costurile si timpul de dezvoltare sunt mari. Aplicatiile hibride folosesc tehnologii web pentru a raspunde la aceste probleme in detrimentul performatei si ergonomiei.
Urmeaza sa va prezentam Xamarin care isi propune sa fie o alternativa la aplicatiile native si aplicatiile web.
#6: Din experienta noastra, criteriile de luat in calcul pentru alegerea unei tehnologii cross-platform sunt:
Functionalitate ce se poate face cu aplicatia
Ergonomie/UX cat de usor se poate face ceva cu aplicatia
Costuri cat costa sa faci aplicatia
Timp cat timp ai la dispozitie pentru dezvotarea aplicatiei
Control asupra actualizarii aplicatiei cat de usor poti sa adaugi continut si noi functionalitati aplicatiei
In plus de aceste criterii:
Resurse disponibile ce tehnologii cunosc cei din echipa de dezvoltare
#7: Putem vedea o comparatie intre cele mai populare solutii de development CrossPlatform + Nativ. Daca privilegiem functionalitatea si ergonomia si in acelasi timp nu ne intereseaza costurile si timpul atunci alegerea pt nativ. Daca in schimb vrem sa pastram functionalitatea si ergonomia si sa reducem din costuri si timp atunci putem alege Xamarin.
#8: Xamarin se bazeaza pe Mono care este un .NET pentru cross-platform. A fost infiintata ca o companie orientata spre mobile development. Propune unelte de dezvoltare avansata IDE Xamarin Studio, Visual Studio. Xamarin are un parteneriat cu Microsoft care la inceputul acestui an i-a si cumparat.
Arhitectura tipica a unei aplicatii Xamarin este bazata pe un core scris in C# si care ruleaza cu runtime-ul .NET. Poate contine apeluri la ws, logical corebusiness, gestinea bazei de date SQLite in C#. Partea de UI foloseste wrappere in C# pentru fiecare din SDK-urle native: iOS, Android, Windows C# .
#9: Xamarin incurajeaza utilizarea patern-ului MVVM. Spre deosebire de Model View Cotroller unde Controller-ul gestioneaza legatura in detaliu dintre View si Model, la MVVM ViewModel-ul defineste legaturile automatizate dintre Model si View. Orice modificare a modelului este comunicata View-ului si orice eveniment al viewului este comunicat modelului.
-Exista biblioteci pentru implementarea paternului MVVM in C# pentru iOS si Android.
#10: Tinand cont de arhitectura pe care o are Xamarinul , performantele lui sunt apropiate de cele ale nativului. Evident nu pot fi identice deoarece foloseste un runtime .NET. Insa spre deosebire de aplicatiile hibride, aplicatiile in Xamarin pornesc mai repede, consuma mai putine resurse si ruleaza mai rapid
#11: Totusi pretul care trebuie platit pentru asta: are o mai putina reutilizare a codului si o aplicatie mai mare
#12: Multa lume utilizeza Slack dar putini stiu ca e realizat in Xamarin.
Slack facut in Xamarin, disponibilitate rapida pe toate platformele
La S2Y am dezvoltat o aplicatie care permite..
#13: Am ales sa folosim Xamarin pentru EZOrder deoarece am urmarit sa reducem costurile de dezvoltare si de mentenanta fara a sacrifica performantele si ergonomia. De asemenea aveam developeri care aveau exprienta cu C# si SDK iOS si Windows.
Arhitectura aplicatiei este alcatuia din 2 parti de UI care sunt platform specific dar scrise in C# si care se bazeaza pe framework-ul MVVM Cross. Partea de logica de apeluri si gestiunea bazei de date este mutualizata.
#14: Vizual se observa ca este o aplicatie relativ complexa deoarece utilizeaza toate elemente vizuale native (butoane, liste derulante, ).