În Inspirație

Procesul de dezvoltare a platformei Android

android-for-wallpaper-8

Platforma Android este cea mai generoasă dintre toate platformele mobile existente, Apple și Microsoft restricționând mediul de dezvoltare la propriile sisteme de operare. Astfel, dezvoltatorii de aplicații pot opta pentru orice fel de sistem de operare: Mac OS, Windows sau Linux indiferent de distribuție, fiindcă pentru fiecare în parte există toate uneltele necesare.

Mediul de dezvoltare

Pentru dezvoltare, este totuși recomandat un mediu bazat pe Unix, în special datorită CLI (command line interface), care este mult mai puternic decât pe Windows. Mac OS X face parte din această categorie. Pentru o variantă mai ieftină este recomandată folosirea Ubuntu, cea mai populară și accesibilă distribuție de Linux la ora actuală.

SDK

SDK sau Software Development Kit de Android vine sub forma unui set de tool-uri de bază al sistemelor de operare pentru fiecare versiune în parte și al unor biblioteci adiționale pentru echipamentele cu capabilități extinse (ecran 3D, dual-screen etc.).

Este important de știut cum versionează Android SDK-ul. Dacă pentru sistemul de operare se folosesc, în general, versiuni majore și minore, cum ar fi 2.3 sau 4.1, la API și SDK se folosește un singur număr ce este incrementat cu fiecare lansare și corespunde unuia sau mai multor versiuni de sistem de operare. Acesta este API Level-ul. În general, acesta este în strânsă legătură cu versiunea de sistem de operare.

Astfel, prima versiune publică a sistemului de operare este 1.5, iar nivelul de API corespunzător este 3. Pentru versiunea 1.6, nivelul este 4 și așa mai departe. Există și situații în care versiunile de OS folosesc același API level, pentru că diferențele la nivel de API nu sunt semificative. Este cazul versiunilor 4.0.3 și 4.0.4, care au același nivel de API: 15. Pentru un dezvoltator de aplicații, nivelul de API este mult mai important decât versiunea de sistem de operare.

SDK-ul este livrat prin intermediul unui program care afișează o listă cu toate versiunile de API și bibliotecile adiționale disponibile. De acolo, se poate alege ceea ce se dorește a fi instalat. Tot acel program este folosit și la update-ul SDK-ului, ori de câte ori este nevoie. În general, un SDK complet poate să ajungă în jur de 4.5 Gb, dar depinde mult de câte nivele de API sunt instalate, fiecare fiind stand-alone.

Unelte de dezvoltare

Pentru mediul de dezvoltare, Google recomandă IDE-ul Eclipse, dar se poate folosi orice alt editor de Java. Desigur, este recomandat să fie folosit un editor care să integreze facilități pentru dezvoltarea pe Android. Eclipse este un IDE robust și cu vechime, apreciat de mulți dezvoltatori și este, asemeni Android, open-source. Totodată, oferă o integrare foarte bună cu platforma, sub formă de perspective dedicate.

Un alt IDE excelent și, din multe puncte de vedere, superior Eclipse este IntelliJ Idea 11. Acesta vine în 2 versiuni: Community și Ultimate. Cu toate că versiunea Community Edition are anumite limitări, aceasta este gratuită și are un suport excelent pentru Android. Mai mult decât atât, motorul de predicție a codului și asistența sunt net superioare și ajută foarte mult.

Acestea sunt câteva din programele necesare pentru a dezvolta o aplicație. Desigur, pentru aplicații mai complexe se recomandă un editor de SQLite, baza de date folosită de Android, un program de editare grafică pentru elementele de user interface.

Testing & profiling

Testarea și evaluarea unei aplicații este o parte importantă în procesul de dezvoltare. Aici, Android oferă mai multe unelte esențiale.

AVD

Emulatorul de Android oferă posibilitatea de a instala aplicațiile într-un telefon virtual. Astfel, dezvoltatorul poate testa aplicația pe diferite configurații. Pentru aceasta, este pus la dispozitie un configurator de Android, Virtual Devices, cum mai este denumit emulatorul. Dezvoltatorul poate crea oricâte astfel de dispozitive și poate configura un număr foarte mare de parametri: dimensiunea și rezoluția ecranului, CPU, RAM, memorie SD etc. Există și posibilitatea simulării de latență, pentru aplicațiile ce folosesc transferul de date.

Emulatorul însă nu este răspunsul la toate întrebările și, în special pentru aplicații care folosesc telefonia sau locația prin GPS, este bine să se folosească cel puțin un telefon fizic pentru testare.

Android Debug Bridge, LogCat & DDMS

Dacă emulatorul oferă o imagine a produsului final, aceste trei  unelte vă pot oferi o privire în măruntaiele aplicației.

1. Android Debug Bridge sau pe scurt, ADB, este un utilitar de command line care oferă posibilități extinse de interactiune cu telefonul fizic, legat prin USB la calculator. Prin intermediul lui, se pot instala sau dezinstala aplicații sau se poate chiar intra în shell-ul telefonului (dacă vă amintiți, la începutul articolului spuneam că telefoanele Android rulează pe sistemul de operare Unix).

2. LogCat este mai mult o facilitate a ADB și permite afișarea în timp real, în linia de comandă a log-ului telefonului, precum și posibilități de filtrare după etichete sau după nivele: debug, warning, error etc. Un avantaj al LogCat este faptul că aici vor fi afișate toate excepțiile din sistem. Astfel, dacă apăsați pe un buton și aplicația vă afișează dialogul de Force Close, mai mult ca sigur în LogCat va fi afișat motivul.

3. Dalvik Debug Monitor Server sau pe scurt, DDMS, oferă, după cum se poate bănui și din nume, o vedere asupra mașinii virtuale Dalvik, în care rulează aplicațiile Android. Aici puteți vedea în detaliu procesele pornite în sistem, serviciile și thread-urile care rulează în fundal, heap și alocări și multe altele. Pentru că DDMS include și o consolă LogCat, putem spune că este un veritabil Swiss Army Knife pentru orice dezvoltator.

Publicare

Publicarea aplicației este ultimul pas din procesul de dezvoltare. În comparație cu App Store, Google Play este gratuit și nu presupune un proces de review al aplicației. Este de datoria dezvoltatorului să testeze aplicația înainte de lansare. Astfel, aceasta devine disponibilă în scurt timp, comparativ cu aplicațiile iOS.

Conceptul de bază pe care se bazează Google este acela că piața și utilizatorii vor tria aplicațiile bune de cele deficitare. Dacă o aplicație nu este bine construită, ea va primi recenzii negative, iar numărul de instalări va fi mic. Pentru a întări acest aspect, Google face publice, pe lângă ratingul și numărul de descărcări ale unei aplicatii, statistica, lucru care pe iOS nu este disponibil decât dezvoltatorilor.

Taxa pentru un cont de developer este de 25 USD/cont, iar split-ul pentru vânzarea unei aplicații plătite este clasicul 30/70 – 30% reținut de Google pentru costurile operaționale și 70% pentru dezvoltator.

Procesul de publicare este foarte simplu și face parte dintr-un flow online bine pus la punct. Printre lucrurile care trebuie pregătite pentru publicare fac parte și câteva capturi de ecran sugestive și un icon reprezentativ.

Update-urile pentru aplicațiile deja aflate în producție se livrează pe un proces asemănător și sunt disponibile într-un timp foarte scurt utilizatorilor.

De ce să dezvolți pentru Android?

După cum se poate vedea, platforma Android are multe beneficii peste iOS, dar și unele slăbiciuni. Pentru dezvoltatori, un prim avantaj este limbajul Java, care este foarte accesibil, datorită istoriei îndelungate și a multitudinii de unelte de dezvoltare, care ajută în crearea unei proces end-to-end foarte bine pus la punct.

În plus, platforma este open-source, astfel încât cei care doresc să creeze ROM-uri custom o pot face fără probleme. Tot pentru Java sunt prezente și foarte multe biblioteci care facilitează o serie de tehnici moderne de dezvoltare, cum ar fi Inversion of Control sau Annotations.

Costurile de dezvoltare sunt și ele mai mici. O aplicație Android poate fi dezvoltată pe un calculator cu sistem de operare Ubuntu, care este gratuit, reducând costurile licențelor și a hardware-ului la minimum. Un alt aspect pozitiv este lipsa rigorii la publicarea unei aplicații pe Google Play, făcând ca ea să fie mult mai repede accesibilă și ca update-urile să fie livrare în timp mai scurt.

Totuși, una dintre problemele cu care se confruntă platforma este fragmentarea, având în vedere mai ales ritmul accelerat de dezvoltare. Multitudinea de producători de terminale mobile care implementează versiuni customizate de Android, cum ar fi Samsung sau HTC cu SenseUI, contribuie la scaderea ratei de adopție, destul de mică în comparație cu iOS. Cu toate că doar două versiuni sunt dominante pe piață (2.3 și 4.0), există între ele diferențe destul de mari, în special la implementarea user experience, versiunea 4 aducând multe facilitați și componente noi.

Google oferă o documentație generoasă și foarte bine pusă la punct, iar comunitatea online de dezvoltatori este foarte activă, cu multe tutoriale și exemple disponibile gratuit.

Sursă imagine