loading

blog

Przedstawiamy Findlo! Nowy framework do Rozszerzonej Rzeczywistości dla systemu iOS

wróć

W mobitouch promujemy innowacje na każdym poziomie. Nie tylko w projektach, które realizujemy dla naszych klientów, ale także w wewnętrznych inicjatywach podejmowanych przez naszych pracowników. Najnowszym osiągnięciem naszego programisty iOS Damiana Dudycza, jest opracowanie Findlo, frameworku dla systemu iOS, który umożliwia budowanie aplikacji mobilnych zawierających moduł rozszerzonej rzeczywistości (AR), w oparciu o lokalizację użytkownika i cele zlokalizowane na świecie.

Chcesz się dowiedzieć więcej na temat tego ekscytującego projektu, który naszym zdaniem może zrewolucjonizować rozwój aplikacji mobilnych opierających się na technologii AR? Jeśli tak, zachęcamy do lektury!

Dlaczego warto korzystać z Findlo?

Dzięki Findlo, programiści mogą tworzyć aplikacje za pomocą modułu AR w ciągu zaledwie kilku godzin! Mogą korzystać z wielu gotowych źródeł danych i typów multimediów do wyświetlania i natychmiastowego wdrażania ich w aplikacji. Ponadto, platforma nie wymaga żadnej zaawansowanej wiedzy na temat programowania i jest bardzo łatwa do implementacji. Findlo działa także na urządzeniach starszych niż iPhone 6s – podczas gdy podobne rozwiązania oparte jedynie na ARKit nie oferują takiej możliwości.

Findlo – kluczowe funkcjonalności

Findlo opiera się na trzech modułach:

  • Moduł AugmentedReality – jest to główny moduł Findlo, zawiera widok wyświetlający rzeczywistość rozszerzoną, do którego wystarczy wstawić obiekty do wyświetlenia,
  • Moduł `World` – moduł ten pozwala na łatwe zarządzanie obiektami w prawdziwym świecie otaczającym użytkownika. Ułatwia tworzenie nowych źródeł danych dla tych obiektów i zarządza nimi.
  • Moduł LocationService – zajmuje się przetwarzaniem lokalizacji użytkownika.

Skupmy się na silniku AR Findlo i jego kluczowych funkcjonalnościach:

  • Umożliwia wyświetlanie różnych typów mediów (modele 3D, napisy, zdjęcia).
  • Programiści mogą również zdefiniować nowy typ mediów, które będą wyświetlane w dowolny sposób.
  • Findlo zajmuje się także rozmieszczaniem obiektów – obiekty otaczające użytkowników są wyświetlane w ich aktualnej, rzeczywistej pozycji.
  • Framework umożliwia grupowanie nakładających się obiektów.
  • Pozwala na wyświetlanie „chmurek” zamiast obiektów – jeśli znajdują się daleko od użytkownika.
  • Umożliwia określenie przedziału odległości, w jakiej obiekt jest wyświetlany – na przykład, jeśli użytkownik jest za daleko lub zbyt blisko obiektu, staje się zbyt duży lub zbyt mały, aby w dobry wizualnie sposób przedstawić jego ekspozycję. Dlatego dobrym pomysłem jest ograniczenie wyświetlanej odległości, a Findlo pozwala to zrobić.
  • Findlo określa również pozycję słońca względem użytkownika, aby umożliwić wyświetlanie realistycznych cieni obiektów.
  • Zawiera również trzy tryby wyświetlania pozycji pionowej (wysokości nad poziomem morza) obiektów: podana wartość bezwzględna, pozycja względem urządzenia (smartfona), pozycja względem podłogi.
  • Pozwala na dostosowanie oświetlenia zgodnie z jego faktycznym poziomem (funkcja ARKit).
  • Umożliwia rzeczywistą reprezentację ruchu za pomocą VIO (visual interial odometry) (ARKit).
  • Findlo może wykrywać ściany, które mogą zasłaniać wyświetlane obiekty (ARKit).

Findlo AR Framework

Moduł AR – szczegóły technologii

Moduł rozszerzonej rzeczywistości w Findlo zawiera 3 silniki, które mogą być dowolnie wybrane przez programistów. Różnią się nieznacznie swoimi możliwościami i technologiami wykorzystywanymi do wyświetlania obiektów.

Oto krótki przegląd:

  • Silnik oparty na ARKit – ma największe możliwości, ale zużywa najwięcej procesora / baterii i działa tylko na urządzeniach iPhone 6s oraz nowszych,
  • Mechanizm oparty na SceneKit – może wyświetlać te same typy mediów co ARKit, ale nie zawiera funkcji specyficznych dla ARKit, takich jak VIO, wykrywanie ścian i wykrywanie oświetlenia. Może także działać na starszych urządzeniach i zużywa znacznie mniej zasobów,
  • Silnik oparty na UIView – lekki silnik, który wyświetla tylko media dwuwymiarowe. Zużywa najmniej zasobów, ale nie możemy wstawić do niego modelu 3D.

Jak działa Findlo?

Aby wyświetlać obiekty w Rzeczywistości Rozszerzonej, należy najpierw dostarczyć je do silnika. Można to zrobić bezpośrednio, ale lepszym sposobem jest połączenie modułu AugmentedReality z modułem World. Wówczas wszystkie obiekty są automatycznie rzutowane na obiekty AR i wyświetlane w aplikacji.

W przypadku modułu World, można dostarczać obiekty przy użyciu gotowych klas frameworka lub samemu je tworzyć z własnych źródeł danych. Framework zawiera kilka klas podstawowych, które to bardzo ułatwiają, na przykład klasy, które pobierają JSON z Internetu dla danej lokalizacji. Należy wówczas jedynie określić, który adres URL jest poprawny dla lokalizacji, o którą prosi framework i użyć struktury JSON do uzupełnienia danych o obiekcie. Dzięki tym gotowym klasom bazowym można szybko wprowadzać źródła danych z dowolnej usługi WebService lub innego repozytorium.

Findlo AR Framework

Potencjalne możliwości wykorzystania Findlo

Oto kilka przykładów aplikacji, które można stworzyć z wykorzystaniem Findlo:

  • Aplikacje turystyczne,
  • Reklamy miejskie – wykorzystanie technologii do przedstawienia ciekawych obiektów,
  • Gry podobne np. do Pokemonów, ale jeszcze bardziej skoncentrowane na lokalizacji użytkownika,
  • Rozszerzenia do map (np. korzystając z Google Places API),
  • Aplikacje na imprezy (na przykład pokazujące lokalizacje bramek, sceny, toalet itp.).

Implementacja Findlo

Oto kilka prostych kroków, na implementację Findlo:

1. Należy dodać do aplikacji wszystkie frameworki składające się na Findlo.

2. Wybrać w Xcode odpowiedni projekt i następnie dodać wymagane frameworki w zakładce General w dziale Embedded Binaries.

3. Następnie w storyboardzie lub kodzie źródłowym stworzyć widok typu FindloFinalAugmentedRealityView, a następnie podpiąc do niego IBOutlet.

4. Kolejno stworzyć obiekt typu World i dodać do niego źródła danych.

5. Ostatnim etapem implementacji jest połączenie FindloFinalAugmentedRealityView z World poprzez funkcję arView.connectToWorld(world).

Co dalej?

Twórca Findlo nieustannie pracuje nad narzędziem i planuje go ulepszać w miarę upływu czasu. Do kluczowych przyszłych usprawnień należą:

  • Udoskonalenie usługi LocationService za pomocą Beaconów, w celu zapewnienia lepszych usług wewnątrz budynków do tego przystosowanych.
  • Implementacja zaawansowanych sekwencji ruchu obiektów, aby umożliwić łatwe przejścia postaci wyznaczoną wcześniej ścieżką.
  • Wprowadzenie specjalnego trybu CarMode w celu zapewnienia lepszej sprawności działania aplikacji w samochodzie.
  • Wdrożenie funkcji określania oczekiwanej lokalizacji po ustalonym czasie na podstawie zmian lokalizacji. Umożliwi to dokładniejsze wyświetlanie pozycji ciągle poruszających się obiektów.
  • Wprowadzenie modułu ułatwiającego śledzenie zmian lokalizacji obiektów na żywo przez sockety.

Sprawdź case study prezentujące możliwości frameworku Findlo:

Skontaktuj się z nami, a my przydzielimy grupę ekspertów do stworzenia znakomitej aplikacji na system iOS opartej na frameworku Findlo!

Czytaj więcej

wróć

Dołącz do naszego newslettera!

Zapisz się do naszego newslettera, aby otrzymywać
najnowsze informacje od naszego zespołu.

Jak możemy Ci pomóc?
Wyceń projekt
Szybki kontakt
wiadomość wysłana
Jesteś super.
Będziemy w kontakcie.