Fotoradaru aplikācija uz iPhone

Sen nebiju veidojis jaunas mobilās aplikācijas. Pārsvarā laika trūkuma dēļ, bet bija arī citi, plašākai publikai neinteresanti iemesli. Tā nu iedomājos, ka saistītbā ar fotoradaru ieviešanu, arī man pašam noderētu vienkārša, bet ērti lietojama mobila aplikācija, kas neuzbāzīgā veidā sniegtu informāciju par jaunajiem satiksmes organizētājiem. Tāpēc esmu izveidojis iPhone aplikāciju, par kuru šajā rakstā pastāstu mazliet plašāk.

Apraksts un fīčas
Aplikācijas pamatā ir karte, uz kuras ir atliktas fotoradaru atrašanās vietas. Par katru fotoradara punktu var saņemt detalizētāku informāciju- īsu aprakstu un koordinātes.

Lai būtu ērtāk orientēties nepazīstamā vietā, Ir iespēja apskatīt sarakstu ar desmit tuvākiem fotoradariem.

Taču pati noderīgākā fīča ir automātiskas notifikācijas par tuvumā esošajiem radariem, kas darbojas arī tad, ja aplikācija atrodas fona (background) režīmā. Notifikācija brīdina par iespējamo fotoradara atrašanas vietu brauciena maršrutā, taja pašā laikā nenovēršot autovadītāja uzmanību no ceļa.

Lai informācija par fotoradaru atrašanas vietām nezaudētu savu aktualitāti, aplikācijā ir iestrādāts informācijas atjaunošanas mehānisms, kas sinhronizējās ar Valsts polcicijas sniegto informāciju par fotoradaru atrašanas vietām. Šobrīd tas ir pieejams tikai manuāli izsaucot datu atjaunošanas funkciju no aplikācijas rīku joslas, taču nākamajā versijā būs iespēja uztaisīt tā, ka datus var atjaunot arī automātiski.

Filosofija
Ir samērā daudz aplikāciju, kas paredzētas informācijas sniegšanai par dažādiem satiksmes objektiem – sastrēgumiem, ceļu remontiem, bedrēm, policijas ekipāžām, un, protams, arī fotoradariem. Populārākās drošvien ir Waze un Trapster. Bet tām visām ir fundamentāls trūkums – aplikāciju saturu veido lietotāji, un saturs lielākoties ir neprecīzs un nepilnīgs.

Datu kvalitāte ir vissvarīgākais aspekts, bet ir arī citi iemesli, kāpēc es nelietoju, piemēram, Waze. Tam ir samērā sarežģīts interfeiss, dati un baterija tiek tērēta absolūti nevīžīgi, un es nevaru saņemt sev svarīgu un kvalitatīvi filtrētu informāciju vienkāršu notifikāciju veidā. Noteikti, ka arī Waze ir savs pielietojums un labums, bet šobrīd tas priekš manis nestrādā.

Manis veidotā aplikācija ir pretstats- aplikācija ir “logs” uz ceļu policijas datu bāzi, tātad pēc būtības datiem būtu jābūt precīziem. Lietotājam ir iespēja saņemt informāciju visvienkāršākajā un neuzbāzīgākajā veidā, ar visminimālāko baterijas patēriņu un bez datu trafika izmantošanas.

Arī šādai pieejai ir viens neatsverami liels mīnuss, proti- datu daudzums. Ceļu policija nepublicē, kad un kur atradīsies policijas ekipāžas. Arī satiksmes departamenti nepublicē apstrādājamus datus par dažādiem notikumiem uz ceļa. Attiecīgi lietotājiem nebūs īpaši interesanti katru dienu, braucot vienu un to pašu maršrutu ieslēgt Fotoradaru aplikāciju. Visreālakais pielietojums ir ieslēgt aplikāciju braucot retus / nezināmus maršrutus, lai uzzinātu par tuvumā esošajiem fotoradariem.

Jo vairāk CP, CSDD, RDSD, u.c. dalīsies ar automātiski apstrādājamu informāciju, jo aplikācija autovadītājiem kļūs noderīgāka.

Tehniskais risinājums
Pieļauju, ka ir pāris lietas, kas atsevišķiem ļaudīm varētu būt interesanti arī mazliet tehniskākā līmenī. Te būs:

– Paziņošanas fona funkcija darbojas tikai uz iPhone 3GS un jaunākiem tālruņiem. Šobrīd ir nepieciešama iOS 5.0 versija, bet ar nākamo programmatūras jauninājumu aplikācija darbosies arī uz iOS 4.0

– Paziņojumu ieslēgšana notiek uzstādījumu sadaļā, un tai ir maksimālais izmantošanas laika limits- 60 minūtes. Šis ierobežojums ir iestrādāts tālab, ka lietotājs pats noteikti aizmirstu izslēgt šo funkciju, kas rezultātā novestu pie baterijas iztukšošanās. Aplikācija paziņo par noilguma iestāšanos, tāpēc īpašām problēmām nevajadzētu būt- ir jāieslēdz aplikācija un jāuzstāda atkārtota paziņošanas uzsākšana.

– Dati par fotoradaru atrašanās vietām glabājas centralizētā datu serverī, kurš strādā ārkārtīgi žigli un resursu taupoši, pateicoties izmantotajām tehnoloģijām un datu apmaiņas protokolam.

Tehniskā līmenī, aplikāciju serveris ir veidots uz Node.js pamata un izmanto MongoDB ne-relāciju datu bāzi. Pieprasījumi tiek apstrādāti izmantojot vienkārši nodotus datu hash algoritmus, kas glabājas gan persistentajā, gan operatīvajā atmiņā un tikai nepieciešamības gadījumā aplikāciju serveris veic datu atlases pieprasījumus. Ieguvumi ir ātrāka sinhronizācija un mazāks sūtīto datu daudzms. Minētais serviss darbojas arī kā fotoradaru Valsts policijas sniegto datu apstrādātājs / kontrolieris.

Ekrānskati


App Store
Aplikācija ir pieejama App Store, un nāk par baltu velti. Par jaunumiem varēs uzzināt šajā blogā, kā arī manā privātajā twitter kontā – @pbs_lv.

★ iMeet – redzi savu draugu atrašanās vietu on-line režīmā

Papildināts [15.09.2009]

Manā otrā blogā ir pieejams apraksts angļu valodā. Tur arī turpmāk plānoju publicēt aprakstus par iPhone programmām.

Beidzot pienākusi kārta aprakstīt mūsu jaunāko iPhone programmu, kas saucās iMeet. Programmas apraksta īsā versija varētu skanēt šādi: iMeet ir rīks, kas ļauj redzēt savu draugu atrašanās vietu kartē on-line režīmā.

Continue reading ★ iMeet – redzi savu draugu atrašanās vietu on-line režīmā

★ Perfect Mark – precīzāku koordinātu uzņemšana (iPhone)

logo_blogŠobrīd uz App Store akceptu esmu nosūtītījis divas jaunas iPhone aplikācijas. Pirmā drīz (cerams) būs iekš App Store, arī apraksts tai vēl sekos, bet par otru programmu gan varētu jau tagad uzrakstīt. Tātad, aizvakar uz veikalu nosūtīju jaunu iPhone programmiņu ar nosaukumu “Perfect Mark”, kuras pamatfunkcionalitāte ir nodrošināt precīzāku koordinātu atlikšanu.

Continue reading ★ Perfect Mark – precīzāku koordinātu uzņemšana (iPhone)

★ Krievu – Angļu vārdnīca priekš iPhone

rusengicon Jaudā! Esam uztapinājuši jaunu vārdnīcu: Krievu – Angļu – Krievu. Nav īpaši daudz ko stāstīt, fīčas (cik nu tās tur ir) ir tieši tās pašas kas Latviešu – Angļu vārdnīcā. Ķeriet, kamēr karsta. Tai pat laikā apzinos, ka šī bloga lasītāju auditorijai šī vārdnīca varētu būt mazāk noderīga, nekā iepriekšējā :)

P.S. Par mūsu iPhone programmu jaunumiem vis ātrāk varēsi uzzināt Twitterī: http://twitter.com/MelleneApps

P.P.S. Esmu liels Lieldienu Olu fans :)

P.P.P.S. Gribēju vēl vienu lietu piebilst. Šobrīd iekš App Store uz review ir nosūtīta vēl viena programmiņa. Baigi krutā! Un apsolos, ka tā nebūs vārdnīca :)

★ Latviešu – Angļu valodas vārdnīca priekš iPhone

englaticonSveika, tauta. Pēdējā laikā šajā blogā sanācis dikti maz rakstīt, taču ar šo ziņu man ir jāpadalās.

Sākšu ar to, ka atgādināšu par kādu ierakstu, kuru rakstīju šī gada marta beigās: “Vai ir kādas idejas iPhone aplikācijai?“. Toreiz rakstīju, ka sāku programmēt iPhone aplikācijas un aicināju padalīties ar kādu ideju. Atsaucība nebija pārāk liela, un es izdomāju realizēt pats savu ideju.

Tagad vēlos paziņot par to, ka esmu uzrakstījis pirmo iPhone programmu. Tā ir Angļu – Latviešu – Angļu valodas vārdnīca, un ar šodienu tā ir pieejama arī App Store veikalā. Tās cena ir 1.99$.

Programmas nosaukums veikalā ir “ENG – LAT”. Vārdnīcas nosaukumu es saīsināju, jo tādā veidā tas labāk izskatās uz iPhone ekrāna. Zemāk redzami pāris attēli no programmas.

Sākuma izskats img_0482 img_0483

KĀPĒC VĀRDNĪCA?

Kāds varētu teikt, ka es varēju izdomāt kaut ko oriģinālāku, un, ka līdzīgas tulkošanas vārdnīcas jau ir pieejamas App Store. Daļēji tā ir taisnība, taču šai vārdnīcai ir pāris neatsveramas priekšrocības attiecībā pret citām vārdnīcām.

Pirmkārt, šī vārdnīca neizmanto interneta pieslēgumu. Iekš App Store mana programma ir vienīgā (Latviešu – Angļu – Latviešu), kas tāda ir. Pārējās ir balstītas uz Google Translation API, kas izmanto interneta pieslēgumu. Tas var būt diezgan dārgs prieks, ja braucat celojumā uz kādu valsti, kur mobilo sakaru operātors piedāvās izmantot data roaming pakalpojumu. Atceros, kad braucu pagājušajā vasarā uz Grieķiju, tad LMT par 1MB GPRS gribēja 10Ls un tas jau ir pilnīgs ārprāts. Nemaz “nerunājot” par to, ka vietās, kur interneta pieslēgums vispār nav peejams (dziļā mežā, pagrabā u.c.), vārdnīcas, kas izmanto interneta pieslēgumu vienkārši nedarbosies.

Otrkārt, ātrdarbība. Tas izriet no tā paša- mana programma neizmanto datu pieslēgumu un pēc būtības pieslēgties serverim caur datu kanālu vienmēr būs lēnāk, nekā slēgties datu bāzei, kas atrodas uz paša tālruņa.

Treškārt, “autocomplete” funkcija, jeb, citiem vārdiem sakot- mana programma diktē priekšā vārdus un izteicienus tiklīdz tiek ievadīti burti. Piemēram, vadot vārda sākumu “her”, no saraksta tiek piedāvāti vārdi “heraldika”, “herbicīds”, “herbārijs”, “hercogs” u.t.t. Jo vairāk burtu ievadīts, jo mazāks un precīzāks kļūst atlasītais saraksts. Neviena no programmām, kas izmanto datu kanālu šādu iespēju, cik zinu, nepiedāvā.

Nu un ceturtkārt- primitīvs interfeiss, kas ļauj maksimāli ātri ievadīt tulkojamos vārdus. Saprotams, ka dažām aplikācijām nepieciešams izskaistināts grafiskais noformējums, taču dažas aplikācijas esmu redzējis tik samudžinātas, ka tās kļūst nelietojamas. Dažreiz mazāk ir vairāk.

KĀ NORITĒJA IZSTRĀDE, NOSŪTĪŠANA UZ APP STORE U.C.

Par cik šī bija pirmā mana iPhone programma, tad pirms tādu izveidot man vajadzēja:
1) apgūt visus iPhone programmēšanas pamatus
2) pieteikties Apple par oficiālu iPhone izstrādātāju
3) tikt galā ar visu pārējo mudžekli, kas saistīts ar sertifikātu ģenerēšanu, programmas sūtīšanu uz App Store, u.c.

Sākums nebija viegls, bet tagad jau liekas, ka programmēšana priekš šīs platformas vairs nav tik neiespējama. Grūtākais bija izdarīt visu procesu no A- Z vienam pašam. Te gan jāsaka liels paldies manai meitenei, kas palīdzēja ar programmas ikonas zīmēšanu. Šķiet, ka diktējot savus uzstādījumus es pamatīgi viņu biju nokaitinājis, bet nu ceru, ka arī turpmāk viņa man palīdzēs :)

Labā ziņa ir tā, ka App Store akceptēja manu programmu ar pirmo reizi. Ne tik labi bija tas, ka akceptēšana noritēja akurāti 2 nedēļas. Pieļauju, ka tas saistīts ar iPhone OS 3.0 izlaišanu, un daudzo izstrādātāju jauninājumu vienlaicīgo sūtīšanu. Ceru, ka turpmāk akceptēšana notiks ātrāk.

KAS VĒL DARĀMS

Ir vairākas lietas, kas vēl darāmas un uzlabojamas. Minēšu pāris.

Pirmkārt, vēlos programmu padarīt vēl ātrāku. Šobrīd, vadot pirmos divus burtus vārdiem, kuru ar šiem burtiem ir ļoti daudz (piemēram, angļu valodā vārdi ar “st” ir vienkārši abnormāli daudz) – autocomplete aizņem kādu pussekundi. Gribu šo lietu atrisināt. Te gan jāteic, ka pašā vārdnīcā ir ap 70 000 vārdu vienā valodā, un salīdzinoši lēnajam, aptuveni 400 MHz iPhone procesoram tas jau tā ir ātri. Citi vārdi jau tagad parādās bez aiztures, bet, kā jau teicu- vēlos padarīt šo vārdnīcu vēl ātrāku.

Vēlos arī ieviest fīču, kas ļautu vārdnīcas izmantotājiem nosūtīt ziņu par vārdiem, kas vārdnīcā neatrodas, vai iztulkoti nepareizi. Šobrīd oficiāls veids ir epasts, bet tas ir neērti.

Vēl pamanīju, ka šobrīd pāris tulkojumi meklētājā neparādās dēļ interpunkcijas simboliem. Tā vairāk ir kā kļūda, kas jāizlabo.

Visbeidzot, visas savas aplikācijas laidīšu zem brenda “mellene.com“, tāpēc tam visam būtu jāizveido arī gaumīga mājas lapa. Diemžēl, viss kopā ir diezgan laikietilpīgi, tāpēc rezultāts nāk lēnāk, nekā kompānijās, kur strādā vairāki programmētāji, dizaineri, projektu vadītāji, finansisti u.c.

Visas šīs minētās lietas laidīšu ar jauninājumu 1.1.

NOBEIGUMĀ

Lai arī šobrīd iespraukties labāko izstrādātāju pulciņā ir ļoti sarežģīti un tirgus ir jau diezgan piesātināts, es tomēr centīšos savas idejas realizēt arī šajā, mobilo aplikāciju jomā. Ja tās nenesīs lielu peļņu, tad būšu vismaz piedalījies tajā, lai radītu lietojamus risinājumus Latvijas un pasaules tirgum. Arī personīgajam CV tas itin labi noderēs :)

Attiecībā uz turpmāko programmu izstrādi – taisīšu līdzīgus tulkojumus uz/no citām valodām, tā kā drīzumā varētu būt Angļu – Krievu valoda, u.c. Man ir arī vēl viena gandrīz vai pabeigta programma, kas būs vairāk noderīga visas pasaules lietotājiem. Redzēs, kā tas viss aizies.

Ja esi sekojis šim aprakstam līdz pašām beigām, tad pirmajam veiklākajam iPhone / iPod Touch īpašniekam es piešķiru promocijas kodu, ar kuru manis veidoto vārdnīcu ir iespējams lejupielādēt bez maksas. Te jāpiebilst, ka to iespējams izmantot tikai ar U.S. App Store veikala kontiem. Tātad, kods ir: “ARP3KXKHFRWH” (bez pēdiņām).

Starpcitu, es būtu ļoti priecīgs, ja tie kas šo vārdnīcu izmantos, varētu arī pozitīvi to novērtēt iekš App Store programmu “review” sadaļas. Apsolos labas idejas un ieteikumus arī realizēt.

Nu tad lai labi lietojas! :)

P.S. Par mūsu iPhone programmu jaunumiem vis ātrāk varēsi uzzināt Twitterī: http://twitter.com/MelleneApps

UWAGA!

Sobrīd App Store veikalā pieejams programmas jauninājums 1.2, kas novērš vairākas kļūdas, par kurām cilvēki rakstīja komentāros. Iekš uzlabotās versijas arī ir palielināts vārdu krājums un ieviesta fīča, kas ļauj nosūtīt jaunus vārdus/tulkojumus.