De cand am inceput sa scriu in acest blog am observat ca nu am zis mai nimic despre aplicatiile pe care le-am scris. Asadar, in acest entry ma voi ocupa de Mobile Tracking System, unul din cele mai populare proiecte la care am lucrat vreodata.
Totul a inceput fix acum un an (give or take a few days)… oricum a fost aproape de Craciun. In vremea aia de abia incepusem sa scriu aplicatii pentru telefoanele mobile. Eu la vechiul telefon – the trusty Siemens A50 care si acum merge perfect (il foloseste tata) aveam mereu busola Connex activata. Pe SPV din motive care imi scapa, nu se poate activa cell broadcastingul. Eu inteleg ca Orangeul nu are acest serviciu public, dar chiar au simtit nevoia sa-l zmulga pur si simplu din OS? Stiu sigur ca alte telefoane HTC suporta… dar nu si “Orange” SPV C600. In fine, si stateam eu in acea noapte pe google si siteuri de specialitate incercand sa gasesc un registry hack or something si am dat de niste posturi despre acoperire GSM in diferite tari. E… si din una in alta a inceput sa se contureze ideea despre un soft care sa poata sa-ti zica unde esti in baza informatiilor primite de la reteaua GSM.
Mobile Tracking System este un proiect client / server scris in intregime de catre Fightersoft Multimedia SRL. Mobile Tracking System nu foloseste nici un fel de componente 3rd party, absolut totul este scris de catre noi in house. Proiectul insumeaza aproximativ 60.000 linii de cod scrise in 6 limbaje de programare de pe toate platformele. Serverul este bazat pe un puternic engine de comunicare special dezvoltat pentru acest proiect. In dezvoltarea sa, s-a pus accentul in mod deosebit pe multithreading – capacitatea de a servi un numar foarte mare de clienti simultan. O alta componenta vitala a serverului este engineul de database proprietar (nu se foloseste SQL sau ceva similar) si el optimizat foarte mult pentru a functiona cat mai eficient intr-un regim multithreading. Clientii sunt momentan doi, urmand ca al3lea sa-si faca aparitia in viitorul foarte apropiat. Clientul pentru platforma Windows Mobile este scris in VB.NET, C# si C++, insumeaza 21 de ferestre si kitul de instalare are ~700 kb. Clientul pentru platforma J2ME ofera doar functiile de mesagerie din MTS, aflarea locatiei telefonului fiind imposibil de facut sub J2ME din cauza limitarilor extreme ale platformei. Acum cateva zile am inceput researchul serios in dezvoltarea clientului pentru Symbian. Pana acum nu m-am miscat prea mult pentru ca telefonul Symbian de care dispuneam – Nokia N-Gage QD este un S60 1st edition, iar toolurile de dezvoltare pentru aceasta versiune sunt arhaice. Cele noi, nu suporta 1st edition asa ca a trebuit sa recurgem la achizitionarea unui telefon S60 2nd edition pentru a dezvolta in conditii optime clientul MTS pentru Symbian. O mare problema de care ne lovim in ceea ce priveste softul dezvoltat pentru dispozitive mobile este nevoie de certificate care se cumpara. In acest moment nu ne permitem achizitionarea a cate unui certificat pentru fiecare platforma… costurile totale ridicandu-se pe la aproximativ 1000 EUR. Cu toate acestea, MTS se poate folosi intrucat un numar mare de utilizatori isi decertifica telefoanele special pentru a rula aplicatii 3rd party precum este MTS. Clientii comunica cu serverul prin GPRS. Tot sistemul a fost conceput special sa functioneze chiar si cu serviciile de gen wap de la operatorii de telefonie mobila astfel incat costurile folosirii MTSului sa fie minime. In orice caz, traficul generat de MTS este extrem de mic (cativa bytes per tranzactie). Folosit in fiecare zi, la o comunicare automata din 10 in 10 minute, MTSul consuma aproximativ 500 kb pe luna – cu mult sub cei 10 mega inclusi in mai toate ofertele GPRS de pe la noi.
Ok… destul tech stuff… hai sa va arat si ce puteti face MTS:
Localizarea
Mobile Tracking System afiseaza pe homescreenul telefonului locatia curenta.
Pot de asemenea sa vad ce locatii mai sunt prin jurul meu accesand facilitatea Net Monitor.
Am acces la un volum impresionant de informatii in functie de locatia in care ma aflu. In meniul Info Location gasesc poza locatiei (exemplu pentru locatia HR Lacu Rosu, Lacu Rosu poza, pot vedea ce utilizatori MTS au mai trecut prin zona si daca este cineva cunoscut acum in aceeasi zona cu mine (exemplu), pot lasa mesaje pentru alti utilizatori care vor trece prin zona – pot chiar sa atasez si poze mesajului (exemplu) si pot obtine informatii despre transportul in comun (ce linii de autobuze / tramvaie / troleibuze) circula prin zona.
Un exemplu de functionare a facilitatii “public transport”
Sa zicem ca eu sunt din provincie si am ajuns in Bucuresti. Ma aflu in Piata Victoriei si trebuie sa ajung la Aviatorilor. Ma uit pe homescreenul telefonului – voi vedea locatia mea.
Merg in meniul public transport (Options – Info Location – Public Transport).
Vad ce mijloace de transport in comun am la dispozitie. Selectez o intrare si apas Options – Info.
MTS imi afiseaza intregul traseu al liniei de transport public (in acest caz Magistrala 2 Metrou). Voi observa cu usurinta ca trebuie sa iau metroul M2 o statie.
Una dintre cele mai folosite functii alte clientului MTS ramane functia Find User. Foarte simplu de folosit, va arata unde se afla un alt utilizator MTS.
Pot sa beneficiez si de un raport detaliat cu ultimele 500 de locatii prin care respectivul utilizator a ajuns – exemplu. In acest scop am scris chiar si o aplicatie pentru Windows (desktop) cu care puteti trimite mesaje (ajung si la asta mai tarziu) si sa localizati prieteni. Aplicatia se numeste Star Remote Mail si este in principiu un client de mail. Am ales sa integrez functii MTS in aceasta aplicatie pentru ca este in principiu o aplicatie destinata comunicarii si ruleaza permanent in background.
MTS poate functiona si folosind un receiver GPS. Cu un astfel de device veti putea vedea pe harta locatia voastra
- exemplu (click satellite si zoom out).
O alta facilitate interesanta este cea de notificare prezenta. Cand un prieten (utilizator MTS specificat in prealabil) se afla in aceeasi zona telefonul va poate anunta audio sau prin vibratie si va afisa pe homescreen “/ is in the area”.
De asemenea, mai beneficiati si de alte “extra optiuni” cum ar fi Set Status si Set Reminder. Primul va da posibilitatea sa va setati un status (similar cu Yahoo si restul) care va expira in n ore. Spre exemplu, cand plecati in concediu la munte scrieti ceva gen “in vacanta spre Sinaia” si cei care va localizeaza vor vedea acest status pe parcursul intregului traseu. Set Reminder va da posibilitatea sa specificati o locatie in care MTS sa va anunte ca ati ajuns. Nu trebuie sa scrieti numele locatiei intregi. Spre exemplu cand vin din oras, ca sa nu uit sa cumpar maruntisuri de la chioscul de langa casa, pot sa-mi pun un reminder pe “pajura” in care sa scriu “cumpara paine, cola si ziarul” si cand voi intra in zona locuintei mele din Pajura voi fi anuntat.
Cu MTS puteti de asemenea sa afisati locatia voastra in timp real pe forumuri sau bloguri. Exemplu:

Mesageria
MTS ofera practic 3 tipuri de mesaje: analogul SMSului, analogul MMSului si e-mail. De ce spun analog? Pentru ca functioneaza exact la fel (chiar fara limitarile specifice SMSurilor gen maxim 160 caractere) doar ca merge doar intre utilizatorii MTS (nu pot trimite un SMS din MTS catre altcineva care nu foloseste MTS). Mesajele pot fi compuse din aceeasi fereastra atat destinate altor utilizatori MTS cat si catre o casuta de mail. Exista posibilitatea de a folosi contactele din memoria telefonului pentru a obtine automat adresa de mail. Dupa scrierea mesajului, pot sa adaug atasament. Atasamentul poate sa fie orice fisier din memoria telefonului sau de pe storage card (jpg, mp3, jar, cab, exe etc). Puteti de asemenea sa folositi camera telefonului pentru a captura si a atasa poza automat.
Pentru a putea primi mailuri pe telefonul mobil trebuie sa beneficiati de un serviciu cu functia de forward (gen GMail). Adresa pentru a primi mailuri in MTS este username@193.93.142.95 (in curand vom achizitiona un domeniu pentru MTS si IPul va fi inlocuit de un nume propriu). Mesaje mai puteti primi / trimite si folosind pagina MTS Services – http://www.fightersoft.ro/mts/services.php sau aplicatia Star Remote Mail descrisa mai sus. Toate acestea sunt disponibile si pentru utilizatorii apn wap… MTS fiind singurul serviciu care permite comunicarea e-mail printr-un cont POP3.
Mobile Tracking System functioneaza si offline. In caz ca nu dispuneti de o extraoptiune GPRS (apn internet sau wap) puteti folosi MTS offline. El va memora locatiile prin care mergeti si va va da posibiltatea sa adaugati locatii noi sau sa le editati. In mod online MTS comunica cu serverul odata la n minute (n se poate specifica in Options – Timers). Defaultul este de 5 minute. In acest interval, MTS afiseaza locatia curenta din baza de date locala in caz ca aceasta se schimba – adica pe homescreen nu o sa vedeti unde ati fost acum 5 minute ci unde sunteti in acea secunda. La inceput, pana se populeza baza de date locala, MTS va comunica cu serverul mai des de 5 minute, practic de fiecare data cand va aflati intr-o zona in care ati fost prima oara. Aveti posibilitatea sa adaugati pe loc o locatie noua sau sa editati una care nu ofera informatii complete despre zona in care va aflati.
Si asta nu e tot… mai sunt o gramada de facilitati, dar din lipsa de timp nu voi intra acum in ele. De asemenea, exista o gramada de noi facilitati si optimizari care vor fi implementate in versiunile viitoare. Therefore stay tuned!
Puteti afla mai multe despre Mobile Tracking System vizitind homepageul MTS la adresa http://www.fightersoft.ro/mts/index.htm. Tot de acolo veti putea downloada clientul MTS in functie de platforma telefonului vostru. Pentru cei dintre voi care nu dispuneti de un telefon compatibil cu MTS puteti viziona un clip avi (a se rula pe PC) – download. Mobile Tracking System a fost foarte bine primit de presa romaneasca si de vizitatorii standului nostru la TIB 2006, salonul Inventika. Va rugam vizitati press roomul nostru – http://www.fightersoft.ro/press/index.htm. Tot de aici puteti descarca si prezentarea MTS sustinuta in cardul Forum IT 2006 la Izvorul Muresului.
La un an dupa ce am scris prima linie de cod, MTS este folosit pe aproximativ 90 de operatori de telefonie din intreaga lume. Speram ca dupa lansarea versiunii Symbian, popularitatea proiectului sa creasca si mai mult!
As dori sa aflu si parerile voastre despre Mobile Tracking System! Va rog lasati un mesaj aici sau pe forumul nostru de discutii – http://www.fightersoft.ro/forum/index.php
Va doresc un Craciun fericit, multa sanatate si sa fiti iubiti!
Start Slide Show with PicLens Lite
TARE DE TOT daca e functionala… sau va ajunge 100%. Spargeti piata celorlalte telefonii mobile cu optiuni asemanatoare dar cu costuri f mari..vor incerca sa va opreasca sau sa va cumpere.
- M-ar interesa si o aplicatie pentru PC (computer) cu care poti face o locatie (sau celelalte optiuni) a unui telefon pe care e instalat MTS
- Exista aplicatie MTS si pentru mobile mai vechi, doar cu java ca operare? daca da, care sunt optiunile programului disponibile pt asa ceva?
Aplicatia exista si e 100% functionala. Mai multe detalii la http://mts.fightersoftinc.com (inclusiv informatii despre localizarea unui telefon de pe PC – vezi sectiunea web2mts). Momentan lucram la versiunea pentru Symbian 3rd edition, pentru Java inca nu avem ceva disponibil.