Male tajne za razvoj aplikacija koje neće pregaziti vrijeme - niti nova tehnologija
Niko Goga

Male tajne za razvoj aplikacija koje neće pregaziti vrijeme – niti nova tehnologija

Koje su tajne razvoja "future-proof" aplikacije? Kako izgleda baza koda, kako su posloženi radni procesi te kako na kraju dobiti nešto što možemo skalirati? Donosimo vam detaljan pregled kako Superology planira napraviti Superbet aplikaciju otpornu na vrijeme.

Ovogodišnja SuperMinds konferencija dovela je predavače poput Paula Hudsona, jednog od najvećih globalnih stručnjaka za Swift i Garricka Toubassija, investitora i savjetnika koji je prošao i svijet startupa i velike kompanije poput Googlea. Također, već smo objavili izvještaj u kojem su predavači Christina Lee i Mattt otkrili kako postati bolji programer spreman na budućnost.

Uz njih, na pozornicu su stala dva Android programera s predavanjem Past, Present and Future (of a product app) kako bi predočili svoj plan za stvaranje Superbet aplikacije otpornom na vrijeme u kontekstu skaliranja, baze koda i radnog procesa.

Kako bi najbolje prenijeli svoje ideje koje su počeli realizirati, dali su detaljan pregled razvoja Superbet mobilne aplikacije. Superbet već ima navršenih 5 godina postojanja što za jednu aplikacju nije kratak životni vijek, pogotovo kada uzmemo u obzir kako je to proizvod koji stalno raste kojeg je potrebno održavati.

Svoje tajne za razvoj future-proof aplikacije otkrili su Luka Leopoldović, Senior Android Developer i Filip Debelić, Android Team Lead iz Superologyja.

Ovogodišnja SuperMinds konferencija, naslovljena Mind the App, okupila je razne superumove iz mobile developmenta. Niko Goga

Migracija ka novim tehnologijama ne događa se preko noći

Luka se priključio Superologyju prije dvije godine, a u trenutku njegovog dolaska već tada su radili s relativno zastarjelim tech-stackom: MVP arhitektura, RxJava, Android View System itd. Priznaje kako mu je to bio važan čimbenik u odluci hoće li uopće prihvatiti ponudu ili ne:

Da budem precizniji – s obzirom da nikad prije nisam bio dio produktnog okruženja (pogotovo tako velikog produkta) nisam znao koliko smo fleksibilni i motivirani za bilo kakva tehnološka unaprjeđenja.

Ponudu je naposlijetku prihvatio, a čim se posao zahuktao bio je i ugodno iznenađen motiviranošću da se stvari unaprijede. Kaže da nikada nije imao priliku raditi na toliko puno radikalnih zahvata na arhitekturi koda:

A to je uvijek i najveći izazov. Naročito procijeniti koje tehnologije ima smisla uvoditi, a koje ne. U te dvije godine, kick-offali smo i aktivno migriramo ka MVVM arhitekturi, Kotlin korutinama i Jetpack Composeu, gdje već neko vrijeme određene dijelove aplikacije upogodnjuje upravo taj tech-stack.

Naravno, svim programerima je gušt raditi na najmodernijim tehnologijama, ali Luka smatra kako je važno napomenuti da su migraciju ka tim tehnologijama pokrenuli kada su procijenili da bi od njih dugoročno imali najveći benefit:

Kako bismo u tome uspjeli, bilo je važno zadovoljiti razne preduvjete. A postavljanje dobrih temelja, kao i integracija novih tehnologija, nisu procesi koji se odvijaju preko noći.

Upravo iz toga Luka izvlači najvažnije točke kako pristupiti u razvijanju future-proof proizvoda, čije funkcionalnosti, bazu koda i radne procese možemo lako skalirati.

Luka je cijeli proces podijelio u 3 točke:

1) U svakom trenutku, vizija produkta mora biti spremna na promjenu, nadogradnju ili proširenje

Kao primjer, Luka navodi viziju Superbet digitalnog ekosustava prema kojem aplikacija teži biti one-stop-shop za sve fanove. Uz klađenje, moguće je ostvariti vrlo detaljan uvid u sportsku statistiku, a integrirali su i društvenu mrežu za fanove:

Tu su i novčanik, streamovi utakmica te malo more funkcionalnosti koje polako izlaze iz domene čistog klađenja. Posljedično, željeli smo si stvoriti preduvjete da se svaki takav segment produkta može razvijati samostalno.

To smo ostvarili podjelom na produktne timove, gdje je za svaki segment produkta (klađenje, statistike, društvena mreža, novčanik, itd.) odgovoran jedan produktni tim. 

Luka je prve korake u mobile developmentu napravio 2011. kada je izbacio svoju prvu igru na PlayStoreu. Niko Goga

Od sportske statistike i društvene mreže u konačnici su napravili dvije ogromne in-house platforme, što sigurno ne bi uspjeli bez ovakve organizacije, napominje Luka:

Struktura Androidove baze koda također prati organizaciju po produktnim segmentima, gdje je kod za klađenje, sportsku statistiku ili društvenu mrežu raspoređen u module koji ne znaju jedni za druge te je takav kod moguće lako mijenjati, nadograditi ili proširiti, neovisno o drugim modulima (segmentima produkta).

Superbet android aplikacija sadržava gotovo 300 fragmenata na kojima radi 10 android developera u 9 produktnih timova, možemo vidjeti benefit ovakvog pristupa: 

Iako ovaj konkretni model neće nužno odgovarati svima, mislim da je na određeni način važno omogućiti različitim dijelovima produkta da se razvijaju individualno te u svakom trenutku moći vrlo lako proširiti ili nadograditi postojeći produkt.

2) Kreiranje arhitekture koda koja će omogućiti rješavanje novih problema i izazova koji će se pojaviti u budućnosti

Baza koda je uvijek škakljiv dio, navodi Luka. Relativno je jednostavno kreirati arhitekturu koda koja rješava trenutni set problema, ali proizvod konstantno raste te se mobilno okruženje ubrzano razvija:

Stoga, smatram da je, u slučaju već dobro razvijenog i uspješnog produkta, vrlo važno kreirati arhitekturu koda koja će omogućiti rješavanje novih problema i izazova koji će se pojaviti u budućnosti.

Prvi korak ka tome je, paradoksalno, kreiranje komponenti s ciljem arhitekturalne neutralnosti, kako bi iste bile lako iskoristive i nakon sljedećih 5 godina:

To je dio kod kojega smo se blago opekli kad smo pokušali iskoristiti određene komponente iz stare MVP arhitekture u novoj MVVM arhitekturi i nešto na što stavljamo veliki fokus sada. 

SuperSocial već koristi preko 710.000 ljudi. Niko Goga

3) Propitkujte sve što se radi i kako se radi

Nikad ne bismo trebali slijepo slušati i primjenjivati sve savjete i povratne informacije jer na taj način ne možemo znati radimo li stvari ispravno, napominje Luka. Kako bismo mogli propitivati, potrebno je dobro proširiti znanje:

I ne samo najnovijim stvarima iz Android svijeta, već i određenim principima u programiranju koji su vječni i koji će nam pomoći u tome da sve te nove Android stvari implementiramo na pravi način.

Ovo je također nešto na što u Superologyju stavljaju velik naglasak. Luka kao primjer toga navodi činjenicu što su nedavno organizirali internu radionicu gdje su ugostili Christinu Lee, stručnjakinju za Kotlin i duboko uronili u tehnologije koje su im trenutačno od velikog interesa.

“Tko zna koliko grešaka sad radimo, to ćemo vam javiti kad nas dostignu…”

S druge strane, jedan od najvećih izazova u razvoju softvera je pronaći balans između želje za učenjem novih tehnologija i zdravorazumske logike iskušanih praksa, tvrdi Filip:

Dobar inženjer ima konstantan poriv napredovati, isprobavati nove stvari, pratiti trendove i educirati se. Međutim kad imaš jako veliku aplikaciju kao što je naša, zdrav razum nameće da neke stvari jednostavno nemaju smisla, a to je teže prepoznati jer za adaptaciju nečeg novog treba vremena.

Kada govorimo o greškama, rijetko se dogodi da nešto napraviš i odmah zaključiš – ovo je bila greška:

U našem poslu greške te najčešće dostignu kad je već prekasno za neke jednostavne promjene pa su time još bolnije.

Svaka greška koju su napravili putem omogućila im je da nauče nešto i da naknadno naprave bolji proizvod, zaključuje Filip:

Tko zna koliko grešaka sad radimo, to ćemo vam javiti kad nas dostignu…

“Budi realniji s očekivanjima i rokovima jer kada si mlad misliš da možeš sve napraviti preko noći”, savjet je kojeg bi sebi Filip dao na početku karijere. Niko Goga

Za kraj, osvrnuli smo se i na budućnost Superbet aplikacije te kako osigurati da odluke danas za sutra budu ispravne…

Neka podaci odlučuju!

Vizija iza Superbet aplikacije je biti one-stop-shop za sve betting fanove, a Luka smatra da već sada korisnicima nude pregršt sadržaja i funkcionalnosti koje produkt čine upravo takvim.

Koje ćemo nove funkcionalnosti integrirati kroz godinu ili dvije ili kako ćemo tada proširiti postojeće, trenutno vam ne mogu reći, jer ni sam ne znam, s obzirom da Superology, kao Superbetov R&D hub, nema onog klasičnog stakeholdera koji odlučuje o tome što radimo sljedeće.

Adis Mustedanagić iz Superologyja održao je izvrsno predavanje na SuperMinds konferenciji baš na tu temu, kojim je sjajno predstavio paradigmu kojom se vode u Superologyju:

Ukratko – data je naš stakeholder. Dakle, ideje o svakoj novoj funkcionalnosti, ili o proširenju postojećih, većinski dolaze analizom prikupljenih podataka o načinu korištenja aplikacije te su upravo ti podaci stakeholder koji će na kraju reći hoće li se ta nova funkcionalnost i zadržati u produktu.

Filip smatra kako će produkt sigurno rasti, a u planu su nova uzbudljiva tržišta i nove funkcionalnosti, što je naravno jako izazovno dok usporedno treba održavati aplikaciju da radi bez ikakvih poteškoća. Kako bi to uspjeli, moraju se konstantno educirati i istraživati nove stvari jer produkt ne dozvoljava da stagniraju:

S tehničke perspektive vjerojatno najveći izazov koji nam predstoji je migracija data layera aplikacije s RxJava-e na Flow i Coroutines, to je proces koji zasigurno nećemo moći odraditi preko noći tako da će zahtijevati puno planiranja i strategije.

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

Kolumna

Od Yahooa do ChatGPT-ja: Strategije uspjeha na tražilicama koje vrijede i danas

Neke strategije za pozicioniranje na internetskim tražilicama još funkcioniraju i nakon 10 godina. U ovom povratku u prošlost, prisjećamo se raznih praksi, što se od njih zadržalo, a što ne - te što je novo ušlo u igru...

Tehnologija

Tomislav Tipurić uoči ATD-a: Moramo poraditi na promjeni definicije junior developera

Uoči 18. konferencije Advanced Technology Days porazgovarali smo s osobom zaduženom za program, Tomislavom Tipurićem, o svemu što ne smijete propustiti na samom događaju, a i u svijetu tehnologije posljednjih godina i dana. Naravno, AI je neizostavna tema.

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?

Što ste propustili

Kolumna

Od Yahooa do ChatGPT-ja: Strategije uspjeha na tražilicama koje vrijede i danas

Neke strategije za pozicioniranje na internetskim tražilicama još funkcioniraju i nakon 10 godina. U ovom povratku u prošlost, prisjećamo se raznih praksi, što se od njih zadržalo, a što ne - te što je novo ušlo u igru...

Tehnologija

Najveća hrvatska luka u Pločama postat će pametna, uz sufinanciranje iz EU od skoro milijun eura

Luka Ploče postat će prva hrvatska pametna luka. Ujedno je ovo jedini projekt iz Hrvatske koji je Europska Komisija odobrila u sklopu fonda 5GSC - od ukupno 14 odobrenih u cijeloj Uniji.

Tvrtke i poslovanje

Bajke u digitalnom svijetu: Pinokio djeci priča o lažnom predstavljanju, a tri praščića o slabim lozinkama

Stotine ljudi podržale su humanitarnu akciju tvrtke Combis i Centra za nestalu i zlostavljanu djecu.

Programiranje

Upoznajte Retriever, platformu FER-ovog TakeLaba koja rudari po 30 domaćih web portala

Retriever zagrebačkog TakeLaba može analizirati milijune članaka objavljenih na hrvatskome u posljednjih 20 godina, a sprema se i na iskorak u regiju. 

Tvrtke i poslovanje

Od 1. siječnja država nadzire Wolt, Bolt, Glovo… – što to znači?

Teško je regulirati segment tržišta o kojem nemate konkretnih saznanja, srećom, za tzv. GIG ekonomiju to će se uskoro promijeniti. Više saznajemo u razgovoru s ravnateljom Uprave za rad i zaštitu na radu u Ministarstvu rada, mirovinskoga sustava, obitelji i socijalne skrbi.

Programiranje

“Infrastruktura kao kod” izazov je s kojim se isplati uhvatiti u koštac, pogotovo za ogromne okoline

Što je sustav veći, to IaC (Infrastructure-as-Code) donosi više prednosti. Kako to izgleda u praksi?