Opublikowane 10 sierpnia 2017 2 minuty
bookmark_border

Nowy Workdone

Nowy Workone

Oto i jest, gotowy (prawie), działający nowy Workdone, czyli aplikacja dla perfekcjonistów z deadlinami. Dzisiaj krótko opowiem o trudnościach jakie mnie spotkały w trakcie pisania tego projektu.

Server-less?

Chciałem aby Workdone mógł żyć zupełnie bez mojej ingerencji, zaangażowania, ale obawiam się, że jest to niemożliwe.

  1. Firebase Cloud Functions nie potrafią wykonać się same co jakiś czas
  2. Jeśli będę zewnętrznie wywoływał Cloud Functions co 5s to przekroczę limit wykonań
  3. Firebase Admin w Pythonie nie potrafi nasłuchiwać zmian
  4. Nie chcę stawiać serwera na Javie czy NodeJS
  5. Rozwiązanie... hybryda

South Park: Smug Alert
It's hybrid. Good for you!

Mój ostateczny backend dzieli się na dwie części: Pierwsza to prosty skrypt w Pythonie, który ma za zadanie pobrać zakolejkowane powiadomienia a następnie je wysłać przez Firebase Cloud Messaging do klienta. Druga część to funkcje Firebase Cloud, które nasłuchują zmian w bazie deadlinów i aktualizują kolejkę powiadomień. Cloud Firebase jest też odpowiedzialny za tworzenie następnych powiadomień, gdy Python je wykona.

Co mi to daje?

Funkcje Firebase Cloud działają rzadko i na małej porcji danych. Python pobiera dane w ładnym zapytaniu, robi to często, ale to i tak bardzooo mały transfer. Ważne jest to, że skrypt ten może być gdziekolwiek, byle by miał dostęp do internetu. Czy to dalej server-less?

Tak, lubię wyzwania architektury systemów.

Wygląd

Screenshot z Workdone
Kilka sposobów wyświetlania i podstawowa implementacja Material Design
Osobiście myślałem, że będzie trudniej. Napisanie własnego CSSa nie jest takie straszne, jeśli się korzysta z nowych zabawek. Flexbox to ogromny krok naprzód, podobnie grid layout. Podążanie za Material Design też nie było tak straszne, choć to głównie zasługa dobrych guidelinesów takich jak tutaj.

EOF i czy to działa?

Ten post powstał tylko przez to, że ustawiłem sobie deadline. To chyba coś znaczy, poza tym to było nawet przyjemne.

A goal is a dream with a deadline

Z Workdone możecie korzystać pod workdone.xyz, choć nie gwarantuje stabilności na ten moment :)

Bartosz Wiśniewski

Full Stack do wszystkiego (serio). Z programowaniem mam do czynienia już od ponad 5 lat. Zajmowałem się tworzeniem aplikacji mobilnych i gier. Lubię Pythona, Go i JavaScript (ale tą dobrą stronę). Czasem buduję zabawki z Arduino.