Strona główna Daj Się Poznać 2017 SandwichBoxBot – wstępna wersja aplikacji mobilnej

SandwichBoxBot – wstępna wersja aplikacji mobilnej

0
SandwichBoxBot – wstępna wersja aplikacji mobilnej

Początek ostatniego miesiąca konkursu Daj Się Poznać 2017 już za nami. Nieuchronnie zbliżamy się do finału. Mój projekt również co raz większymi krokami zbliża się do fazy MVP.

W jednym z pierwszych postów, określiłem swoje MVP jako jeżdżący robot, którym będę mógł posterować ręcznie ze smartfona. Ostatnim elementem, nie zaczętym do tej pory, była właśnie aplikacja mobilna. Zdecydowałem się na skorzystanie z Xamarin FORMS, bo jest to technologia w którą chciałbym zainwestować trochę czasu, żeby ją lepiej poznać. SBBotMobile jest w zasadzie pierwszą moją aplikacją w Xamarin FORMS, która jest nie-testowa i nie-kursowa, a w której zbieram w całość kilka funkcjonalności.

Poniższy screen przedstawia (w emulatorze Androida) wstępne, bardzo kwadratowe, UI które przygotowałem. Na chwilę obecną traktuję to jako taki place-holder. Zdaję sobie sprawę, że to co przygotowałem nie spełnia nijak standardów dobrego mobilnego UI, a co gorsza nie skaluje się w Landscape. Ponieważ jednak modyfikacja UI w Xaml-u jest niezwykle wygodna i kompletnie nie inwazyjna w pozostałą część kodu, UI zostanie z pewnością przeprojektowane w późniejszym czasie.

Jeżeli chodzi o kwestie implementacyjne to większość kodu napisanego dla wersji WPF spokojnie można było przenieść do Xamarin FORMS. Nie było też żadnego problemu z biblioteką ZeroConf  działa dokładnie tak samo jak w wersji desktop. Pojawiły się natomiast dwa inne problemy:

WebClient, którego ze względu na jego prostotę wykorzystywałem w aplikacji desktopowej nie ma swojego bezpośredniego odpowiednika w Mono i w związku z tym byłem zmuszony skorzystać z HttpClient. Na szczęście jest to niezwykle prosta w obsłudze biblioteka i przeróbka w tej części nie była kłopotem. HttpClient nie jest częścią Xamarin FORMS ale można go doinstalować przez nuget

Drugim problemem okazał się UdpClient, który również nie posiada implementacji możliwej do wykorzystania z PCL. Oczywiście można się pokusić o interfejsową abstrakcję części kodu i implementować samą obsługę połączenia dla każdej z platform osobno. Ja jednak jestem trochę leniwy (ponoć to całkiem dobra cecha u programistów 🙂 ) i znalazłem bibliotekę, która zrobiła to za mnie.

Aplikację póki co testowałem jedynie z emulatorem Androida. Poniżej gif prezentujący aplikację mobilną w akcji, zrobiony dokladnie na wzór gif-a którego przygotowałem pokazując aplikację desktopową.

Aktualny kod oczywiście na github.

Do zrobienia pozostało:
  • dokończenie aplikacji mobilnej
  • drobne przeróbki konstrukcyjne robota
  • rozwiązanie problemu opóźnienia reakcji na ramkę UDP po stronie ESP8266
  • doszlifowanie trybu automatycznego robota.

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj