Kako smo razvili aplikaciju OmoReader, čitač za osobe s poteškoćama u čitanju

Kako smo razvili aplikaciju OmoReader, čitač za osobe s poteškoćama u čitanju

Stiže insajderska priča iz Locastica o razvoju OmoReadera, aplikacije koja je pored svih uobičajenih funkcionalnosti čitača trebala imati i dodatne mogućnosti prilagođavanja teksta za osobe koje imaju poteškoće s čitanjem.

OmoReader, prvu domaću aplikaciju za osobe koje imaju poteškoća s čitanjem, razvili smo u timu s partnerima iz Omolaba, laboratorija za vizualne komunikacije o kojemu ste već mogli čitati na Netokraciji.

Tijekom čitavog procesa razvijanja aplikacije, upravo zbog činjenice da se radi o projektu koji zaista može poboljšati živote drugih, moramo priznati kako je motivacija tima bila zaista nevjerojatna, posebice jer se u isto vrijeme radi o aplikaciji čiji je koncept izuzetno složen i istovremeno se moralo razmišljati o nekoliko različitih dijelova s kojima se inače nitko od nas ne susreće, a nemaju nužno veze s programiranjem.

U Locasticu i inače radimo na nešto kompleksnijim projektima, ali ovo je prvi put bilo da radimo book reader aplikaciju. I to ne bilo kakvu, već poprilično složen čitačknjiga.

Ako uzmete u obzir da većina postojećih aplikacija podržava jedan ili dva formata, a OmoReader podržava gotovo sve tekstualne formate, rastavljanje na slogove, custom fontove, OCR i analitiku, jasno je kako se ovdje radi o velikom poslu za koji je bilo potrebno dosta vremena i razvoja, ali sretni smo što smo uspjeli i time dokazali da imamo kvalitetan tim na zavidnoj razini, kako u zemlji, tako i u svijetu.

A evo što se krije iza te kvalitete i čitavog procesa…

 

Početak je bio lakši uz rad tri znanstvenice

Naš zadatak bio je razvoj mobilne aplikacije koja je pored svih uobičajenih funkcionalnosti čitača trebala imati i dodatne mogućnosti prilagođavanja teksta, konverzije različitih formata u .epub te OCR-a (optičkog prepoznavanja znakova), a jedan od glavnih i kompliciranijih funkcionalnosti ove aplikacije s kojim smo se susreli je samo rastavljanje riječi na slogove.

Srećom, nismo morali razvijati poseban algoritam za rastavljanje riječi, jer bi to znatno produžilo razvoj aplikacije, već smo na samom početku istraživanja pronašli algoritam koji je rezultat izvornog znanstvenog rada Postupak automatskoga slogovanja temeljem načela najvećeg pristupa i statistika slogova za hrvatski jezik autorica Ane Meštrović i Sande Martinčić-Ipšić s Odjela za informatiku Sveučilišta u Rijeci te Mihaele Matešić s Filozofskog fakulteta Sveučilišta u Rijeci.

Algoritam je, kao što je vidljivo u aplikaciji, odlično odradio svoj dio posla.

Ispod haube

Što se tiče samog čitača, aplikacija je izrađena u Ionic frameworku, koji omogućava izradu hibridnih mobilnih aplikacija u web tehnologijama: HTML, CSS i javascript (Angular 7). Osim toga, važan dio aplikacije baziran je i na epub.js libraryju koji smo znatno prilagodili potrebama aplikacije. OCR je implementiran uz pomoć vanjskog API-ja, dok smo svoju custom analitiku, koja će nam omogućiti daljnje unapređenje aplikacije, izradili uz pomoć Firebasea.

Najveći izazovi prilikom razvoja najprije su se vezali uz formate samih knjiga. Aplikacija je trebala podržavati gotovo sve formate u kojima se elektronske knjige pojavljuju, a budući da bi razvoj funkcionalnosti za svaki od ovih formata značajno odužio razvoj aplikacije, odlučili smo se fokusirati na ePub, a ostale formate podržati konverzijom knjiga iz ostalih formata u ePub.

Koliko muke može zadati algoritam za rastavljanje slogova?

Jedna od najvažnijih funkcionalnosti ove aplikacije je rastavljanje na slogove, što je ujedno bio i najveći problem za riješiti. U početku se algoritam činio kao jednostavan problem (prva pomisao bila je rastavljanje riječi kod samoglasnika), ali se na kraju ispostavilo kako se radi o mnogo težoj zadaći. Prilikom istraživanja shvatili smo da zapravo sami ne možemo definirati točna pravila po kojima napisati algoritam, a razlozi zašto je tomu tako nešto su kompliciraniji.

Ako pokušate rastaviti broj dvanaest na slogove, većina ljudi će vam ispravno odgovoriti, ali ako ih pitate koje su metode i pravila koristili – neće znati. Na nama je bilo da istražimo sva gramatička pravila i smislimo način kako ih implementirati unutar aplikacije. Takve stvari baš i ne možete pronaći “guglanjem”, ali smo, srećom, u to vrijeme naišli na gore spomenuti znanstveni rad, koji je odgovorio na veliki broj naših problema.

Imali smo tu sreću da su nam autorice rada dale dozvolu za njegovo korištenje te smo uspjeli prilagoditi Python algoritam u JavaScript. Funkcionalan algoritam bio je samo prvi korak jer smo morali pronaći način da ga primijenimo na knjigama. ePub format je zapravo neka vrsta .zip datoteke koja se sastoji od HTML, CSS i JavaScript datoteka, poput svakog weba. Bilo je potrebno napraviti algoritam koji će modificirati strukturu HTML-a u knjigama, kako bismo omogućili bojanje slogova i označavanje zrcalnih slova bez da narušimo izvorni dizajn knjige, a koji će uz to biti efikasan i brz.

Poslužite se open source API-jem kad god je to moguće

Također, jedan od izazova s kojima smo se susreli prilikom implementacije bila je i siva linija koja nam omogućava praćenje teksta prilikom čitanja radi lakšeg održavanja koncentracije. Linija je trebala podržavati različite brzine čitanja i zbog toga smo posebnu pažnju morali posvetiti izračunu duljine trajanja linije za svaku pojedinu riječ, kako ona ne bi išla prebrzo ili presporo na toj riječi.

Aplikacija je trebala sadržavati i funkcionalnost optičkog prepoznavanja znakova (OCR). Razvoj ovakvog sustava samog po sebi može potrajati godinu ili više dana, ali na svu sreću naišli smo na open source API koji je već riješio taj problem te smo ga iskoristili. Kod ovako kompleksnih zadataka uvijek je bolje koristiti već dostupno i gotovo rješenje, nego samostalno krenuti njegov u razvoj, pogotovo ako imate definiran fiksni rok za izradu.

Uz podatke o korištenju otvaraju se i mogućnosti nadogradnje

Uz sve značajke koje smo nabrojali, poput rastavljanja slogova, postavki fontova, OCR-a i konverzije, jedna od najbitnijih posebnosti za krajnjeg korisnika i za budući razvoj sigurno je analitika koja prati registrirane korisnike. O tim korisnicima, koji su prijavljeni u svoj račun, prikupljamo podatke o postavkama OmoReadera koje se koriste kako bi kroz analitiku mogli ustanoviti koji fontovi/veličine/razmaci donose najbolje rezultate i kako bi mogli pomoći u daljnjem razvijanju rješenja za osobe s poteškoćama u čitanju.

Razvoj OmoReadera svakako je kontinuiran proces i konstantno ćemo implementirati iskustvo korisnika kroz korištenje aplikacije da bi u konačnici dobili što optimiziraniji proizvod.

11.3.2018. U cilju potpune transparentnosti, moramo napomenuti kako je OmoReader aplikacija intelektualno vlasništvo tvrtke OmoLab, laboratorija za vizualnu komunikaciju dok je agencija Locastic angažirana za tehničku izvedbu aplikacije.

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 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)
  • 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 (Hrvoje Lončar) ili barem ime i inicijala (Hrvoje L.) te pravu email adresu. Kako koristimo podatke koje tamo 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

Sponzorirano

Kako izbjeći sklizak “onboarding” iliti zašto sam se uspješno ukrcala na RBA brod?

Prvi tjedni (a često i prvi mjeseci) ključni su za uspješno uključivanje zaposlenika na novo radno mjesto. Ovo su moja prva iskustva onboarding procesa na poziciju Senior Enterprise programerke u Raiffeisen banci iz kojih se daju izvući zanimljive pouke kako za novozaposlene, tako i za poslodavce.

Startupi i poslovanje

Može li servis PlatiMe pomoći onima koji ne mogu čekati naplatu računa?

Duga dospijeća plaćanja računa bolna su točka svakog poduzetnika, a u Hrvatskoj donedavno nije postojao praktičan način da ovaj problem riješite. Provjerili smo što to sprema domaći Moj-eRačun.

Startupi i poslovanje

Albert Gajšak: “Sve ove uspješne hrvatske tehnološke priče inspirirat će novu generaciju startupa”

Zadnji dio konferencijskog dijela RockPaperStartups bio je posvećen novoj generaciji startupa, a sudjelovali su Albert Gajšak iz Circuitmessa, Hajdi Ćenan iz airta, Dominik Tomičević iz Memgrapha i Darko Jovišić iz Robotiqa.

Što ste propustili

Intervju

Što SofaScore traži od “direktora proizvoda” čiju platformu svakodnevno koristi 20 milijuna korisnika?

"Product Director" možda nije titula koju toliko često vidimo na našem području, ali je izuzetno važna u tvrtkama posvećenima digitalnim proizvodima kao što je SofaScore.

Startupi i poslovanje

Pripremite se za investitore, u Hrvatsku stiže Fundraising Bootcamp

U suradnji s BIRD inkubatorom u Hrvatsku dolaze svjetski stručnjaci kako bi pomogli startupima osigurati kapital!

Startupi i poslovanje

Kako se suočiti s EU projektima? Tajne otkrivaju Rimac Automobili, Impuls savjetovanje, Tvornica snova i Hubbig

Što hrvatske tehnološke tvrtke i startupe očekuje u novom razdoblju EU financiranja, vrijedi li uštedjeti na vanjskim konzultantima te što možemo naučiti iz primjera velikih i malih projekata hrvatskih tvrtki, otkrili smo u završnici RockPapersGrowth konferencije.

Startupi i poslovanje

Fiveove strategije rasta za klijente: od LinkedIn poruka do push obavijesti

Na završnoj konferenciji RockPaper trijade Fiveova voditeljica Growth strategy odjela provela nas je kroz specifične growth strategije virtualne fitness platforme, platforme za poslove i video streaming servisa.

Startupi i poslovanje

“Način kako akvizirate korisnike dio je vašeg DNA, i jednako je bitno koliko i sam proizvod!”

Kako usmjeriti rast u ranim stadijima razvoja tvrtke u okviru podizanja svijesti i interesa za sam proizvod ili uslugu, građenja brenda i komunikacije te u konačnici - akvizicije korisnika, otkrili smo na prvom panelu zadnje konferencije u RockPapers trijadi!

Startupi i poslovanje

me.mum, hrvatski femtech broji zadnje dane kampanje koja je probila cilj u 2 dana!

Nije rijetkost da neki od najuspješnijih projekata nastanu iz osobnog iskustva (ili frustracije) osnivača. Slična stvar se dogodila i Maji Bujas, osnivačici jednog od rijetkih hrvatskih femtech startupa.