În Cariere

Cum lucrează un Mobile App Developer?

mobile-developer

De aproximativ 6 ani lucrez ca mobile developer. Cariera mea în IT a început cu un internship pe testare, după care am continuat să lucrez ca web developer. Lumea web m-a încântat, însă parcă lipsea ceva. Acel ceva a fost reprezentat de o provocare, mai precis posibilitatea de a dezvolta aplicații pentru platforme mobile, mai întâi pentru Android, apoi și iOS.

Sentimentul unic de a rula codul scris de tine pe un telefon și de a vedea cum o aplicație prinde viață a pus bazele pasiunii mele pentru platformele mobile.

 

Inițial nu existau foarte multe resurse care puteau să te ajute să deslușești tainele Android-ului, însă cu timpul lucrurile au început să devină mai simple și mai ușor de aplicat și înțeles.

 

Cum lucrurile în IT se schimbă foarte des, periodic trebuie să aloci timp pentru a ține pasul cu cele mai recente tehnologii.

 

Însă baza este foarte importantă, așadar principalele competențe de care trebuie să dispui ca mobile app developer sunt următoarele:

• Să stăpânești principiile de programare OOP

• Să cunoști aprofundat unul dintre limbajele: Android: Java, C/C++ | iOS: Objective C, Swift, C/C++

• Să dispui de excelente abilități analitice, dar și de o atitudine orientată spre rezolvarea de probleme

• Să cunoști șabloane de proiectare

• Să deții capacitatea de a lucra cu librării 3rd party (Maps, Firebase, Facebook SDK, Twitter, etc) și REST API-uri (JSON și/sau XML)

• Să știi să lucrezi cu baze de date (SQLite: operații CRUD)

• Să cunoști arhiectura platformelor mobile Android/ iOS

• Să fii capabil să utilizezi clasele și API-urile puse la dispoziție default (Camera, Calendar, Contacts, Bluetooth, Location, Media, Notification, etc)

• Să ai experiență în a utiliza componentele de bază specifice fiecărei platforme – Android: Intent, Activity, Fragment, Service, Broadcast Receiver, Content Provider etc. | iOS: IBOutlets, IBActions, Pointer, ARC etc.

• Să stăpânești partea de realizare interfețe grafice – Android: XML Layouts, Constraint Layout | iOS: Interface Builder, AutoLayout

 

Dacă ești norocosul deținător al competențelor enumerate mai sus și ești dornic să îți construiești o carieră ca mobile app developer trebuie să știi că acest job implică, evident, și responsabilități:

• Pornind de la o specificație și wireframes trebuie să realizezi design-ul și funcționalitatea unei aplicații sau a unei componente din aplicație (depinde de cât de mare este proiectul)

• Să publici aplicația pe market

• Să lucrezi cu source control și versionare (Git, SVN, etc)

• Să testezi funcțional, dar și structural codul scris de tine (testare unitară, testare automată și nu numai)

• Să aduci mereu îmbunătățiri codului scris, dar și să îl menții (fixare de buguri, implementări extra pentru update-urile de versiuni de sistem)

• Să documentezi codul

• Să elaborezi documentația despre funcționalitatea aplicației

• Să ai o bună relație de colaborare cu designer-ul, API developer-ul, product manager-ul și evident cu membrii echipei

• Să respecți standardele de codare

• Să respecți deadline-urile

Workflow-ul realizării unei aplicații mobile cuprinde 5 etape:

1. Concept
2. Design
3. Implementare și testare
4. Release
5. Mentenanță

  1. Concept: Toate aplicațiile încep de la o idee. Această idee este, de obicei, o bază nerafinată a aplicației.

Această idee trebuie detaliată, explorată și validată. Pe baza acesteia se poate realiza un prototip care va sta la baza următoarei etape, și anume design.

Realizarea unui prototip este la rândul său un proces, însă o bună planificare va elimina o mulțime de probleme și modificări pe parcursul dezvoltării aplicației.

Pentru validarea și detalierea conceptului se poate aplica cu succes ”Design Sprints”.

Design sprints este un framework pentru echipe de orice mărime și are ca scop să rezolve și testeze problemele de design și concept în 2-5 zile.

workflow

 

Acest framework presupune existența a 6 etape:

  1. Înțelegere: Care sunt nevoile user-ului, ale business-ului și ce implicări technice există?
  2. Definire: Care este strategia cheie și focusul?
  3. Pivotare: Cum putem explora cât mai multe idei?
  4. Decizie: Selectează cele mai bune idei
  5. Prototip: Crează un artefact care permite userilor să testeze ideile
  6. Validare: Testează ideile cu userii, clienții și experții tehnic

 

  1. Design: această etapă constă în definirea experienței utilizatorului (UX) cu aplicația, adică modul în care va arăta interfața grafică, dar și cum va funcționa. Omul cheie în această etapă este designer-ul grafic și rezultatul se bazează pe concluziile etapei anterioare.

 

  1. Implementare și testare: pe baza conceptului conturat se realizează o estimare în timp și evident și un deadline și un plan de release.

 

În această etapă intervine dezvoltatorul de aplicații mobile care va scrie codul și va implementa interfața grafică a aplicației bazându-se pe design-ul realizat anterior și pe specificațiile scrise. De obicei aceasta este cea mai lungă etapă și necesită cele mai multe resurse.

 

Pentru domeniul IT, ca metodologie de management este foarte des întâlnită abordarea agilă (Agile) Scrum, dar se folosește destul de des și Waterfall.

 

În funcție de metodologia aleasă se realizează și testarea. Pentru Scrum, testarea se realizează pe parcursul fiecărui Sprint, pe când în cazul Waterfall se realizează după ce a fost implementată întreaga aplicație.

 

  1. Release: după ce aplicația a fost implementată și testată, iar rezultatul obținut respectă cerințele și specificațiile stabilite inițial, atunci aplicația poate să fie publicată pentru a fi utilizată.

 

  1. Mentenanță: după ce aplicația a fost publicată pe market pot apărea diferite buguri sau update-uri de sistem sau modificări pe care clientul și le dorește. Toate acestea conturează etapa numită ”mentenanță”.

 

Personal, sunt foarte încântată și mulțumită de jobul pe care îl am, însă evident că nu este totul roz, dar numai așa pot evolua.

 

Atunci când inevitabil apar probleme sau provocări deviza mea este “Orice se poate, trebuie doar să vreau!”. Am învățat că aproape nimic nu funcționează de la prima încercare.

 

Doar pentru că ceea ce fac acum pare să nu meargă, nu înseamnă ca nu va merge niciodată. Înseamnă doar că nu funcționează în felul în care am încercat eu. Întotdeauna văd problemele ca pe niște oportunități așa că depinde doar de mine să obțin “cadoul” pe care fiecare dificultate îl ascunde.

 

Elementele care însă mă ajută să merg mai departe în jobul meu sunt: dorința permanentă de a învăța, de a inventa soluții noi și de a mă reinventa, de a motiva pe cei din jurul meu și de a crește, în sens pozitiv, impactul aplicațiilor dezvoltate de mine asupra companiei în care lucrez.

 

Ceea ce te definește ca individ, în mod natural, te îndrumă și în viața profesională, sunt foarte sigură de acest lucru.

 

În activitatea mea am aflat că algoritmii și noțiunile de programare pot fi învățate, dar și că flerul, încrederea în forţele proprii, perseverenţa, atenţia la detalii și intuiția au un rol foarte important.


magda-miuMagda Miu, Senior Mobile Developer @Roweb

Magda are o experiență de peste 6 ani în dezvoltarea de aplicații Android și iOS. De asemenea, Magda susține comunitățile de programatori, fiind co-organizator GDG Pitești și lider al comunității Women Techmakers Romania.

***

Dacă ești pasionat de programare, ai inițiativă, îți dorești să înveți mereu lucruri noi și vrei să lucrezi într-un mediu flexibil unde ești încurajat să îți folosești potențialul la maxim, echipa Roweb te aşteaptă.