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

Infobip ❤️ Netokracijašto akvizicija znači za vas - i nas?

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.

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

Novost

Što se događa u tech industriji? Masovna otpuštanja, kripto-burza propala preko noći, a tek Twitter…

Malo je reći kako ovaj tjedan nije bio dobar za IT industriju. Zapravo, poprilično je kaotičan i čini se kako stabilnost neće doći uskoro...

Društvene mreže

Gdje ćemo se družiti i raspravljati ako propadne Twitter?

Bilo da vas brine koliko dugo će još Twitter funkcionirati (što nije čudo s obzirom na svakodnevne vijesti o zbunjujućim poslovnim potezima) ili da ne želite biti dio Muskovog Twittera, evo što se nudi od alternativa.

Zabava i zanimljivosti

Marin u San Franciscu: TechCrunch Disruptom kruže roboti, na Golden Gateu nema signala

"I Left My Heart In San Francisco" pjevao je kultni američki pjevač Tony Bennett. Mogu li ja uskliknuti isto? Ne baš, ali San Francisco je grad koji će mi definitivno ostati u sjećanju do kraja života...

Što ste propustili

Društvene mreže

Gdje ćemo se družiti i raspravljati ako propadne Twitter?

Bilo da vas brine koliko dugo će još Twitter funkcionirati (što nije čudo s obzirom na svakodnevne vijesti o zbunjujućim poslovnim potezima) ili da ne želite biti dio Muskovog Twittera, evo što se nudi od alternativa.

Tvrtke i poslovanje

Deloitte Technology Fast 50: Aircash 4. najbrže rastuća tvrtka u srednjoj Europi, prati ih još 11 hrvatskih tvrtki

Na ovogodišnjem Deloitteovom natječaju 50 najbrže rastućih tehnoloških tvrtki Srednje Europe plasiralo se ukupno 12 hrvatskih tvrtki. Osam tvrtki ostvarilo je plasman u glavnoj kategoriji „Technology Fast 50“ i četiri u kategoriji „Companies to Watch“, dok su još tri tvrtke posebno predstavljene u kategoriji „Zvijezde pozitivnog utjecaja“.

Novost

CircuitMess potpisao ugovor s Walmartom: Ovog će se Božića pod američkim borovima naći Chatter 2.0

Hrvatski startup ostvario je suradnju sa Sam’s clubom, podružnicom američkog Walmarta, koja je naručila 17.670 primjeraka edukacijskog seta Chatter 2.0.

Ecommerce

5 razloga zašto je ovaj Black Friday drugačiji

Za domaće webshopove Black Friday je nekad bio "13. mjesec" jer bi u tom jednom danu ostvarili prometa koliko u jednom mjesecu. Ove godine sve je drugačije zbog strožih pravila oko prikazivanja popusta, sniženja koja počinju sve ranije, ali i potrošača koji nisu baš raspoloženi za trošenje.

Intervju

FER dobiva venture builder! Inkubator SPOCK postaje Nuqleus

SPOCK ima novo ime i program - od danas postaje venture builder koji će uz industrijske partnere pomoći hrvatskim istraživačima i znanstvenicima osnovati deep-tech startupe. Prve uključene IT tvrtke su: AVL-AST, GDi, Infobip, Rimac Technology i Hrvatski Telekom!