ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 141
Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 51
Abonament PDF

Dezvoltarea aplicațiilor mobile multiplatformă cu Xamarin și Microsoft Azure

Ciprian Jichici
General Manager @ Genisoft



PROGRAMARE

Succesul extraordinar și ratele de adopție spectaculoase ale platformelor mobile moderne sunt extrem de strâns legate de numărul și calitatea aplicațiilor mobile care rulează pe aceste platforme. În condițiile competitive foarte dure ale app store-urilor, flexibilitatea și viteza de implementare au devenit criterii de selecție dure în lumea dezvoltatorilor de aplicații mobile. O consecință directă a acestei stări de fapt este dezvoltarea accelerată și spectaculoasă a tehnologiilor ce permit utilizarea unei singure baze de cod pentru obținerea cvasi-simultană a versiunilor unei aplicații mobile pe mai multe platforme, cunoscute și sub numele de tehnologii multiplatformă.

Pe lângă o asemenea tehnologie de dezvoltare multiplatformă, premisele eficienței în dezvoltarea de aplicații mobile sunt asigurate de alte două ingrediente critice: o platformă pentru serviciile de back-end (cele care deservesc efectiv aplicația mobilă client) și un proces de dezvoltare complet și coerent (așa numitul Application Lifecycle Management sau ALM). Xamarin este una dintre tehnologiile multiplatformă care au cunoscut în ultimii ani un succes deosebit. Împreună cu Microsoft Azure (care asigură suportul atât pentru servicii de back-end cât și pentru ALM), Xamarin reprezintă o variantă extrem de atractivă pentru dezvoltatorii de aplicații iOS, Android și Windows care preferă varianta utilizării unei singure baze de cod pentru compilarea de aplicații mobile native pe aceste platforme.

În esență, Xamarin este o tehnologie open source care permite compilarea unei baze de cod C# comune în aplicații native iOS, Android sau Windows. Avantajele utilizării aceluiași mediu de dezvoltare (IDE - Integrated Development Environment), aceluiași limbaj de programare (C#) și aceluiași set de API-uri (Application Programming Interfaces) pentru toate platformele, atrag un număr din ce în ce mai mare de dezvoltatori. Prin metodele de interfațare cu sistemele de operare native pe care le asigură, Xamarin permite dezvoltatorilor să obțină cu C# practic aceleași rezultate pe care le-ar obține separat cu Objective-C, Swift sau Java. Ceea ce este important de subliniat în acest context este caracterul nativ al aplicațiilor rezultate, un element important de diferențiere al Xamarin față de alte tehnologii multiplatformă (cum ar fi de exemplu cele bazate pe HTML5 și JavaScript). Diagrama de mai jos prezintă grafic această abordare:

Caracterul nativ al aplicațiilor mobile obținute cu Xamarin este definit de trei elemente importante:

Interfețele utilizator ale aplicațiilor Xamarin sunt construite cu controale native, standard pentru fiecare platformă. Dincolo de faptul că aplicațiile au un aspect familiar utilizatorilor fiecărei platforme mobile în parte, ele se și comportă în moduri cu care respectivii utilizatori sunt obișnuiți. Din punctul de vedere al accesului la API-urile expuse de sistemele de operare mobile, aplicațiile Xamarin au acces la toată gama disponibilă, fără restricții. Acest aspect este foarte important mai ales în cazul aplicațiilor care au nevoie de accesarea unor funcționalități specifice unei anumite platforme (cum ar fi de exemplu fragmente în Android sau iBeacon-uri în iOS/Android). Procesul de compilare al codului C# generează cod nativ pentru fiecare platformă, element ce asigură un nivel de performanță care pur și simplu nu poate fi obținut cu soluții ce interpretează cod la momentul execuției. Relevantă în acest sens este și capacitatea aplicațiilor native rezultate de a beneficia de tehnicile de accelerare hardware specifice fiecărei platforme.

Utilizarea de către Xamarin a limbajului C# pentru dezvoltarea codului sursă care stă la baza aplicațiilor mobile rezultate aduce câteva avantaje destul de importante. Posibilitatea de utilizare a Visual Studio ca IDE pentru procesul de dezvoltare este probabil unul dintre cele mai mari câștiguri pentru dezvoltatorii care folosesc Xamarin. Acest lucru este cu atât mai valoros cu cât asigură premisele necesare unei integrări facile într-un proces de ALM complet. În plus, nu sunt deloc de neglijat avantajele intrinseci ale limbajului C#, dintre care menționăm:

Așa cum menționat la începutul acestui articol, tehnologia multiplatformă (oricare ar fi ea în general și Xamarin în particular) reprezintă doar una dintre cele trei componente necesare pentru dezvoltarea cu succes de aplicații mobile multiplatformă. Orice aplicație mobilă ce atinge un minim de complexitate are nevoie de un set de servicii de back-end care să îi asigure suportul pentru funcționalitățile oferite utilizatorilor. În general, vom regăsi cel puțin una (de regulă mai multe sau chiar toate) dintre categoriile următoare:

Pe lângă aceste aspecte, regăsim la nivelul back-end-urilor de aplicații mobile cerințe stringente în domenii cum ar fi:

Platforma de cloud computing Microsoft Azure are capacitatea să asigure suportul necesar atât pentru cerințele de tip funcțional (cele din prima categorie menționată mai sus) cât și pentru cele de tip non-funcțional sau operațional (cele din a doua categorie menționată mai sus). Fie că este vorba de Azure Active Directory (pentru gestiunea identității) de Azure App Services (pentru găzduirea serviciilor), de Azure Mobile Services (pentru funcționalități specifice cum ar fi push notifications) sau de Azure SQL Database (pentru stocarea de date), Microsoft Azure pune la dispoziția dezvoltatorilor o gamă extrem de variată de servicii pe care aceștia le pot utiliza în construirea de back-end-uri performante pentru aplicațiile lor mobile. În plus, cerințe cum ar fi securitate, disponibilitate, scalabilitate și elasticitate sunt aspecte native în cazul unei platforme de cloud computing cum este Microsoft Azure.

Dezvoltarea eficientă a celor două componente majore (aplicația client și serviciul de back-end) necesită o abordare completă și consistentă de ALM (Application Lifecycle Management) care să asigure integrarea etapelor fundamentale (dezvoltare de cod, testare, release și operare), suportul necesar pentru toate aspectele legate de colaborare și comunicare în cadrul echipei și nu în ultimul rând, posibilitatea de urmărire a evoluției de ansamblu a întregului proces. În cazul aplicațiilor mobile, implementarea unui proces eficient de ALM prezintă câteva provocări specifice, cum ar fi spre exemplu cerințe de build cu specific de platformă (nevoia conexiunii cu o instanță de Mac OS pentru aplicații iOS) sau dificultățile unei testări eficiente dată fiind varietatea din ce în ce mai mare de versiuni de sisteme de operare și formate fizice de dispozitive mobile.

Xamarin și Microsoft Azure oferă un set de servicii care asigură suport pentru adresarea acestor aspecte, cum ar fi:

În mod practic, Xamarin și Microsoft Azure oferă un set complet de tehnologii și servicii pe care dezvoltatorii de aplicații mobile multiplatformă le pot utiliza în vederea eficientizării proceselor de dezvoltare, publicare și operare a soluțiilor pe care le oferă. Diminuarea semnificativă a efortului de prezență simultană pe mai multe platforme și disponibilitatea unor funcționalități care permit asamblarea rapidă și eficientă de servicii de back-end permit furnizorilor de aplicații mobile să se concentreze mult mai mult pe creșterea gradului de satisfacție al utilizatorilor finali cu consecințe directe și semnificative în succesul lor pe piață.

Ciprian Jichici este General Manager al Genisoft, Microsoft Regional Director pentru România și Microsoft Most Valuable Profesional pentru Microsoft Azure. Împreună cu echipa de aplicații mobile de la Genisoft, Ciprian a fost unul dintre pionierii platformei Xamarin în România, dezvoltând unele dintre primele aplicații mobile comerciale din țară bazate pe această platformă.

Conferință

NUMĂRUL 141 - Business Anlysis (BA)

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • Yardi
  • P3 group
  • Ing Hubs
  • Colors in projects

INTERVIURI VIDEO