Što iOS i Android timovi u Photomathu rade kako bi odlični rezultati aplikacije bili konstanta, a ne rezultat sretnog spleta okolnosti?
Foto: Mario Poje

Što iOS i Android timovi u Photomathu rade kako bi odlični rezultati aplikacije bili konstanta, a ne rezultat sretnog spleta okolnosti?

Kako je biti dijelom tima koji, iako djeluje u maloj državi poput Hrvatske, stoji iza globalno uspješne aplikacije? Odgovore na ta pitanja (i još ponešto) ponudili su nam Tech Leadovi za operativne sustave Android i iOS u Photomathu.

Domagoj Boroš, danas Photomathov iOS Tech Lead, prije šest godina bio je student koji nije ni slutio u što će se upustiti, prisjeća se:

Naginjao sam prema iOS-u i Appleovim sustavima još od srednje škole. No, nije mi toliko bila bitna platforma koliko je li projekt zanimljiv, kao i hoću li moći učiti načela i temelje koje ću moći primijeniti i na drugim platformama te prijeći na druge tehnologije.

U Photomathu je počeo raditi kao student 3. godine zagrebačkog Fakulteta elektrotehnike i računarstva, smjer računalne znanosti.

Htio sam raditi na projektu koji ima konkretnu primjenu u stvarnome svijetu. Photomath je bio među rijetkima koji su se bavili nečim što je bilo intrigantno studentima mog smjera. Bilo mi je važno da učim od najboljih inženjera i radim na izuzetno zanimljivom projektu. Odluka je bila neupitna.

Svaki tehnološki napredak unutar aplikacije znači i kompleksniji sustav za mobilni uređaj

U vrijeme kada se Domagoj zaposlio u Photomathu najjači je Appleov pametni telefon bio iPhone 6, a prosječni su korisnici najčešće koristili iPhone 4. Foto: Mario Poje

U vrijeme kada se Domagoj zaposlio u Photomathu uređaji su bili slabiji nego danas, važnije je bilo optimizirati manji skup funkcionalnosti kako bi radile i ponudile dobro korisničko iskustvo.

Koristili smo video skeniranje tijekom kojeg su se na svaki frame iz video sekvence na samom uređaju prepoznavali znakovi te se procedura rješavanja raspisivala u pojedinačne korake da bi se na kraju ponudilo konačno rješenje. Optimizacija algoritama kako bi radili u stvarnom vremenu na samim uređajima bila je tada najveći izazov.

S vremenom i napretkom tehnologije, izazovi su se promijenili. Tehnologija koja je omogućila toliko toga je i zahtjevnija. Nemoguće je danas imati kompletan sustav na jednom uređaju, unatoč tome što su mobilni uređaji daleko jači, objašnjava Domagoj:

Nisu upitni sami algoritmi već raznolikost rješenja i sustava pomoću kojih se ta rješenja generiraju, a koje Photomath nudi. Zbog toga se naši sustavi sele u oblak. A zato je danas najveći izazov stvoriti najbolji mogući UX kroz optimiziranu mrežnu komunikaciju.

Uz to, projekt je u smislu codebasea puno veći pa je bitno kreirati i održavati standard dobrih programerskih praksi koji omogućuju skaliranje istog. Također, tim je narastao pa je rad puno dinamičniji. Potrebno je više truda oko rada u većem timu.

Androidaš kojeg je razvoj vlastite platforme doveo do Photomatha

S druge strane mobilnih operativnih sustava u Photomathu stoji Petar Alilović, njihov senior inženjer i Android Tech Lead. U IT-ju je počeo raditi kao student FER-a, da bi nakon završenog studija pokrenuo vlastiti startup TalkBook, platformu za poslovnu inteligenciju namijenjenu predavačima i publici koja ih prati uživo. No, to je palo u drugi plan nakon što se zaposlio u Photomathu.

Razvojem za Android, Petar se počeo baviti još dok je bilo popularno izdanje Jelly Bean. Foto: Mario Poje

Kad se priključio Photomathu, tvrtka je već bila globalno poznata i imala oko milijun korisnika dnevno. Iako su timovi bili manji i nije ih bilo toliko koliko ih je danas, ipak je bila riječ o složenom projektu.

Moji su izazovi u početku bili vezani uz upoznavanje s projektom i balansiranje izrade novih mogućnosti sa zadacima održavanja projekta. Kako je snažan naglasak na stabilnosti aplikacije, po prvi puta sam se susreo s vrlo specifičnim problemima koji se manifestiraju samo na nekim uređajima.

Uz činjenicu da sve što se napravi doista koriste milijuni ljudi diljem svijeta kao prednost rada u Photomathu Petar također izdvaja angažiran People & Culture odjel koji svakom zaposleniku pruža podršku tijekom individualnog razvoja.

Sad kad smo predstavili voditelje, vrijeme je dotaknuti se i detalja o samom radu mobile app timova. Timovi koje predvode Petar i Domagoj u razvoju koriste niz alata bez kojih bi im posao bio puno teži, pa čak i nemoguć.

Trenutno im je oko 70 % iOS projekta napisano u Swiftu

Izdanje aplikacije za iOS isprva je bilo napisano u programskom jeziku Objective-C. Swift je bio tek u počecima i nije bio zreo za dugoročan projekt.

Od početka nismo htjeli koristiti previše biblioteka trećih strana već smo sve što smo mogli napravili sami: crtanje grafova, prikaz rezultata, animacije, sustav s kamerom, naš rješavač matematike… Nakon što je objavljena verzija Swifta s ABI stability odlučili smo se u potpunosti prebaciti na Swift. Sve novo što radimo pišemo u Swiftu, a stari računalni kod se polako prepisuje.

Trenutno je oko 70 posto projekta napisano u Swiftu. Za arhitekturu i programske principe najviše se pridržavamo Appleovih standarda. Zahvaljujući tome je sve pisano na standardan, poznat i provjeren način pa se ne borimo sa značajkama koje nam Apple daje kroz svoje sustave i biblioteke, a i lakše se snalazimo u kodu.

Zahtjevni Appleovi standardi pritom im ne predstavljaju problem. Nije riječ, istaknuo je Domagoj, o nemogućim ili besmislenim uvjetima već jako dobrim smjernicama za izradu kvalitetnih aplikacija.

Testiranjem protiv fragmentacije u svijetu Androida

Foto: Mario Poje

Što se Androida tiče, kod tehničke implementacije koriste niz biblioteka Android Jetpacka, većinu funkcionalnosti koje pruža platforma Firebase i biblioteke koje to omogućuju.

Koristimo još i OkHttp i Retrofit za mrežnu komunikaciju te Gson za deserijalizaciju. Za rad na novoj značajki uglavnom provodimo niz iteracija i prototipiranja. Zbog toga UI komponente koje koristimo u aplikaciji implementiramo sami od početka. Takav se način rada pokazao najfleksibilnijim.

Android je poznat po visokom stupnju fragmentiranosti, kako samog operativnog sustava tako i uređaja. Kako u Photomathu pristupaju rješavanju tog problema?

Imamo niz procesa pomoću kojih nastojimo smanjiti mogućnost greške prilikom programiranja. Nakon što dodamo novu značajku ili promijenimo postojeći tim za provjeru kvalitete radi dodatne testove stabilnosti, uglavnom na više različitih uređaja.

Naravno, nije sve moguće uvijek savršeno istestirati prije puštanja u produkciju. Zbog toga se i nakon toga prati stabilnost aplikacije, kako bi što brže popravili grešku koja utječe na značajan broj korisnika, ako se pojavi.

Tehnički gledano, najvećim izazovima smatra one usmjerene na preinaku dijelova aplikacije kako bi u budućnosti bili održiviji.

Tipični ciklus razvoja u Photomathu traje mjesec dana

Iako se razvojni ciklusi pojedinih dijelova Photomatha međusobno razlikuju, timovi koji na određen način ovise o aplikaciji međusobno su ih uskladili. Tipični ciklus razvoja u Photomathu traje između 30 i 45 dana. Uključuje planiranje, izradu specifikacija, implementaciju, testiranje i praćenje aplikacije u produkciji. Sve to će nadgledati kao novi član Photomatha Filip Šišić koji će na poziciji Engineering Managera pružati podršku Android i iOS timovima.

S obzirom na to da dio Photomathovih zaposlenika radi remotely (od kuće ili u drugom gradu), nezaobilazan alat u oba tima postao je Slack, dok se za video pozive oslanjaju na Google Meet ili Zoom (a zgodno je i za zajedničke fotografije :)) Foto: Mario Poje

Vremenski okvir od mjesec do mjesec i pol dana su si sami zadali. Naime, kako rade vlastiti proizvod nisu u velikoj mjeri ograničeni vanjskim utjecajima i datumima, no trebalo je uspostaviti kakvu-takvu strukturu. Osim toga, pri razvoju aplikacije i implementaciji novih značajki najvažnija načela su im točnost, stabilnost i učinkovitost, upravo tim redoslijedom, ističe Domagoj:

Bitno nam je znati kako nešto radi i kada nešto implementiramo, kao i zašto to radimo na određeni način. Ako nam je poznata dubina rješenja koje primjenjujemo na problem, tada je lako održati točnost i stabilnost. Za efikasnost već treba ići još malo dublje i biti malo više kreativan.

Kako aplikacija iz godine u godinu postaje sve kompleksnija, prilikom planiranja novih mogućnosti potrebno je što prije uočiti kako dodavanje ili mijenjanje nekog dijela može utjecati na ostatak aplikacije. Također sve je potrebnije imati dobre načine detekcije problema kako bi, ako se neki propust i dogodi, reakcija mogla biti pravovremena. Trenutno Photomathovi App timovi koriste skupinu alata Atlassian za pisanje specifikacija, raspodjelu i praćenje zadataka. Također, sva dokumentacija i finalni “source of truth” su u Confluence dokumentima, koji su zadnja riječ za implementaciju i arhivu. Za task management unutar tima koriste JIRA-u.

Tijesna suradnja radi boljeg korisničkog iskustva

Kako bi što brže, učinkovitije i uz što manje grešaka mogli stalno nuditi nova izdanja Photomathove mobilne aplikacije, suradnja timova zaduženih za Android i iOS mora biti što bolja. Većina stvari koje rade se preklapaju, pojasnio je Petar:

Već u početnim fazama zajedno sudjelujemo u planiranju i specificiranju promjena. Finalna tehnička implementacija je specifična za svaki sustav, ali i tijekom izrade dijelimo savjete i iskustva. Sve to ne bi bilo moguće bez odličnih kolega koji su spremni izdvojiti vrijeme za suradnju i procesa koji to podržava.

Domagoj je potvrdio kako se rad timova za dvije glavne softverske platforme uvelike preklapa. Cilj je, naglasio je, uz poštivanje smjernica svake platforme kreirati podjednak UI i UX.

Sve značajke ne rade uvijek paralelno istovremeno na jednoj i drugoj platformi. To nam omogućuje istraživanje, ispitivanje i prototipiranje više stvari odjednom.

Ipak, sve te značajke na kraju završe na obje platforme bez velikog međusobnog razmaka. Ono što se tijekom testova pokaže kao dobro na jednoj implementiramo i na drugoj platformi.

Molimo da prihvatite sve kolačiće kako biste mogli vidjeti ovaj sadržaj

Zanima li vas više o radu iOS i Android timova u Photomathu pročitajte blog postove u kojima Petar i Domagoj dijele još više detalja o svom iskustvu rada u Photomathu (a otkrili su i neke svoje tajne supermoći). Također, tu je i Photomath Talks, serijal virtualnih meetupova za tech zajednicu na kojem predaju njihovi najiskusniji inženjeri. Pogledajte snimku meetupa s Domagojem i Petrom, a ako želite da vas obavijeste o budućim sličnim događajima, prijavite se u njihov Tech Community.

Ako ste iOS ili Android stručnjak koji bi htio doprinijeti usavršavanju aplikacija Photomatha, svakako provjerite Photomathove stranice karijera. Zanima li vas više kako rade drugi Photomath timovi, pogledajte što smo dosad pisali. 🙂

Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.

Pravila ponašanja

Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome). Također, upoznajte se sa stavkom 2. članka 94. Zakona o elektroničkim medijima prije no što ostavite komentar.
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime te pravu email adresu.

Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.

Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Netokracija Podcast

Ovo je email strategija kojom je Burazin privukao investitore poput direktora Stack Overflowa

U novoj epizodi ulazimo u detalje o: (vjerojatno) najvećoj pre-seed rundi u hrvatski startup; tome kako SAD namjerava kontrolirati AI sustave koji bi mogli napraviti atomsku bombu te zašto osnivača Netokracije Ivana Brezaka Brkana izbacuju iz zagrebačkih kavana?

Analiza

Diskriminira li PlayStation Store Hrvate? Popusta nemamo, euro se tek uveo, a plaćali smo bonovima…

Domaće obožavatelje PlayStation konzole ova godina nije nimalo mazila. Štoviše cijelu godinu obilježio ih je osjećaj "zadnje rupe na svirali" jer sve do sredine studenog nisu mogli kupovati karticama. Zašto? PlayStation Store 11 mjeseci nije prešao na euro niti je dvojno iskazivao cijene...

Ekskluzivno

Daytona osigurala 2 milijuna dolara od investitora poput CEO-a Stack Overflowa i Damira Sabola

U najranijoj, pre-seed rundi financiranja, Daytona je osigurala investiciju od čak 2 milijuna dolara, primarno od poznatih američkih i hrvatskih (su)osnivača.

Što ste propustili

Analiza

Diskriminira li PlayStation Store Hrvate? Popusta nemamo, euro se tek uveo, a plaćali smo bonovima…

Domaće obožavatelje PlayStation konzole ova godina nije nimalo mazila. Štoviše cijelu godinu obilježio ih je osjećaj "zadnje rupe na svirali" jer sve do sredine studenog nisu mogli kupovati karticama. Zašto? PlayStation Store 11 mjeseci nije prešao na euro niti je dvojno iskazivao cijene...

Tvrtke i poslovanje

Volontiranje zaposlenika donosi dugoročne benefite i njima samima i poslodavcima i zajednici

Kada danas pričamo o volontiranju, unutar kompanije postoji sve više ljudi koji su upoznati s tim pojmom ili su se čak i sami okušali u volontiranju koje je bilo organizirano kroz tvrtku. To pokazuje da napredujemo, ali ima prostora za rast i uključivanje još većeg broja ljudi. 

Tvrtke i poslovanje

Poljski konzultant poručuje: Bez daljnjih odgoda, prilagodite propise i prakse gig ekonomiji

Radite kada želite, koliko želite, s kime želite. Ovo su pogodnosti rada na kojima se gig ekonomija proslavila, ali to ne znači da u praksi uvijek cvate cvijeće...

Istraživanje

50% hrvatskih kupaca primarno kupuje u hrvatskim online trgovinama

Hrvatski online kupci znatno više vjeruju domaćim web trgovinama te iskustvo kupnje na njima ocjenjuju pozitivnim. Među najbitnijim stavkama koje su im iznimno važne navode cijenu dostave, mogućnosti plaćanja, kvalitetne akcije, besplatan povrat - i recenzije!

Sponzorirano

Infobip o privlačenju generacije Z: Ove godine gotovo 2000 prijava na program za mlade talente!

Infobip je već niz godina uključen u akademsku zajednicu, no posebno su uspješni u privlačenju mladih talenata na svoje programe pripravništva. Samo ove godine dobili su nešto manje od 2000 prijava, a otvara se i novi ciklus prijava!

Novost

Prvo europsko gimnastičko online natjecanje pratite putem hrvatske platforme, Elevien

Natjecanje "European Men’s Artistic Gymnastics Online Test Event!" sprema se ući u povijest kao prvo 100% live online gimnastičko natjecanje.