Ozarkfalls

Przejrzysty i wygodny w obsłudze interfejs graficzny znacząco zwiększa komfort korzystania z aplikacji, nawet, gdy chodzi o specjalistyczne oprogramowanie. To właśnie cechuje Ozark Falls –projekt nowego oprogramowania, którego celem jest dostarczenie dedykowanego rozwiązania do planowania i kontroli prac terenowych robotów wojskowych.

Technologie

Popularnym sposobem kontroli robotów i dronów jest stworzenie dedykowanej aplikacji, działającej jako panel sterowania. Dzięki temu użytkownik nie musi wyposażać się w dodatkowy osprzęt, a programiści mogą korzystać z wielu przydatnych funkcjonalności dostępnych w tabletach, smartfonach i wielu innych nowoczesnych urządzeniach. Naszym celem było stworzenie aplikacji będącej w stanie pobierać potrzebne informacje od zdalnego urządzenia, wyświetlać je w czytelny dla użytkownika sposób, jak i również wysyłać wskazane polecenia. Wszystko w prosty i przyjazny użytkownikowi sposób. 

Jeżeli chcesz się bliżej przyjrzeć tworzeniu takiej aplikacji przy użyciu Qt, czytaj dalej!

Nasze zadania 

Projekt docelowo miał być dostarczony w formie MVP (Minimal Value Product). Oznacza to, że najważniejsze funkcje programu mają być w pełni sprawne, przy czym programiści mniej skupiają się na wyglądzie aplikacji. Innymi słowy, ważniejsze jest zapewnienie poprawnego działania, aniżeli wyglądu produktu.

Każdy z projektów zaczyna się od sporządzenia listy wymaganych funkcji, a także od pogrupowania zadań na odpowiednie kamienie milowe. Kluczowym elementem, który pozwoli określić wymagania dotyczące projektu, jest sprawna komunikacja z klientem. To właśnie dlatego przed rozpoczęciem implementacji oferujemy zleceniodawcy usługi konsultacyjne, tym samym zapewniając, że proces produkcji oprogramowania przebiega bezproblemowo. Aby zapewnić jak najwyższą jakość każdego z finalnych produktów, co określony czas dostarczamy klientowi gotowe do użytku, usprawniane o kolejne funkcjonalności instalatory aplikacji, aby na ich podstawie mógł ocenić co wymaga ulepszenia. W ten sposób możemy stale dostosowywać produkt do uwag klienta, nie przerywając przy tym procesu tworzenia aplikacji.

Aspekty technologiczne 

Funkcją o najwyższym priorytecie była interaktywna mapa będąca centralnym elementem aplikacji. Wbudowane w Qt biblioteki pozwoliły nam szybko ją wdrożyć, redukując tym samym koszty aplikacji.

Qt pozwala na łatwe dodanie własnych elementów do mapy przy użyciu gotowych komponentów QML – wystarczy jedynie odpowiednio je skonfigurować. W przypadku Ozark Falls dodaliśmy do niej punkty, do których robot miał się udać, a także ikonę określającą  jego aktualne położenie. Aby zapewnić poprawność wyświetlanych danych użyliśmy bibliotek Qt Positioning oraz Qt Location. Przy użyciu odpowiednich pluginów dostarczonych wraz z Qt, dodanie powyższych funkcjonalności było znacznie ułatwione – ich podstawowa implementacja zajmuje zaledwie kilkanaście linijek kodu.

Mapa musiała obsługiwać widok z satelity, a także buforowanie w trybie offline. Funkcjonalności te mogą wydawać się skomplikowane, a co z tym idzie również kosztowne. Nie jest tak jednak, gdy korzysta się z Qt. Pluginy Qt Location dały nam szeroki wybór map, z równie bogatym zakresem funkcjonalności. Aktywacja widoku satelitarnego i buforowania pamięci podręcznej wymagała dodania jedynie kilku linijek kodu w obiekcie Plugin.

 

Ozarkfalls - ekran głowny

Aplikacja musiała dawać szybki dostęp do tras zapisanych w pamięci robota, a także możliwość ich modyfikacji. Wymagana była więc stabilna, obustronna komunikacja. To właśnie dlatego wdrożyliśmy połączenie bazujące na protokole TCP. Dlaczego akurat takie rozwiązanie? Protokół TCP zapewnia bezstratność wysyłanych danych, przy jednoczesnej możliwości ich odbioru od robota.

 

Ozarkfalls - panel połączenia z robotem

W celu zapisywania lokalizacji punktów trasy, mapa musiała bazować na niestandardowym modelu. Dzięki temu użytkownik może swobodnie tymi punktami zarządzać: zmieniać ich kolejność, dodawać nowe, czy usuwać zaznaczone. Wszystkie zmiany są od razu widoczne na mapie.

 

Ozarkfalls - lista punktów trasy

Interfejs graficzny aplikacji został stworzony w całości w języku QML (Qt Markup Language) z modułu QtQuick. Jest to deklaratywny język programowania, dzięki któremu mogliśmy szybko i łatwo stworzyć piękny oraz responsywny interfejs z płynnie działającymi animacjami.

Dlaczego Qt?   

Jedną z większych zalet Qt jest jego wydajność obliczeniowa i pamięciowa. Pozwala to na tworzenie aplikacji na każdy typ urządzenia – nawet na urządzenia wbudowane. Aby zapewnić szybkie i wydajne działanie aplikacji, logikę i zarządzanie plikami wykonaliśmy w języku C++. Qt dostarcza odpowiednie narzędzia, dzięki którym można wykorzystać tak stworzoną logikę w języku QML. W ten sposób połączyliśmy szybkie i niezawodne działanie C++ z intuicyjnym i responsywnym interfejsem użytkownika stworzonym w QML. Aplikacja docelowo ma działać na tabletach z systemem Windows, jednakże, z racji, iż jest to aplikacja bazująca na Qt, można ją uruchomić również na systemach Android lub iOS bez żadnych zmian w kodzie źródłowym.

Jeżeli zastanawiasz się jak wydać swoją własną aplikację w Qt na system Windows, koniecznie zapoznaj się z poniższym wpisem na naszym blogu:

https://scythe-studio.com/blog/deploying-app-and-generating-offline-installers-for-windows-qt-installer-framework-tutorial

 

Wczytywanie opinii klienta… 100%!   

Sprawdź, co o aplikacji sądzi nasz zleceniodawca Chris:

„Zleciłem Scythe-Studio pracę nad projektem mapy sterującej robotami i jestem bardzo zadowolony z wyniku. Bazując na moich luźnych wymaganiach stworzyli dobrze zorganizowany harmonogram i listę kamieni milowych, a następnie z powodzeniem je osiągnęli. Część tego projektu wymagała wdrożenia schematu komunikacji, aby porozumiewać się z robotem w terenie. Obawiałem się, że ta część projektu będzie stanowić poważne wyzwanie, niezależnie od tego, jaką firmę wybiorę. Byłem bardzo miło zaskoczony, gdy zespół Scythe-Studio bezbłędnie wdrożył tę część projektu już przy pierwszym podejściu. Dobra robota!”

Podsumowanie 

Spróbuj odpowiedzieć na poniższe pytania:

  • Czy potrzebuję aplikacji?
  • Czy chcę wdrożyć nietypowy pomysł w moim projekcie?
  • Czy chcę, aby moja aplikacja była wydajna?
  • Czy chcę, aby mój program posiadał przyjazny użytkownikowi, responsywny wygląd?

Jeżeli na chociaż jedno pytanie odpowiadasz twierdząco, skontaktuj się z nami.

W Scythe-Studio wierzymy, że każdy pomysł da się przekształcić w wydajne oprogramowanie.