Od pomysłu do aplikacji: Logi

Hype na AI jest przytłaczający. Strach otworzyć lodówkę by nie zostać zaatakowanym przez "25 najlepszych promptów na kolację". Sam się zresztą aktywnie na łamach DT do tego przyczyniam. Niemniej faktycznie uważam, że jest to przewrót kopernikański i warto o nim pisać, czytać i korzystać z niego. Dlatego bardzo mocno cały zeszły rok szukałem praktycznych zastosowań AI. Tak, praktycznych, bo masa tych "agentów odpisujących na moje maile" czy "bot whats appowy który dodaje spotkanie w kalendarzu" to dla mnie chyba overkill...

Kiedy zacząłem tworzyć Logi, mobilną aplikację zdrowotną, miałem jedną jasną wizję: chciałem, aby łatwiej było użytkownikom – zwłaszcza mojej mamie – zrozumieć, jak jedzenie wpływa na poziom cukru we krwi. Dlatego postanowiłem zbudować aplikację, korzystając z FlutterFlow – platformy wizualnego rozwoju, która pozwoliła mi szybko i sprawnie wcielić pomysły w życie.
Inspiracja i pierwszy krok
Punktem wyjścia była rozmowa z moją partnerką, która po przeczytaniu książki Glucose Revolution była pod ogromnym wrażeniem. To uruchomiło całą lawinę dyskusji o ładunku glikemicznym i wpływie codziennych nawyków żywieniowych na insulinooporność. Drugim bodźcem była przypadkowa konwersacja z moją mamą która wysłała na rodzinnej grupie informację o indeksie glikemicznym. Zrobiłem pierwszy Proof of concept w literalnie 10 sekund:

Pierwsza wersja Logi, wtedy nazwana Index Scanner, bowiem to była jedyna funkcja, skan zdjęcia pokazywał indeks glikemiczny i zamienniki z niższym wskaźnikiem. Samo stworzenie działającej aplikacji zajęło bodaj z cztery wieczory. Znacznie dłużej trwały kwestie formalne konieczne do publikacji w sklepie - regulaminy i polityki, opisy oraz wizualizacje (dzielnie stworzone w Canvie). Po niecałym miesiącu byłem w App Store.

Szybko okazało się, że to za mało. Ludzie chcą analizować całe posiłki – zobaczyć, jak wszystkie składniki razem wpływają na ich organizm. To wtedy narodził się pomysł na funkcję skanowania gotowego dania, która analizuje zawartość kalorii, makroskładników i ładunku glikemicznego, jednocześnie oferując wskazówki, jak poprawić swój jadłospis.
Budowanie Logi: od FlutterFlow po AI
FlutterFlow to narzędzie, które pozwoliło mi stworzyć frontend Logi bez konieczności pisania kodu. Flutterflow jest dobrze zintegrowany z Google Firebase, zestawem backendowych rozwiązań do aplikacji mobilnych. Teoretycznie dałoby się całą aplikację zbudować po stronie klienta - we Flutterflow, ale miało to szereg minusów od bezpieczeństwa po responsywność, dlatego dodałem do stosu nocode backend builder Buildship, który bardzo mi się spodobał. Opiera się na blokach których działanie opisane jest kodem co daje niezwykłą elastyczność gdy jest potrzebna. Ale znajomość kodu nie jest konieczna.
Rezygnacja z Buildship
Po paru miesiącach zrezygnowałem z Buildship na rzecz Google Cloud Functions napisanych za pomocą Cursor.com. Niestety platforma miała dwa epizody niestabilności przez które moja aplikacja nie działała. Dodatkowo nowa wersja generalnie miała problemy oraz wprowadziła cennik który zawierał rozliczanie sekundowe - które przy przetwarzaniu AI jest bardzo niekorzystne, bowiem długo czekamy na odpowiedź API. Wstępne kalkulacje sugerowały, że za Buildship będę płacił nie mniej, niż za samo API OpenAI co było absurdalne. Od początku roku jestem na Google Cloud Functions i jestem bardzo zadowolony.
Cursor bardzo dobrze sobie radzi z pisaniem funkcji, natomiast trochę mi zajęło dopasowanie się do różnych sposobów deploymentu. Więc trzeba sobie na to zarezerwować jeden dwa dni jeśli się nie korzystało wcześniej.
Jak to działa
Dużym wyzwaniem było stworzenie dobrego prompta który z jednej strony dbał o jakość analizy a z drugiej generował ustrukturyzowany output. A z trzeciej - nie trwał zbyt długo. Z tych trzech w pierwszej kolejności zrezygnowałem z czasu trwania, dlatego skan trwa niestety bardzo długo - często ponad pół minuty. Niemniej wszystkie inne warianty dawały znacznie gorsze odczyty.
Obecnie, prompt z instrukcją do modelu każdorazowo wysyła nieco poniżej 1200 tokenów oraz zdjęcie i/lub instrukcję. Odpowiedź - zależy od liczby znalezionych składników 3-5 tysięcy tokenów. Kluczowe dla jakości odpowiedzi jest zastosowanie Chain of Thought czyli rozbicia czynności na kroki. W pierwszym kroku proszę o identyfikację składników, w drugim określenie ich wagi, w trzecim - przypisanie im wartości referencyjnych... i tak dalej aż do JSONa na końcu na podstawie wygenerowanej odpowiedzi.
Premiera i lekcje na przyszłość
Oficjalnie wystartowałem z Logi 1 września 2024 na iOS, a miesiąc później aplikacja trafiła także na Google Play. Czego się nauczyłem?
Dystrybucja to podstawa - Myślałem, że wystarczy umieścić aplikację w sklepie, a użytkownicy sami ją znajdą – zwłaszcza z tak ciekawą funkcją AI (w naszej technologicznej niszy być może nie skanowanie zdjęć i tworzenie analizy nie robi takiego wrażenia, ale ludzie są szczerze zachwyceni). Nie znaleźli. Musisz aktywnie promować swoją aplikację.
Beta testy to wyzwanie - Zorganizowanie testów beta było trudniejsze, niż się spodziewałem. Na Google Play trzeba było znaleźć 20 testerów (obecnie wymagania są niższe – wystarczy 12). W przyszłości zacznę planowanie beta testów znacznie wcześniej - poprzez próbę zbudowania mikro społeczności.
Promocja to coś więcej niż konkursy - Myślałem, że darmowe giveaway’e pomogą przyciągnąć użytkowników, ale ludzie często ignorują takie oferty jeśli nie masz rozpoznawalności.
Uczenie się nigdy się nie kończy - Tworzenie Logi w FlutterFlow było niesamowitą przygodą – pełną wyzwań i satysfakcji. Widok ludzi pobierających aplikację (i płacących za nią!) to ogromna motywacja. To też świetna motywacja by badać kolejne możliwości AI i rozwijać się w innych dziedzinach jak marketing, pozycjonowanie, budowanie społeczności.
Retencja - aplikacja dla przeciętnego użytkownika posiada bardzo atrakcyjną, nieco magiczną funkcję, ale to nie wystarcza by wykupić abonament. Do tego potrzeba nawyku. Jak myślę o dalszym rozwoju aplikacji to właśnie skupiam się na kierunku analiz długoterminowych (np. na podstawie 10 dni posiłków).

Promocja aplikacji
Wielu korporacyjnych Product Managerów jest mocno skupiona na procesie wytwórczym produktu a takie zderzenie z bootstrappową rzeczywistością brutalnie pokazuje, że "distribution is king". To była dla mnie dobra okazja by pobawić się z różnymi konwencjami. Pisałem trochę na reddicie. Reddit jednak szybko kasuje wszelkie promocyjne posty - dlatego ograniczałem się do komentarzy - nawet wpadł mi wiral który zgarnął z tysiąc upvote'ów - bez linku, ale z nazwą aplikacji - przełożył się na około 120 pobrań ze sklepu. Ostatecznie jednak dostawałem bany z kolejnych subredditów za promowanie aplikacji. Ale by przyspieszyć ten proces napisałem sobie nawet wtyczkę do Chrome która po zaznaczeniu tekstu generowała via OpenAI dopasowaną odpowiedź. Może powiniennem ją wydać...
Trochę pisałem na grupach Facebookowych, ale w porównaniu do Reddita FB wydaje się jakieś wymarłe. Miałem przemiłą rozmowę z Romanem Młodkowskim w Biznes24. Skorzystałem z Fiverr by Tiktokerka nagrała mi reklame UCG (chyba najgorzej wydane pieniądze - materiał zrobiony rzetelnie, ale drogo i nie konwertował). Sporo eksperymentowałem z UGC AI Ads - i muszę więcej energii w to włożyć, efekty są obiecujące. A teraz eksploruję temat współpracy z niszowymi influencerami na Instagramie.
Czerwony ocean
To prawda powszechna, ale powtórzę - rynek oprogramowania B2C jest bardzo, bardzo trudny. Miesięczny abonament wysokości 100 USD dla firmy to pestka. Dla konsumenta detalicznego by wydać 20 USD musisz być Netflixem. To co mnie zaskoczyło to perfekcja z jaką aplikacje B2C wyciskają kasę z użytkownika długimi onboardingami (syndrom zatopionych kosztów) i złożonymi ścieżkami z promocjami. Przykładowo - standardem jest, że po odrzuceniu pierwszego paywalla dostanie się zniżkę - często natychmiast. I to jest ta część tworzenia aplikacji która mnie odpycha.
Niemniej z premedytacją poszedłem w tym kierunku bo uwielbiam tworzyć produkty B2C i, na szczęście, nie jest to przedsięwzięcie komercyjne (choć nie chciałbym dokładać do kosztów API oraz infrastruktury) a relaksacyjno dydaktyczne. Cieszę się, że jest to tylko side project i nie muszę skupiać się na optymalizowaniu tych ścieżek konwersji o kolejne promile tylko mogę sobie dłubać jakieś fajne ficzerki.
To troche jak granie w moją ukochaną Cywilizację.
Jeśli chcesz przetestować Logi, znajdziesz ją tutaj: Logi Glycemic Index Tracker App