1. DrawMe
DrawMe
Wieloosobowy chat
oparty o
whiteboard’y
2. Opis projektu
• Możliwość prowadzenia wielu niezależnych rozmów z poszczególnymi
użytkownikami
• Rozmowa przybiera formę rysowania na tablicy
• Rysowanie prostych figur geometrycznych – linie, łamane, prostokąty, elipsy
– oraz kreślenie dowolnych kształtów w trybie „wolnego” rysowania
• Wybór koloru i szerokości linii oraz wypełnienia wielokątów
• Przesyłanie tekstu – wybór rodzaju, stylu i wielkości czcionki
• Dostępność cofania ostatnio wykonanego ruchu
• Czyszczenie tablicy
3. Architektura rozwiązania
W ramach projektu powstały:
• Aplikacja kliencka zrealizowana pod system
operacyjny Bada
• Aplikacja serwera zrealizowana w języku C+
+ przy wykorzystaniu framework’u
wxWidgets
• Komunikacja odbywa się poprzez stworzony
przez autora projektu protokół
4. Funkcjonalność aplikacji
• Po uruchomieniu aplikacji pojawia się
formularz logowania
• Użytkownik podaje unikalny nick – w
przypadku jego zajętości system
informuje o zaistniałej sytuacji i prosi o
zmianę nazwy użytkownika
5. Funkcjonalność aplikacji
• W dalszej kolejności jesteśmy informowani
o obecnie zalogowanych użytkownikach
• Po dokonaniu wyboru rozpoczynamy
rozmowę z wybranym użytkownikiem
6. Funkcjonalność aplikacji
• Rozmowa przebiega poprzez
naprzemienne modyfikowanie
tworzonych rysunków
• W dowolnym momencie możemy
zakończyć chat lub przejść do listy
dostępnych użytkowników
7. Funkcjonalność aplikacji
• W trakcie rozmowy użytkownik ma możliwość
modyfikacji właściwości prymitywów
geometrycznych wykorzystywanych do
tworzenia rysunku
• Stworzona przez „nadawcę” grafika powstaje u
„odbiorcy” zgodnie z ustawieniami graficznymi
„nadawcy”, nie modyfikując jednocześnie
ustawień „odbiorcy”
8. Funkcjonalność aplikacji
• Zarządzanie otwartymi połączeniami odbywa się
za pomocą dodatkowego panelu
umożliwiającego kontynuację lub zamknięcie
rozmowy z wybranym użytkownikiem
• Zmiany wprowadzone do rysunku przez naszego
rozmówcę w czasie, gdy chatowaliśmy z innym
użytkownikiem będą widoczne, gdy wznowimy
rozmowę
• Po zamknięciu chatu z wybranym użytkownikiem
możemy wznowić z nim rozmowę korzystając z
listy osób dostępnych on-line
9. Problemy implementacyjne
• niezgodność działania aplikacji na emulatorze i rzeczywistym
urządzeniu
• mało dokładna dokumentacja fragmentu API dotyczącego
implementacji komunikacji sieciowej – konieczność
eksperymentalnego badania działania poszczególnych metod
• nieudokumentowana błędna współpraca niektórych metod
• niezrozumiałe zachowania IDE
• doprowadzenie własnego protokołu do w pełni prawidłowego
funkcjonowania