Finansowa - Buduję swoją pierwszą aplikację mobilną!

Hej! Dziś chciałbym wam przedstawić projekt nad którym pracuje po godzinach! A w zasadzie to w przerwach między pracą/życiem oraz blogiem 😉

01. Finansowa – Zarządzanie budżetem domowym oraz kalkulatory finansowe

Okej! „Finansowa” to bardzo robocza nazwa – która jednak mi odpowiada, całkiem możliwe że zostanie 😊 Jest to aplikacja na urządzenia mobilne Android / IOS którą tworze przy użyciu Fluttera.

O Flutterze możecie przeczytać w poprzednim wpisie. Krótko podsumowując jest to dość świeża technologia od Google do tworzenia aplikacji mobilnych. Na dzień dzisiejszy, Finansowa, aplikacja nad którą pracuje, wygląda tak:

Muszę przyznać że jak na razie, jestem bardzo zadowolony z prac nad apką 🙂

02. Funkcjonalności?

Przyznam szczerze – nie będzie tutaj nic innowacyjnego i odkrywczego raczej standard 😉 Nie jestem jednym z tych którzy wszędzie wrzucają słówko smart albo innowacja 😉

Po pierwsze – głównym elementem systemu jest budżet, planowanie i śledzenie wydatków. Zależy mi przede wszystkim aby aplikacja pomagała użytkownikom śledzić własne pieniądze – w łatwy i intuicyjny sposób. Drugą równie ważną funkcjonalnością są kalkulatory finansowe, które mogliście zobaczyć na przedstawionym powyżej filmiku.

03. Stopień zaawansowania prac?

Tak naprawdę dopiero zaczynam 😉 W tym momencie mam zaimplementowane 2 z 9 kalkulatorów finansowych, czyli  prawie 23% 😊  Myślę że wszystkie kalkulatory finansowe to jakieś 15%-20% całej aplikacji 😊 Jak widzisz – jestem na samym początku.

04. Po co w ogóle to robię? Kiedy skończę?

Spotkałem się już z opinią – ale po co w ogóle tracisz na to czas? Przecież takich aplikacji jest już cała masa! Odpowiedź jest bardzo prosta 😊 Po pierwsze – chce wyjść ze strefy komfortu, od prawie 8 lat programuję w Javie, czas poznać coś nowego.

Po drugie – zawsze chciałem napisać i wydać własną apkę mobilną. Każdy się kiedyś nasłuchał o niesamowitych sukcesach, firmach/aplikacjach które powstały w garażu, a teraz są gigantami na skalę światową 😊 Żeby nie było! Nie mam takich aspiracji 😊 Kiedyś jak byłem jeszcze młody i naiwny myślałem o czymś takim – i w zasadzie tylko myślałem, w tamtych czasach nie powstała ani jedna linijka kodu 😊

Po trzecie – aplikacja szyta na miarę. Jestem teraz na etapie życia, gdzie finanse osobiste są dla mnie bardzo ważne. Jednak nie mam jednej konkretnej aplikacji która spełniała by moje oczekiwania, w sposób który oczekuje. Czemu zatem nie napisać własnego rozwiązania?

Okej – kiedy wydanie aplikacji? Temat nie będzie tak prosty jak mi się zdaje – zakładam pesymistyczny scenariusz na Styczeń 2020. Aplikacja mam nadzieje że zostanie wydana jednocześnie na obie platformy.

Możecie mi życzyć powodzenia! Będę dawał znać jak idą prace! Jeśli tylko chcecie – możecie podsyłać jakie funkcjonalności chcielibyście zobaczyć w takiej aplikacji!


Flutter - Przyszłość aplikacji mobilnych ?

Dziś trochę mała odskocznia od standardowych backendowych tematów. Porozmawiamy sobie o stosunkowo nowym frameworku do tworzenia aplikacji mobilnych ze stajni Google. Framework jak tytuł wskazuje nosi nazwę Flutter.

01. Aplikacje mobilne? Aplikacje natywne? Aplikacje hybrydowe? O co chodzi?

W świecie aplikacji mobilnych istnieje jeden podstawowy problem – dwa systemy operacyjne które dzielą rynek – Android oraz IOS.
W zależności od źródeł, dane różnią się nieco od siebie jednak pokazują dość zbieżny trend:

Android 74.45%
IOS 22.85%
Inny 2.70%
Android 70.91%
IOS 27.95%
Inny 1.14%
Android 47.27%
IOS 52.28%
Inny 0.45%
Android 73.67%
IOS 24.79%
Inny 1.54%

Widać że Android posiada większość rynku, z wyjątkiem Ameryki północnej, gdzie dzielą rynek mniej więcej po połowie.

Aplikacje na Androida oraz IOS pisane są w różnych językach – oficjalnym językiem w jakim piszemy aplikacje na Androida jest Kotlin (do niedawna była to Java, kotlin jest tak jakby rozwinięciem Javy), natomiast oficjalnym językiem programowania dla IOS jest Swift (podobna historia jak w przypadku Androida, do niedawna oficjalnym językiem był Objective C – na nim wyrósł Swift).

Tu jest sedno problemu – jeśli chcemy wdać aplikację na oba systemy, „musimy” (nie do końca musimy, ale o tym za sekundę 😉 ) napisać oraz utrzymywać dwa kody źródłowe. Jeden dla Android, jeden dla IOS. Jest to dość problematyczna sprawa. Musi być jakieś lepsze rozwiązanie prawda? No i jest 😊

02. Aplikacje Hybrydowe

Próbą rozwiązania tego problemu są „aplikacje hybrydowe” – piszemy z użyciem jakiegoś frameworku jeden kod, który możemy skompilować aby uruchomić na Androidzie oraz na IOS.

Jednym z bardziej popularnych frameworków tego typu jest React Native – tworzony przez Facebook’a od 2015 roku zdobył na GitHubie ponad 70 tysięcy gwiazdek. Innymi frameworkami tego typu są Xamarin  czy Ionic.

Flutter jest najnowszym frameworkiem do tworzenia aplikacji zarówna na Androida jak i IOS’a. Flutter jest tworzony przez Google, oraz jest zbudowany o język programowania Dart.

03. Flutter - Zalety oraz wady - okiem backendowca

Zalety:

Natywna kompilacja: Flutter, pozwala nam przy użyciu tego samego kodu tworzyć aplikacje na Androida oraz na IOS – w zasadzie jak każdy frameworkd do aplikacji hybrydowych, Flutter jednak kompiluje kod do kodu natywnego dla danego urządzenia. Podczas gdy inne frameworki wykorzystują „web-view” (opakowaną stronę internetową w  aplikację mobilną). Flutter ma tutaj ogromną przewagę wydajnościową. Flutter na tym polu ma znaczącą przewagę wydajnościową.

Szybkość pisania aplikacji: Flutter jest naprawdę bardzo dobrze przemyślany, jest stosunkowo łatwym frameworkiem aby się go nauczyć, próg wejścia jest dość niski. W momencie kiedy poznasz już zasady tu panujące – tworzenie aplikacji będzie naprawdę szybkie!

Tworzenie zaawansowanego interfejsu użytkownika: Flutter pod tym względem naprawdę zaskakuje. Tworzenie przepięknego interfejsu jest zdecydowanie prostsze niż w innych frameworkach. Odwołam się tu do jednej z aplikacji napisanych we Flutterze -> Reflectly. Polecam filmik od samych developerów czemu postawili na Fluttera:

Google jako autor: Google nikomu nie trzeba przedstawiać, jest to gigant technologiczny który ma zaplecze aby zacząć rozwijać zupełnie nową technologię, która może naprawdę zabłyszczeć. Udowodnili to już nie raz.


Wady:

Google jako autor: Ten sam punkt w wadach jak i zaletach to nie jest błąd 😉 Google potrafi robić konkretne rzeczy, jednak wiąże się to z ilością projektów – tworzą ich wiele, niektóre chwytają inne nie. Google jest znane z tego że jeśli dany projekt po X czasie nie zdobędzie odpowiedniej społeczności, Google po prostu projekt zamknie. Jedną z bardziej spektakularnych porażek jest chyba Google+

Młoda technologia: W chwili obecnej Flutter to bardzo młoda technologia, pierwsza wersja została wydana w Grudniu 2018 roku. Wiąrze się to jeszcze z wieloma problemami z jakimi zmaga się każda nowa technologia:

Ponad 5 tysięcy zgłoszonych problemów 😉 Ale Liczba gwiazdek 68 tysięcy robi wrażenie! Mimo wielu zgłoszonych problemów społeczność jest naprawdę ogromna

Podsumowanie

Jako programista backendowy początkowo patrzyłem z przymrużeniem oka na Fluttera – jednak postanowiłem że dam mu szanse. Muszę przyznać szczerze że jest to bardzo przyjemny framework, każdego dnia podoba mi się coraz bardziej! Od jakiegoś czasu myślałem nad własną małą aplikacją mobilną, i stawiam na Fluttera! Co z tego wyjdzie? Zobaczymy 😊