Powiadomienia SMS

Dla jednego z małych, lokalnych zakładów fryzjerskich stworzyłem aplikację do powiadamiania klientów o zbliżającej się wizycie poprzez wiadomość SMS.

Jak połączyć technologię z tradycją?

Właściciel zakładu nie korzystał z żadnych systemów rezerwacji wizyt i używał tradycyjnej metody zapisywania klientów w fizycznym kalendarzu. Powiadomienia wysyłał do tej pory z telefonu, wpisując treść SMS-a ręcznie dla wszystkich umówionych następnego dnia klientów. Wymaganiem było maksymalne usprawnienie tego procesu bez wprowadzania dodatkowych stałych kosztów i z zachowaniem do tej pory używanej metody zapisu wizyt na papierze.

Analiza sytuacji

Zacząłem od zastanowienia się jak najprościej przenieść dane z fizycznego kalendarza do aplikacji. Jednym z bardziej kosmicznych pomysłów było fotografowanie strony kalendarza i rozpoznawanie pisma na pozyskanym zdjęciu. Byłaby to jednak praca na bardzo długo i jej wynik był wielce niepewny. Mogło się okazać, że firmowy smartfon jest za słaby do takiego zadania, pismo czytelne tylko dla piszącego, albo w ogóle poległbym na rozpoznawaniu struktury strony. Dlatego doszedłem do wniosku, że duplikowanie wpisywania jest nieuniknione. Po prostu albo trzeba dodać powiadomienie od razu po wpisaniu wizyty do kalendarza, albo seryjnie dla wizyt umówionych na następny dzień. Z uwagi na to, że dane się dublowały, mogłem nie zawracać sobie zbytnio głowy problemem ich utraty. Dlatego też postanowiłem zapisywać je po prostu w lokalnej bazie danych na telefonie. Wysyłanie samych SMS-ów rownież miało odbywać się bezpośrednio z telefonu, na którym aplikacja zostanie zainstalowana. Priorytetem było więc tylko to, żeby jak najlepiej usprawnić wprowadzanie danych.

Do dzieła!

Jedyne dane klienta jakie są wymagane to numer telefonu i termin jego wizyty. Stworzyłem do ich wprowadzania prosty formularz.

Numer telefonu można wpisać manualnie, jak i wybrać go z książki adresowej, czy ostatnich połączeń. Co zresztą zasugerował sam odbiorca aplikacji – dobre pomysły zawsze mile widziane!

Dalej należy podać dzień i datę wizyty w formie cyfrowej. Chociaż tutaj również, klikając w ikonkę obok, można wybrać te dane z kalendarza.

Rok wypełnia się sam. Założyłem, że nie będzie rezerwacji na kilka lat do przodu, więc nie ma potrzeby wklepywania tego w kółko. Rok ustawia się na obecny w przypadku, gdy dzień i miesiąc są do przodu, albo na następny, gdy dzień i miesiąc są do tyłu.

Wprowadzenie godziny działa tak samo. Można ją podać zarówno w formie cyfrowej, albo wybrać z zegara.

I pewnie myślisz, że już bardziej tego usprawnić się nie da? A da się! Dotyczy to jednak przypadku seryjnego wprowadzania wizyt dla tego samego dnia. Ale żeby o tym coś napisać, to muszę najpierw przedstawić kolejny ekran.

 

 

 

 

 

Na tym ekranie, w formie listy, pokazują się wszystkie dodane powiadomienia. Wyświetlają się one dla konkretnego dnia, który można wybrać z kalendarza klikając w przycisk z datą. Właściciel zakładu wysyłał powiadomienia do swoich klientów zawsze w dniu poprzedzającym wizytę. Tak więc domyślna data po otwarciu ekranu automatycznie ustawiana jest na następny dzień – taki drobny szczegół.

Powiadomienie na liście składa się z checkboxa, godziny wizyty, numeru klienta i przycisku edycji. Po kliknięciu tego przycisku wyświetla się ten sam ekran, o którym pisałem wcześniej, tylko z wypełnionymi danymi. Jest jednak również trzeci sposób wykorzystania tego ekranu. Po kliknięciu w znajdujący się na górnym pasku przycisk z plusem, ekran edycji otwiera się z datą wypełnioną na tą ustawioną dla listy – bardzo przyśpiesza to seryjne wprowadzanie powiadomień dla tego samego dnia.

Jeśli chodzi o checkboxy, to ułatwiają one seryjne działania na powiadomieniach. Za pomocą przycisku w lewym górnym rogu można zaznaczyć całą listę. Przycisk z symbolem kosza służy do usuwania zaznaczonych powiadomień, a przycisk Wyślij do ich wysłania. Wysłane powiadomienie zmienia kolor na zielony.

W skrócie więc, wybieramy dzień, klikamy zaznacz wszystkie, klikamy wyślij – i fajrant!

 

 

 

Teraz w kwestii tego, co w zasadzie jest wysyłane do klientów.Do wpisywania treści wiadomości służy kolejny ekran z pole tekstowym i podglądem. Wiadomość może być dowolnie długa, gdyż w przypadku przekroczenia limitu pojedynczego SMS-a, jest ona dzielona i wysyłana w kilku. Do treści wiadomości można dodać dwa obsługiwane na tą chwilę znaczniki – datę i czas wizyty, które przy wysyłce zostaną oczywiście podmienione na te z powiadomienia. Podgląd pokazuje jak te znaczniki zmieniają się na faktyczne dane. Treść wiadomości zapisuje się automatycznie, więc nie trzeba jej za każdym razem wprowadzać na nowo po zamknięciu aplikacji.

 

 

 

 

 

 

 

 

 

 

 

 

Dostęp do wszystkich opisanych funkcjonalności odbywa się z poziomu ekranu głównego. Nie ma o tym ekranie za wiele do powiedzenia oprócz tego, że na życzenie właściciela zakładu dodałem wybór loga. Można je wybrać w formie obrazka z galerii telefonu i zmienić w dowolnym momencie. Do funkcjonalności nie wnosi to nic, ale stanowi miły dla oka detal.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Jak to zrobiłem?

Aplikację napisałem na system Android i użyłem do tego języka Kotlin. Jest to moja pierwsza aplikacja napisana w tym języku i uczyłem się go tworząc ją jednocześnie. Poszło całkiem nieźle, chociaż jeszcze dużo wiedzy muszę przyswoić. Poza tym wykorzystałem SQLite, a cała baza danych to tylko jedna tabela zawierająca dodane powiadomienia. Najwięcej problemów, czego się nie spodziewałem, sprawiła mi obsługa seryjnego wysyłania SMS-ów. Ale po kilku fakapach, kilku iteracjach i w końcu zrozumieniu jak to powinno grać, wysyłanie SMS-ów działa bez zarzutów.

Podsumowanie

Status projektu: Zakończony powodzeniem

Cena brutto: 549 zł

Wiem, wiem, w stosunku do ilości włożonej pracy to szału nie ma. Ale to pierwsze pieniądze zarobione pod własnym szyldem, więc i tak jestem dumny. Poza tym planuję wykorzystać kod, który napisałem, opakować to w dobry branding i wstawić na Google Play z reklamami. Jest więc szansa, że trochę dolara jeszcze wpadnie.