În Studii de caz

Studiu de caz: 7Out – proces de dezvoltare

7out

7Out este o aplicație de iPhone lansată pe AppStore la sfârșitul lunii martie, care face ca organizarea unei ieșiri spontane în oraș, cu prietenii, să fie simplă și distractivă. În acest articol vom detalia pașii pe care echipa i-a parcurs în procesul de dezvoltare.

Elaborarea conceptului

Ideea pentru această aplicație a venit mai mult din dorința de a avea un proiect de weekend ușor de implementat, care să ajute echipa să învețe lucruri noi de-a lungul întregului proces.

După câteva ședințe de brainstorming, s-au decis asupra unui concept care presupunea interacțiunea socială și conținea elemente de gamification: o aplicație care permitea utilizatorului să-și provoace prietenii să iasă în oraș, să câștige badge-uri la diverse milestone-uri, pe baza cărora să se facă un clasament cu toți prietenii care folosesc aplicația

Discutând cu mai multe persoane despre această idee, au ajuns la concluzia că, în loc să facă ceva just for fun, ar putea elabora și o componentă utilă pentru această aplicație. Lumea a fost întrebată despre modul în care organizează ieșiri spontane cu prietenii (fie că e vorba de o cafea, mersul la cinema sau o seară în oraș) și astfel s-a ajuns la concluzia că există loc de îmbunătățiri în tot procesul.

Deși Facebook oferă posibilitatea de a crea evenimente, puțină lume folosește acest feature pentru evenimente mici. În schimb, majoritatea persoanelor chestionate foloseau WhatsApp, mesajele clasice sau telefonul, pentru a stabili ieșirile în oraș cu prietenii.

Etapele parcurse în implementare

Odată decisă tema pe care au dorit să o rezolve, și anume o aplicație care să faciliteze organizarea unor astfel de evenimente, cei de la 7Out s-au gândit la ce anume ar trebui să conțină MVP-ul (Minimum Viable Product) lor. Definirea unui MVP e extrem de importantă, deoarece acest lucru permite concentrarea asupra lucrurilor esențiale în prima versiune a aplicației.

MVP-ul 7Out conținea următoarele funcționalități:

  • înregistrarea/autentificarea utilizatorilor;
  • crearea unui eveniment nou:
    • alegerea unui tip de eveniment/nume;
    • selectarea datei și a perioadei (ora exactă putând fi aleasă ulterior);
    • selectarea prietenilor invitați.
  • modificarea unui eveniment existent (alegerea orei și a locației);
  • vizualizarea tuturor evenimentelor create și a evenimentelor la care utilizatorul e invitat;
  • vizualizarea evenimentelor din trecut;
  • implementarea de push notifications pentru diverse situații (Ex. în momentul în care utilizatorul este invitat la un eveniment, atunci când se modifică detalii ale evenimentului etc.);
  • landing page pentru aplicație.

Limbaje de programare folosite

Aplicația de iPhone a fost scrisă în cod nativ, folosind Objective C și iOS SDK Framework. Pe lângă aplicația propriu-zisă, echipa a avut nevoie de un API care să stocheze evenimentele create, respectiv să se ocupe de notificarea utilizatorilor (push notifications și emailuri) în diverse situații.

Technology stack-ul pe care s-a mers pe partea de API:

  • Python + Flask – API development;
  • RabbitMQ – Job Queue;
  • MySQL
  • Celery – Background Tasks’.

Provocări întâlnite. Soluții identificate

Colectarea de user feedback

Deși am definit MVP-ul ceva mai sus, acest proces a fost una dintre primele provocări întâlnite. Au existat multe idei, dar era foarte important ca echipa să se concentreze pe lucrurile importante pentru lansare. Pe de altă parte, se dorea un mecanism care să colecteze feedback legat de funcționalitățile pe care 7Out le va dezvolta în versiunile următoare.

Două dintre funcționalitățile care se doresc implementate pe viitor sunt chat-ul și voting poll-urile. Pentru a vedea dacă acestea prezintă interes pentru utilizatori, s-a integrat în interfață câte un buton pentru aceste aspecte. La apăsarea butonului, utilizatorul va vedea un ecran în care se menționează că feature-ul respectiv e under development; toate tap-urile pe butoanele respective sunt contorizate, iar acest lucru permite vizualizarea celor mai relevante features pentru utilizatori.

7out2

Autentificarea

Deoarece vorbim despre o aplicație socială, integrarea login-ului cu Facebook a fost considerată ca fiind cea mai potrivită. Pe lângă faptul că utilizatorul nu mai era nevoit să-și creeze un nou cont cu care să poată folosi aplicația, acest lucru a permis accesul la lista lui de prieteni din Facebook.

În versiunile următoare, se va avea în vedere integrarea autentificării utilizatorilor prin username și parolă, respectiv integrarea autentificării prin intermediul altor rețele sociale (de ex. Twitter sau Google+).

Trimiterea unei invitații la un eveniment

Poate cea mai mare provocare tehnică întâlnită pe parcursul dezvoltării a fost modul în care se realizează efectiv trimiterea unei invitații la evenimentul nou creat.

Desigur, într-o variantă ideală, acest lucru s-ar realiza prin intermediul mail-ului; problema este că, deși Facebook poate să ofere lista de prieteni ai unui utilizator, nu oferă și adresele de email ale acestora (lucru firesc de altfel, în ideea de a combate aplicații care spamează utilizatorii).

Prima variantă care a fost luată în considerare a fost să se permită doar invitarea oamenilor care au folosit cel puțin o dată aplicația. Asta deoarece existau adresele de email ale acestor utilizatori. Problema cu această abordare a fost că s-ar fi creat astfel un sistem închis, care putea fi folosit doar de oamenii care dețineau un iPhone și aveau cont în aplicație. Pe lângă asta, se pierdea și componenta viralității, factor extrem de important în creșterea bazei de date cu utilizatori.

S-au încercat mai multe abordări ale problemei (până la punctul în care utilizatorul trebuia să introducă manual adresele de e-mail ale celor invitați), dar experiența de utilizare urma să devină din ce în ce mai complicată.

În cele din urmă, s-a mers pe o variantă care face diferențierea între prietenii invitați la eveniment după cum urmează:

  • prietenii care au folosit în prealabil 7Out – primesc email cu noul eveniment cât și push notification pe telefon;
  • prietenii care nu au folosit până acum aplicația – primesc un mesaj pe Facebook (prin intermediul protocolului XMPP) de la inițiatorul evenimentului care conține un link (optimizat și pentru mobil) la care se pot vedea toare detaliile și utilizatorul poate accepta/refuza participarea la eveniment.

În acest fel, s-a ajuns la un compromis, fără a renunța la componenta virală. De asemenea, această abordare permite și invitarea utilizatorilor din afara sferei iOS.

Crearea interfeței grafice și a interacțiunii

Cea mai mare provocare, din punct de vedere vizual, a fost crearea unei interfețe simple, intuitive, dar în același timp atractive.

Echipa a mers pe un design flat, în care a delimitat cele 7 tipuri de evenimente prin cromatică, folosind o culoare specifică pentru fiecare. Elementele de interfață au fost create în Adobe Photoshop, iar icoanele au fost realizate cu ajutorul Adobe Illustrator, păstrând același stil flat.

7out3

S-a ales astfel să se simplifice pe cât posibil procesul de creare a unei invitații, considerându-se că aceasta este acțiunea principală pe care ar trebui să se concentreze. Procesul a fost gândit sub forma unui wizard compus din 4 pași, ultimul fiind doar un sumar al evenimentului ce urmează să fie creat.

Un element inedit din perspectiva designului sunt controalele de selecție a datei și a timpului. Controlul de selecție a datei a fost conceput astfel încât să se pună accentul pe datele din proximitatea zilei curente. Deoarece în momentul stabilirii unui eveniment s-ar putea ca ora exactă să nu fie știută, selecția timpului a fost făcută opțională, utilizatorul având doar de ales perioada zilei.

7out4
7out5

Un alt lucru pe care s-a pus accent a fost evitarea ecranelor goale (de exemplu, în cazul situației în care nu există niciun eveniment definit) și oferirea unui call to action și a unui buton care să sugereze utilizatorului care ar fi următorul pas.

Concluzii

Dezvoltarea unei aplicații este un proces continuu și nu se termină odată cu lansarea pe AppStore sau alt marketplace. Din momentul lansării, echipa 7Out a făcut două update-uri care rezolvă unele probleme raportate și adaugă mici funcționalități noi.

Se încearcă în permanență urmărirea tendințelor de utilizare a aplicației și îmbunătățirea aspectelor importante. În acest sens, pe viitor, 7Out vrea să adauge posibilitatea de a face A/B testing pe noile functionalități pe care le vor implementa, dar despre asta vom vorbi probabil într-un articol viitor.