Przejdź do głównej zawartości

Dieta w CloudKit



Lubię eksperymentować z jedzeniem. Jem dużo różnych rzeczy i wypróbowuję też różne diety. Po ostatniej, która miała super wpływać na samopoczucie, poziom mojego cholesterolu poszybował do wartości, których nie uważałem w ogóle za osiągalne. Lekarz ogólny po zobaczeniu wyników i opowieści o moich dietach, na pytanie co powinienem jeść, żeby wyniki wróciły do normy, odparł, że nie potrzebuję żadnych zmian w diecie, potrzebuję leczenia farmakologicznego :). Ale ponieważ dietą się wprowadziłem w ten stan - uznałem, że dietą się z niego sprowadzę na ziemię. Umówiłem się więc do dietetyka. Po konsultacji dietetycznej dostałem zalecenie na temat tego co jeść a czego unikać, ale oprócz tego, dostałem też zalecenie notowania rzeczy, które jem z podziałem na 2-3 godzinne przedziały. Jako człowiek lubiący komputery bardziej niż papier i długopis, poszukałem sobie apki, która by mi w tym pomogła. O ile apki do śledzenia posiłków są dostępne, są jak dla mnie zbyt skomplikowane. Nie chcę musieć wybierać z listy każdego składnika posiłku, nie potrzebuję wiedzieć ile kalorii ma jedna kromka chleba, chcę móc wpisać, że między 9 i 12 zjadłem dwie kromki chleba z pesto. Tylko tyle. Doklikanie się w niektórych apkach do skompletowania "kromki chleba z pesto" czasem zajmowało tyle czasu, że używanie ich mijało się z celem. Postanowiłem więc zrobić własną. Aplikacja ta służy do dopisywania posiłków do logu w taki sposób, jaki według mnie jest najwygodniejszy, ale do generowania raportów do dietetyka postanowiłem zrobić osobną stronę, ściągającą dane z iClouda, do którego zapisuje je moja aplikacja. I o tej stronie dziś napiszę. O elementach samej apki wspominałem już dawno, a biorąc pod uwagę, że i sama apka i website są projektami conajwyżej hobbystycznymi, raczej nieprędko (jeśli w ogóle) dorosną do wersji "1.0".

Dokumentacja CloudKit js jest według mnie skromna. Niby wszystko jest a jednak dość często musiałem zgadywać jak coś zrobić, albo szukać przykładów w innych projektach wyszukanych w sieci. Ostatecznie jednak znalazłem to, co potrzebowałem, żeby zacząć.

Aplikacja webowa dostępna jest tutaj: https://jaropawlak.github.io/DietDiary/. Uruchomienie aplikacji zaczyna się od zalogowania, nie mam niestety żadnych funkcjonalności dla użytkowników anonimowych. Po zalogowaniu strona łączy się z prywatnym icloudem użytkownika i ściąga jego dane (jeśli je wcześniej wprowadził). Ponieważ wszystko dzieje się w przeglądarce użytkownika, zapewnia też prywatność jego danym. To znaczy, że nie ma po drodze miejsca w którym ja, mój serwer lub moja baza danych mogłyby podejrzeć rzeczy wpisane do logu. Aplikacja skłąda się z trzech głównych części. Jedna z nich to zarządzanie kategoriami wpisów. Kategorie mogą się przydać przy filtrowaniu raportów ale nie są konieczne. Można np osobno oznaczać kofeinę a osobno jedzenie. Druga część to dodawanie wpisu, dzięki temu można strony używać już teraz, nie mając aplikacji mobilnej zainstalowanej. A trzecia część formatuje nam raport do ładnej tabelki. Obsługi błędów jako takiej nie ma, wpisanie "aaaaaa" w pole mające być liczbą nie zadziała dobrze. Pisałem stronę na swoje własne potrzeby a ja wiem co wpisać w które pole :). Po drodze miałem jednak pewne trudności. Np niektóre wpisy znikały. Być może dlatego, że apka działa na CloudKitowym środowisku deweloperskim a nie produkcyjnym, albo pod maską działy się rzeczy, których nie rozumiem, mimo wszystko takie kwiatki się zdarzały. To się działo jeszcze zanim w aplikacji (wtedy jeszcze tylko mobilnej) dodałem możliwość kasowania rzeczy. Doprowadziło to do tego, że w aplikacji mobilnej przy okazji różnych działań sprawdzam, czy wpis znajdujący się w bazie danych jest też w CloudKicie i w razie braku dodaję go. Muszę przyznać, że jestem zadowolony z apki (i mobilnej i webowej) bo spełniły moje potrzeby w 100 procentach. Co prawda przygoda z dietetykiem się już skończyła, ale jak to bywa w tworzeniu oprogramowania - nie chcę wyrzucać wykonanej już pracy. Być może dlatego właśnie powstaje ten wpis - żeby zamknąć pewną całość i móc odłożyć ją na nieokreśloną przyszłość, być może przy okazji wymyślenia kolejnej diety, która skończy się wizytą u lekarza.

Pozdrawiam!

P.S. źródła tu: https://github.com/jaropawlak/DietDiary


Komentarze