Realizacja

W Miejscu: przypomnienia na iPhone'a, które wiedzą, gdzie jesteś

Zaprojektowaliśmy i zbudowaliśmy aplikację iOS, w której przypomnienie dodaje się jednym zdaniem, a iPhone daje znać przy najbliższym sklepie, aptece czy paczkomacie, nawet przy zamkniętej aplikacji.

Aplikacja W Miejscu na iPhone'ach: hasło „Przypomnienia, które wiedzą, gdzie jesteś” na tle mapy z pinezkami

Klient i cel

W Miejscu to nasz własny produkt: aplikacja na iPhone'a z przypomnieniami wyzwalanymi miejscem, a nie godziną. Większość drobnych spraw zależy od tego, gdzie jesteśmy: kupić baterie przy drogerii, odebrać paczkę z paczkomatu, oddać mamie książkę. Przypomnienie o 18:00 przychodzi zwykle wtedy, gdy nie da się nic zrobić.

Systemowe przypomnienia lokalizacyjne wymagają wskazania konkretnego adresu i są schowane głęboko w ustawieniach. Celem było przypomnienie, które dodaje się jednym zdaniem i które działa przy dowolnym sklepie danej sieci po drodze, bez konta, bez reklam i bez kosztów utrzymania serwera.

Co zrobiliśmy

  • projekt UX/UI aplikacji i identyfikację „Odhaczone miejsce”: koralowy pin z wyciętym ptaszkiem na grafitowym tle,
  • aplikację w React Native i Expo z natywnym rdzeniem w Swifcie do lokalizacji i powiadomień,
  • lokalny parser języka polskiego, który działa offline na telefonie,
  • wspólne sprawy z domownikami przez iCloud (CloudKit), bez własnego serwera,
  • widżet „Najbliżej”, obsługę Siri i Skrótów, arkusz „Udostępnij” i powiadomienia na Apple Watch,
  • materiały do App Store: plansze zrzutów ekranu i grafiki nagłówka,
  • testy automatyczne i testy terenowe na iPhonie według checklisty.

Rozwiązanie

Jedno zdanie zamiast formularza. Użytkownik pisze albo dyktuje: „Kup baterie, pastę i płyn w Rossmannie albo w Hebe, nie w nocy”. Aplikacja sama rozpoznaje zadanie, listę rzeczy, sieci sklepów i godziny, pokazuje podgląd powiadomienia i liczbę placówek w okolicy. Wystarczy „Zapisz”. Parser rozumie polską odmianę („w Rossmannie”, „przy aptece”, „u mamy”), terminy („do piątku”) i powtarzanie („co tydzień”).

Dowolny sklep sieci mimo limitu iOS. iOS pozwala jednej aplikacji obserwować najwyżej 20 obszarów naraz, a „każdy Rossmann” to setki placówek. Aplikacja rejestruje 19 najbliższych placówek i jeden obszar graniczny wokół użytkownika. Po jego opuszczeniu w tle wyszukuje nowe placówki w Mapach Apple i podmienia obszary, więc w nowym mieście wszystko działa samo.

Działa przy zamkniętej aplikacji. Decyzja o powiadomieniu, harmonogram, sprawy cykliczne i przyciski „Zrobione” oraz „Wycisz na godzinę” są w natywnym module Swift. iOS wybudza aplikację przy wejściu w obszar, a powiadomienie pojawia się w ułamku sekundy, bez ciągłego GPS i z minimalnym zużyciem baterii. Kilka spraw w jednym miejscu daje jedno powiadomienie z listą.

Uczciwy status. Etykieta „Aktywne” pojawia się tylko wtedy, gdy iOS potwierdzi monitorowanie. Gdy brakuje uprawnień, użytkownik dostaje jasny komunikat i przycisk naprawy zamiast fałszywego poczucia, że wszystko działa.

Prywatność w architekturze. Bez konta, backendu, analityki i reklam. Dane są w bazie SQLite na telefonie, wspólne sprawy w prywatnym iCloud użytkownika, a dyktowanie korzysta wyłącznie z rozpoznawania mowy na urządzeniu. Aplikacja używa tylko bezpłatnych usług systemowych, więc nie ma kosztów utrzymania.

Design. Domyślny ciemny motyw „Nocna mapa” (wspierany jest też jasny) z kontrastami sprawdzonymi pod kątem WCAG. Natywny charakter iOS: SF Symbols, haptyka, systemowe arkusze i animacje, które respektują ustawienie „Ogranicz ruch”. Na ekranie głównym radar okolicy pokazuje, ile miejsc ze sprawami jest w pobliżu.

Efekt

Powstała kompletna aplikacja iOS gotowa do App Store, obecnie w testach TestFlight. Ma ponad 200 testów automatycznych aplikacji i ponad 90 testów logiki natywnej, a etykieta prywatności w App Store brzmi: „nie zbieramy danych”.

Masz pomysł na aplikację mobilną i chcesz zacząć od dobrze zaprojektowanego interfejsu? Zobacz, jak wygląda projektowanie UX/UI w ITKreatywni.

Porozmawiajmy.

Wypełnij krótki brief, a na konsultację przyjdziemy z pierwszymi pomysłami zamiast z listą pytań.

itk@kreatywni:~