Aplicatii orientate pe comunicatia mobila

Cuprins

  1. Bluetooth/Wireless
  2. J2ME
  3. Android
  4. Asterisk
  5. Funambol

Laboratoare

L1 | L2 | L3 | L4 | L5 | L6 | L7 | L8 | L9 | L10 | L11 | L12
  • L1 (bluetooth)

    1. Care este relatia dintre protocolul bluetooth si protocoalele wireless?
    2. Prezentati pe scurt imbunatatirile aduse de specificatie Bluetotth 4.0.
    3. Ce probleme de securitate prezinta bluetooth?
    4. Enumerati trei produse ce folosec bluetooth.
    5. Dezvoltati o aplicatie VS/Java pentru detectarea de device-uri bluetooth. Aceasta salveaza intr-un fisier cat timp a stat un anumit device in raza detectorului, realizand scanarea o data la 2 minute.
  • L2 (bluetooth/wireless)

    1. Indicati pasii de interconectare a doua dispozitive folosind bluetooth
    2. Indicati pasi de conectare pentru doua dispozitive folosind conexiunea wireless
    3. Cum afecteaza tipul conexiunii (bloetooth/wireless/cablu de date) instalarea unei aplicatii pe dispozitivul mobil?
    4. Comparati componentele bluetooth in cazul Symbian si Windows Mobile Edition.
    5. Dezvoltati o aplicatie VS/Java prin care doua dispozitive interconectate efectueaza produsul a doua numere aleatoare. Primul dispozitiv propune un numar, cel de-al doilea un al doilea numar.
    6. Comparati pe scurt Symbian/Windows Mobile Edition/Android.
  • L3 (J2ME)

    1. Sa se dezvolte aplicatia de tip HelloWorld minimal (folosind linia de comanda).
    2. Sa se testeze aplicatia descrisa in curs (DateTimeApp).
    3. Care sunt starile unui MIDlet?
    4. Ce semnifica exceptia MIDletStateChangeException? Enumerati alte 3 exceptii.
    5. Precizati ce realizeaza metodele destroyApp si notifyDestroyed.
    6. Explicati rolul parametrului metodei destroyApp.
  • L4 (J2ME - comenzi/date persistente)

    1. Sa se dezvolte o aplicatie care implementeaza minim 3 comenzi. Sa se faca distinctie intre tipuri de comenzi.
    2. Sa se dezvolte o aplicatie care salveaza datele persistent. Exemplu: o lista de cumparaturi cu (numeprodus, cantitate, pretperbuc, valoare estimata)
    3. Prezentati clasa de lucru cu date persistente.
    4. Prezentati comparativ clasele de lucru cu ecranul.
    5. Descrieti la alegere clasa Canvas sau clasa Form sau clasa Screen
  • L5 (J2ME - fire de execitie/canvas )

    1. Sa se descrie clasa Thread pentru J2ME.
    2. Sa se descrie clasa GameCanvas.
    3. Sa se exemplifice folosirea blocului finally in cazul lucrului cu threaduri.
    4. Sa se scrie o aplicatie care implementeaza miscarea bilei pe o masa de biliard in forma dreptunghilara dreptunghiulara (intreg ecranul sau doar zona din ecran).
    5. Sa se scrie o aplicatie care implementeaza miscarea bilei pe masa de biliard de forma eliptica.
    6. Sa se implementeze reprezentarea a 3 fractali (Mandelbrot/Sierpinski/exemple fractali). Fractalii se vor calcula si reprezenta in paralel (folosind threaduri) cu un numar convenabil de iteratii. La apasarea unei comenzi se comuta de la un fractal la celalalt.
  • L6 (WAP - WML )

    1. Prezentati comparativ TCP/IP si WAP.
    2. Ce este un bearer? Care este legatura acestuia cu WAP?
    3. Implementati o pagina wml de test folosind PhP sau Java.
  • L7 (Android - SDK )

    1. Prezentati pasii de instalare Android.
    2. Sa se scrie o aplicatie de tip HelloWorld.
    3. Sa se prezinte pasii de rulare a aplicatiei Hello pe dispozitive diferite.
  • L8 (Android - Ciclu de viata)

    1. Prezentati diferenta intre serviciu (clasa Service) si activitate (clasa Activity).
    2. Descrieti clasa Intent
    3. Descrieti comparativ procesele si firele de executie.
    4. Sa se scrie o aplicatie care permite incarcarea unei imagini de la o anumita adresa URL (exemplu).
    5. Sa se scrie o aplicatie care reactioneaza diferit (afiseaza mesaje, imagini sau schimba culoare fundal) la apasarea unor butoane (exemple UI).
  • L9 (Android - Ciclu de viata)

    1. Prezentati ciclul de viata al unei activitati.
    2. Prezentati ciclul de viata al unui serviciu.
    3. Prezentati ciclul de viata al unui receptor.
    4. Implementati o aplicatie care afiseaza alerte la apasarea de butoane (alerte).
    5. Implemenatati o aplicatie Android care apeleaza un serviciu pentru adunarea a doua numere generate aleator la apasarea unei taste. Pe ecran se va afisa numerele generate si suma acestor numere.
  • L10 (Android - Notepad)

    1. Sa se dezvolte o aplicatie Android de tip Notepad .
    2. Prezentati procesul de debug al unei aplicatii Android.
    3. Prezentati definirea unui stil (stiluri si teme).
    4. Modificati stilul implicit al aplicatiei notepad dezvoltate.
  • L11 (Funambol - optional)

    1. Indicati pasii de instalare si confiurare server Funambol (open source).
    2. Prezentati pasii de sincronizare contacte din Outlook cu serverul configurat.
    3. Scrieti un program PHP/JAVA care pe baza SyncML sa realizeze autentificarea pe serverul Funambol.
  • L12 (Asterisk - optional)

    1. Sa se prezinte pasii de instalare si configurare a serverului Asterisk (open source).
    2. Sa se prezinte pasii de creare a doi utilizatori.
    3. Indicati pasii de configurare a unui telefon soft si realizarea unei convonbiri prin intermediul serverului (se poate atasa si fisiere log pentru exemplificare).
    4. Prezentati modalitati de a interconecta serverul Asterisk (centrala soft) cu o retea de telefonie fixa sau mobila. Ce echipamente sunt necesare?

Nota examen

  • Nota finala se compune din
    1. Nota examen scris (50%)
    2. Nota laborator (50%)
      • - nota teme de laborator
      • - nota referat tehnologie mobila
      • - proiect aplicatie mobil (JEE + RESTfull Web Services + Android - 1-3 studenti intr-o echipa)

Observatii

  1. Unelte recomdate pentru realizare filme:
    1. ShareX
      1. permite realizarea de capturi de ecran si adnotarea imaginilor obtinute
      2. permite inregistrarea ca film a zonelor de ecran selectate
  2. Orice tip de documentatie se va tehnoredacta in latex folosind MikTex si TeXnicCenter plecand de la acest sablon .
  3. Descarcare exemplu de prezentare latex ce foloseste pachetul foils .
  4. Detalii prezentare/film:
    1. rezolutie 800x600 - deoarece filmul este destinat utilizarii/vizualizarii cu ajutorul browserului, acesta trebuie sa incapa convenabil intr-o fereastra fara ca utilizatorul sa fie nevoit sa realizeze ajustari de rezolutie sau redimensionari pentru a-l urmari
    2. pe desktop nu vor fi schortcut-uri inutile - la realizarea filmului se curata ecranul si se seteaza un fundal implicit (albastru) pentru a nu distrage atentia de la continut (scenariu de utilizare utilitar prezentat)
    3. contine slide de titlu - primul slide contine un titlu si o descriere a continutului filmului.
    4. cel putin o nota pe fiecare slide - pe fiecare cadru din film se va scrie atat cum fac? cat si ce fac?
    5. fara sonor
    6. atentie la miscarile de mouse - daca nu sunt consistente sunt eliminate din film
    7. ca si regula de stil trebuie avut in vedere ca un astfel de film se adreseaza atat persoanelor cu pregatire informatica cat si celor fara pregatire informatica - orice persoana interesata trebuie sa inteleaga ce face si cum reproduce ceea ce se prezinta in film.
  5. Pentru fiecare tema de laborator se primeste o nota de la 1 la 10.
  6. Se penalizeaza orice teme care nu respecta indicatiile de la laborator si nu implementeaza elementele prezentate in laboratorul respectiv.

Resurse online

  1. http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. http://netbeans.org/
  3. http://www.funambol.com/
  4. http://developer.android.com/sdk/index.html
  5. http://www.eclipse.org/
  6. http://www.oracle.com/technetwork/java/javame/downloads/index.html