Konspekt pracy inżynierskiej Wydział Elektryczny Informatyka, Semestr VI Promotor: dr inż. Tomasz Bilski 1. Proponowany tytuł pracy inżynierskiej: Komunikator Gandu na platformę mobilną Android. 2. Cel pracy wraz z uzasadnieniem potrzeby realizacji Celem pracy jest zaimplementowanie protokołu Gadu-Gadu na platformę mobilną Android wraz z wykorzystaniem dostępnych funkcji systemu. Dodatkową funkcją realizowaną w Gandu będzie geolokalizacja użytkownika. W tym celu będzie zaimplementowany protokół oraz serwer umożliwiający wymianę informacji o lokalizacji użytkowników. Wraz z pojawieniem się na rynku systemu operacyjnego Android, zdobywającego coraz większą popularność wśród użytkowników, zaczęły pojawiać się aplikacje będące odpowiednikami programów powszechnie używanych na komputerach klasy PC. Pośród dostępnych komunikatorów, najbardziej popularny w Polsce Gadu-Gadu, również doczekał się swojej implementacji na tę platformę. Opracowana przez firmę GG Network S.A. aplikacja jest płatna i pozbawiona pewnych funkcji, np. rozmowy konferencyjne, archiwum rozmów. Program stworzony w ramach pracy inżynierskiej będzie darmowym rozwinięciem istniejącego już klienta Gadu-Gadu, działający na wszystkich telefonach wyposażonych w platformę Android w wersji 1.5 i wyższej. Proponowana nazwa aplikacji : Gandu. 3. Spis zadań szczegółowych: a) analiza protokołu Gadu-Gadu na podstawie biblioteki libgadu, b) analiza platformy Android od strony programisty, c) testowanie biblioteki libgadu otwarta biblioteka (język C), implementująca zamknięty protokół komunikatora Gadu-Gadu, d) opracowanie protokołu oraz serwera obsługującego dodatkową funkcjonalność programu (geolokalizacja), e) stworzenie modułu rejestracji i logowania użytkownika na serwerze, f) stworzenie modułu zarządzania statusem użytkownika,
g) zarządzanie listą kontaktów (dodawanie, edytowanie oraz usuwanie użytkowników), h) implementacja funkcji odpowiedzialnej za wysyłanie i odbieranie wiadomości tekstowych, i) sprawdzenie dostępności użytkowników z listy kontaktów, j) dostęp do katalogu publicznego, edytowanie publicznych danych użytkownika, k) wymiana plików między użytkownikami, l) import/eksport pliku z archiwum rozmów, m) funkcja geolokalizacji z wykorzystaniem modułu GPS i aplikacji googlemaps, n) przesyłanie zdjęć przechwyconych z aparatu telefonu o) widżet (dodatek do aplikacji uruchamiany przez użytkownika poprzez przeciągnięcie z bocznego menu na obszar roboczy urządzenia) 4. Wstępny spis treści z podziałem na rozdziały, podrozdziały, krótkim opisem zawartości i przypisaniem osób do poszczególnych rozdziałów oraz datami opracowania poszczególnych rozdziałów. Wstęp () 1) Wprowadzenie do platformy Android 1.1 Czym jest Android (Piotr Spyra 01.09.2010) Opis środowiska systemu operacyjnego Android. Architektura systemu wraz ze wspieranymi technologiami. Dostępne wersje systemu. 1.2 Dostępne funkcje platformy ( 01.09.2010) Wspierane moduły zewnętrzne. Funkcjonalność dostarczona z API (Application Programming Interface) platformy. Widżety. 2) Opis zamkniętego protokołu Gadu-Gadu 2.1 Format komunikatu oraz budowa nagłówka
2.2 Charakterystyka poszczególnych komunikatów 2.2.1 Komunikat rejestracji 2.2.2 Komunikat logowania 2.2.3 Komunikat zmiany statusu ( 15.09.2010) 2.2.4 Komunikat wysyłania wiadomości (Piotr Spyra 22.09.2010) 2.2.5 Komunikat odbierania wiadomości ( 22.09.2010) 2.2.6 Komunikat weryfikacji listy użytkowników ( 15.09.2010) 2.2.7 Komunikat wyszukiwania osób w katalogu publicznym (Piotr Spyra 29.09.2010) 2.2.8 Komunikaty służące do wymiany plików ( 29.09.2010) 3) Implementacja protokołu Gadu-Gadu 3.1 Rejestracja, logowanie użytkownika, 3.2 Zmiana statusu użytkownika, ( 15.09.2010) 3.3 Dodawanie, edytowanie oraz usuwanie użytkowników (zarządzanie listą kontaktów), 3.4 Wysyłanie i odbieranie wiadomości tekstowych, ( 22.09.2010) 3.5 Sprawdzenie dostępności użytkowników z listy kontaktów, ( 15.09.2010) 3.6 Dostęp do katalogu publicznego, edytowanie publicznych danych użytkownika, (Piotr Spyra 29.09.2010) 3.7 Wymiana plików między użytkownikami. ( 29.09.2010) 4) Implementacja dodatkowych funkcji aplikacji
4.1 Struktura protokołu obsługującego funkcję geolokalizacji ( 20.10.2010) Szczegółowy opis pól zawartych w nagłówku protokołu. Dostępne komunikaty protokołu. 4.2 Import/eksport pliku z archiwum rozmów ( 27.10.2010) Opis wykorzystywanych technologii do przechowywania danych (np. SQLite). 4.3 Funkcja geolokalizacji z wykorzystaniem modułu GPS i aplikacji googlemaps (Piotr Spyra 20.10.2010) System informowania wybranych użytkowników o lokalizacji rozmówcy, z wykorzystaniem zewnętrznego serwera geolokalizacyjnego. Prezentacja danych położenia drugiej osoby za pomocą interfejsu googlemaps bądź googleearth. 4.4 Przesyłanie zdjęć przechwyconych z aparatu telefonu (Piotr Spyra 27.10.2010) 4.5 Zaprojektowanie widżetu dla aplikacji ( 10.11.2010) Zakończenie (Piotr Spyra) Dostęp do najważniejszych funkcji programu z poziomu pulpitu systemu operacyjnego. Zarządzanie statusem, bezpośredni dostęp do okien aktualnie prowadzonych rozmów. 5. Listę narzędzi, języków do wykonania części praktycznej. a) środowisko programistyczne Eclipse RCP wraz zainstalowanym Android SDK oraz Eclipse ADT Plugin, język programowania Java. 6. Szczegółowy harmonogram prac (zadanie, data wykonania, osoba wykonująca). Zadanie/rozdział pracy Zapoznanie się z protokołem GG korzystając z biblioteki libgadu, testowanie poszczególnych modułów biblioteki Osoba wykonująca Data wykonania 26.04.2010 Wstępny (roboczy) interfejs użytkownika 17.05.2010
Implementacja klienta Gandu cz.1 ( rejestracja, logowanie użytkownika, dodawanie, edytowanie oraz usuwanie użytkowników (zarządzanie listą kontaktów) ) Implementacja protokołu Gadu Gadu cz.2 ( zmiana statusu użytkownika, sprawdzenie dostępności użytkowników z listy kontaktów ) Piotr Spyra 5.07.2010 5.07.2010 Implementacja protokołu Gadu Gadu cz. 3 ( wysyłanie i odbieranie wiadomości tekstowych ) 26.07.2010 Implementacja protokołu Gadu Gadu cz. 4 ( dostęp do katalogu publicznego, edytowanie publicznych danych użytkownika ) Implementacja protokołu Gadu Gadu cz. 5 (wymiana plików między użytkownikami ) Piotr Spyra 16.08.2010 16.08.2010 Projektowanie i implementacja protokołu obsługującego geolokalizację Piotr Spyra (serwer), (klient) 6.09.2010 Import/eksport pliku z archiwum rozmów (SQLite) 20.09.2010 Przesyłanie zdjęć przechwyconych z aparatu telefonu Piotr Spyra 20.09.2010 Implementacja funkcji geolokalizacji z wykorzystaniem modułu GPS i aplikacji googlemaps Projekt widżetu pulpitu dla aplikacji Testowanie aplikacji 11.10.2010 25.10.2010 Do końca grudnia 7. Wstępny spis literatury: 1. http://developer.android.com/resources/index.html dokumentacja SDK platformy Android ( wybrane rodziały ).