Ackee Tech Stack: Ani software na míru nemusíte stavět na zelené louce

Dominik Veselý
3 min readApr 22, 2021

--

Téměř 9 let tvoříme pro naše klienty více či méně komplexní softwarové produkty. To znamená, že začínáme hodně nových projektů v řadě a často řešíme ty stejné věci. Proto používáme většinou nějakou šablonou a balíčky pro různé platformy, nad kterými poté aplikace stavíme. Je to vlastně takové zhmotněné Ackee know-how, které si celých 9 let pilujeme a vylepšujeme. To od nás klient získá zdarma tím, že si nás vybere pro realizaci svého díla. Zajít se dá však mnohem dál.

Netajím, že jsem poměrně velký fanoušek SaaS (Software as a Service) a několikrát jsem o tom psal (např. zde). Je to něco, co dává smysl pro nekritické části vašeho systému. Nevidím totiž důvod, proč si znovu psát například mailovou službu, pokud zrovna začínáte s nějakým projektem.

Pokud to jde, v Ackee se snažíme ulehčit si cestu všemi možnými přostředky, abychom nedělali zbytečnou práci a klientům ušetřili peníze.

Základem je Firebase

Nemyslím si, že by mezi vývojáři byl někdo, kdo nezná Firebase. Pro jistotu však připomenu, že se jedná o sadu nástrojů od společnosti Google, připravených k okamžitému použití ve vašich projektech. Jedná se například o Serverless řešení CloudFunctions, dvě různé realtime dokumentové databáze, analytické nástroje a řada dalších užitečných komponent, které využijete při vývoji serverových, webových a mobilních aplikací. Při vhodném použití mohou ušetřit vývojářům klidně i měsíce práce.

Firebase nabízí takové “must have” služby pro mobilní aplikaci, jako jsou push notifikace, analytika, případně remote config (ten se hodí například na vynucení updatu aplikace). Používáme ale také řadu dalších nástrojů, protože nám výrazně šetří čas a starosti. Mezi ty nejoblíbenější v Ackee patří:

Cloud Funkce

Umožní psát serverový kód, respektive funkční logiku bez omáčky kolem. O tu se totiž postará v tomto případě sám Google. Výhodou je velice rychlé prototypování a flexibilita. Funkční vývojové/produkční prostředí máte během pár minut a dál se o něj nemusíte starat, prostě běží. Tyto funkce poté můžete jednoduše volat jako klasické serverové API, případně spouštět automaticky v zadaném intervalu, případně pomocí jiných událostí navázaných na ostatní Firebase služby.

Autentizace uživatelů

Firebase umožňuje velice rychle nasadit autentizaci uživatelů do vašeho systému a to i pomocí nejpopulárnějších Single Sign On služeb jako jsou (Google, Facebook nebo dnes i AppleID).

Databáze a souborové úložiště

Realtime dokumentové databáze používáme skoro v každém našem projektu již několik let. Výhodou je velice rychlá a flexibilní databáze, nad kterou mohou klienti dostávat změny v reálném čase, takže aktualizace dat v aplikaci z pohledu uživatele se dá přirovnat ke kouzlu a vzhledem k jednoduchosti implementace je to oblíbený programátorův trik. V případě nefunkčnosti a debuggování zas černá magie :) Další velkou výhodou je, že se o databázi nemusíte (kromě nastavení příslušných bezpečnostních oprávnění) starat. Během několika málo řádek kódu se k databázi připojíte, zapisujete a nebo čtete data a to vše realtime bez zbytečného kódu.

To samé platí i o souborovém úložišti, kde se dají ukládat všechna data vašich aplikací.

Jde to posunout ještě dál?

Ano, pokud to nemá žádnou přidanou hodnotu, tak znovu nevynalézáme kolo. Funkční software se snažíme postavit z existujících komponent, aby co nejrychleji mohl vzniknout produkt, který se dá otestovat i za cenu toho, že nebude stoprocentně dodržené původní zadání.

Tabulka jako CMS

Věc, kterou jsme v posledních letech použili v řadě projektů, je využití Google Sheets/Airtable jakožto CMS a databázi v jednom. Například tak funguje náš App4Event — výhoda těchto nástrojů je uživatelská přívětivost. S tabulkami umí pracovat každý a lehce se v nich orientuje. Díky pokročilým funkcím airtablu, tak není problém nastavit jednoduchá pravidla nebo dokonce uploadovat obrázky. Pomocí API rozhraní poté v reálném čase nebo formou snapshotu data vytáhneme a dál s nimi pracujeme. Získáme tak velice jednoduché a efektní rozhraní s minimálními náklady. Samozřejmě zde jsme hodně limitováni use casem, ale když je vhodný, máme vyhráno a klient také.

Toto je rychlý náhled, jak u tvorby projektů a nad jejich návrhem přemýšlíme, každý projekt je unikátní a vyžaduje specifický přístup. Náš arzenál však čítá velké množství nástrojů a technologií, které nám naši práci usnadňují a pomáhají nám dodávat kvalitní software efektivně a ke spokojenosti našich klientů. V příštím blogu se zas zaměřím na vývoj a aktuální stav našeho tech stacku napříč platformami.

--

--

Dominik Veselý

Software Architecture Expert, Co-Founder of @AckeeCZ. #ios #node #saas enthusiast. Lecturer at @FIT_CTU. Runner in the spare time.