Generator aplikacji Android

Kamil Mlonek 29 lipca 2021

Wdrożenie systemu do generowania aplikacji mobilnych Android według ustalonego szablonu.

Klient zgłosił się do nas z prośbą realizacji generatora aplikacji mobilnych na system Android dostępnego w przeglądarce wraz z panelem administratora do zarządzania poszczególnymi z nich.

Z uwagi na fakt, że specjalizujemy się w technologiach webowych, pojawił się problem, jaką technologię wykorzystać dla stworzenia aplikacji mobilnej. Po krótkich przemyśleniach wybór padł na wykorzystanie javascript i posłużenie się builderem natywnych aplikacji w oparciu o API. Kolejną przeszkodą był fakt istnienia panelu administracyjnego i zarządzania parametrami poszczególnych, wygenerowanych aplikacji, bezpośrednio z niego. Do tego celu powstało specjalne REST’owe API, pozwalające na komunikację encji aplikacji mobilnej z systemem dostępnym na serwerze. Dodatkowo realizację utrudniało środowisko, ponieważ założona technologia wymagała specjalnej konfiguracji, na którą nie pozwalały popularne hostingi.

Na wstępie, przystąpiliśmy do stworzenia szablonu aplikacji mobilnej, który miał być podstawą do generowania finalnego produktu. Z racji tego, że pewne elementy jak tytuł, czy ikona są przechowywane statycznie w pliku manifest.json, posłużyliśmy się filtracją i podmianą tych parametrów w PHP na etapie generowania. Wszystkie elementy wewnątrz szablonu natomiast miały być pobierane już bezpośrednio z API systemu. Kolejnym krokiem było utworzenie wcześniej wspomnianego API i zintegrowanie szablonu bezpośrednio z nim. Po ukończeniu tych dwóch case’ów, przyszedł czas na logikę generowania i edycji aplikacji. Aby zapobiec nakładaniu, czy nadpisywaniu się zadań, utworzyliśmy skrypt kolejkujący, który to z kolei inicjuje określoną logikę.

Aby generator mógł bezproblemowo działać, zaleciliśmy klientowi zakup serwera VPS, który pozwolił nam na konfigurację javascriptowego buildera aplikacji natywnej (Apache Cordova) i wywołanie polecenia odpowiadającego za build. Panel administratora natomiast został stworzony przy użyciu języka PHP stosując mini-frameworka implementującego wzorzec projektowy MVC i poczciwego Bootstrapa dla zbudowania widoków. Skrypt kolejkujący zadania jest wywoływany za pomocą serwerowego CRONa cyklicznie sprawdzając, czy jakieś zadanie jest do zrealizowania, następnie inicjując jego wykonanie.

Mockup psd created by freepik – www.freepik.com