Konferencje

Aleksander Popko: Wszystkie prace programistyczne to wyzwanie!

Aplikacje mobilne. Wszędzie ich pełno. A czy zastanawiasz się, co jest najważniejsze dla dewelopera w procesie tworzenia aplikacji? Brakuje Ci konkretnych wytycznych dotyczących kolejnych kroków? A może chciałbyś dowiedzieć się, dlaczego doświadczenie może odegrać kluczową rolę w procesie? Jeśli tak, to zostań z nami i naszym gościem Aleksem Popko! 

Aplikacja mobilna to paczka kodu, która jest skompilowana i zainstalowana na urządzeniu. Zwykle mówimy o aplikacji mobilnej jako gotowym produkcie. Pamiętajmy, że stoi za tym praca, często dziesiątek osób. To cały proces zbierania wymagań, analizy rynku, działania user experience oraz opracowanie infrastruktury i zasobów. Zarówno backend jak i frontend to finalizacja tego procesu. Zatem na potrzeby podcastu, Aleksander ogranicza się do określenia jej jako kodu, napisanego konkretnie pod urządzenia mobilne, typu smartfony czy tablety.  

Aleks Popko

mobiledeveloper.pl

Od 8 lat zawodowo zajmuje się tworzeniem aplikacji mobilnych. Pracował dla takich firm jak NetguruAllegroF-Secure czy Getin Bank.

Tworzy newsletter (mobiledeveloper.pl), jaki sam zawsze chciał otrzymywać.

Co najważniejsze w tworzeniu aplikacji dla dewelopera?

Według Popko, jedną z najważniejszych rzeczy są sprecyzowane wymagania biznesowe. Otrzymanie jasnych wymagań, często nie jest łatwe. Proces ten obejmuje definicję nazewnictwa poszczególnych wydarzeń, rzeczy i zjawisk, a kończy się na określeniu integracji z zewnętrznymi rozwiązaniami. Wszystko to ma wpływ na architekturę aplikacji oraz wykorzystywaną technologię.

Brakuje konkretnych wytycznych, co dalej?

Co powinien zrobić deweloper, który otrzymuje nieprecyzyjną specyfikację z niejasnymi wymaganiami? W rzeczywistości jest to dość częste w IT. Na początku zawsze występuje wiele nieznanych elementów. Jednak istnieje kilka sposobów radzenia sobie z tym problemem, a kluczem jest znalezienie wspólnego języka z klientem. Popko mówi, że przede wszystkim, ważna jest ciągła i uważna  rozmowa. Ma ona na celu lepiej zrozumieć potrzeby klienta oraz jego biznesu. Istotne jest również umiejętne zarządzanie ryzykiem. Zgadza się to ze słowami CRO z Escola S.A. – Pracuję w branży IT już ponad 12 lat. Zauważyłam, że jednym z podstawowych problemów, dlaczego projekty nie wypalają, to brak zrozumienia między zespołami deweloperskimi a klientami. Domain-driven Design jest metodologią, która może pomóc w rozwiązaniu tego problemu – zauważa Ilona Leoniewska.

W czasie takiej rozmowy można również stosować metody warsztatowe, które pomagają odkryć dodatkowe wymagania i umożliwiają dokonywanie pewnych założeń. Joanna Bojarojć w trakcie jednej z naszych rozmów podkreśliła, że gdy chcemy zorganizować taki warsztat, klient powinien być świadomy jego przebiegu oraz zaangażowania wymaganego ze strony zespołu. Obustronne zaangażowanie jest kluczowe. Bez aktywnego udziału zespołu klienta, warsztaty tracą sens. Często istnieje błędne przekonanie, że wystarczy przekazać prowadzącemu warsztat zadanie rozwiązania problemów, a sami tylko posłuchają. Joanna wyjaśnia, że taka postawa zawsze jest niewłaściwa. Zwraca też uwagę na to, że klient powinien skomponować zespół o różnych kompetencjach, co umożliwia dogłębne zbadanie różnych obszarów.

Doświadczenie dewelopera ma znaczenie

Jeśli zespół nie ma pewności co do rozwiązania, może podjąć decyzję opartą na dotychczasowej praktyce. Przeszłe doświadczenia mogą być cennym źródłem informacji. Szczególnie jeśli nie jest się zaznajomionym z nowym rozwiązaniem, ale ma się wiedzę z podobnych projektów. Warto również pamiętać, że zmiany są nieuniknione, więc należy być elastycznym i gotowym na ewentualne zmiany wymagań.

Z czym mierzą się programiści “na produkcji”?

Dla programistów tworzących aplikacje, wyzwaniem jest cały cykl wydawniczy. To nie jest tylko wklepanie kodu. Każda zmiana wpływa na pozostałe części aplikacji. Dlatego często zdarza się, że nie wypuszczają oni nowych zmian zbyt wcześnie. Chcą uniknąć błędów. Właśnie dlatego testy regresji przed wydaniem aplikacji są niezbędne. Co prawda, błędy się zdarzały, zdarzają i będą się zdarzać. Jednak ich naprawa nie powinna stanowić większej części procesu. Trzeba to robić odpowiednio, aby nie wprowadzać kolejnych defektów.

Expert Backend Developer z Escola, Marcin Lenkowski podkreślił, że tworzenie zaawansowanych aplikacji, które spełniają wysokie wymagania funkcjonalne, wydajnościowe i bezpieczeństwa, to zadanie wymagające zaangażowania zespołu ekspertów o różnych specjalizacjach i doświadczeniu. Jednak sam talent i wiedza nie wystarczą. Istotnym elementem jest również zapewnienie programistom odpowiednich narzędzi, które umożliwią im skuteczną i wydajną pracę. Wartościowe narzędzia są kluczowe dla sukcesu projektu, a ich obecność może znacznie ułatwić proces tworzenia aplikacji o rozbudowanej funkcjonalności.

Czy pisanie aplikacji mobilnej jest inne od webowej?

Tworzenie aplikacji mobilnych różni się od tworzenia aplikacji webowych. Zarówno pod względem technologicznym, jak i biznesowym. Istnieją różnice związane z dostępnością aplikacji na różnych urządzeniach oraz zaleceniami dotyczącymi interfejsu użytkownika. W przypadku aplikacji mobilnych istotne jest dostosowanie się do zaleceń dotyczących wielkości urządzeń, ich ekranów oraz specyfiki korzystania z interfejsów dotykowych.

Deweloperzy powinni pamiętać o tych wytycznych podczas tworzenia kodu aplikacji. Zwłaszcza jeśli istnieje wymaganie dotyczące responsywności i dostępności. Warto już na etapie tworzenia aplikacji zaplanować taką architekturę, która umożliwia łatwe wprowadzanie poprawek i uaktualnień w przyszłości. – Różnice pomiędzy aplikacją mobilną a aplikacją webową obejmują specyficzne funkcje i możliwości. Na przykład, aplikacje mobilne często wykorzystują powiadomienia push, które są charakterystycznym elementem komunikacji z użytkownikiem. Istnieją również inne specyficzne funkcje, takie jak lokalizacja czy logowanie do aplikacji, które są bardziej związane z użytkowaniem urządzeń mobilnych – dopowiada Aleks Popko.

Hybryda czy native app?

Specjalista wspomina o Apache Cordova, znanym również jako PhoneGap. To popularny framework do tworzenia aplikacji hybrydowych. Pozwala wgrać je na różne platformy mobilne, takie jak Android, iOS, czy Windows. I to przy użyciu technologii webowych takich jak HTML, CSS czy JavaScript. Cordova daje możliwość stworzenia jednej aplikacji, ale działającej na wielu systemach operacyjnych. Jest to możliwe, dzięki wspólnemu kodowi bazowemu. Zapewnia dostęp do funkcji urządzenia, takich jak kamera czy GPS, poprzez API w JavaScript. Można integrować go z Angular czy React. Aplikacje Cordova są opakowywane w natywne kontenery dla każdej platformy docelowej. Mimo pewnych ograniczeń wydajnościowych, Cordova jest popularnym narzędziem do tworzenia prostych aplikacji biznesowych i prototypów, ze względu na łatwość tworzenia i wieloplatformowość.

Aplikacje hybrydowe, bez wątpienia są tańsze w produkcji, co jest ich korzyścią. Jednak doświadczenie użytkownika korzystającego z takiej aplikacji może być nieco gorsze w porównaniu do tego z aplikacji natywnych. Aplikacje natywne na platformy takie jak iOS czy Android oferują nieporównywalnie wyższą jakość użytkowania w porównaniu do rozwiązań hybrydowych. Dlatego wiele projektów decyduje się na tworzenie aplikacji mobilnych w oparciu o natywne rozwiązania dla konkretnych platform. Natywne aplikacje zawsze wypadną lepiej w zestawie korzyści. Jednak nie każdy biznes będzie potrzebował wszystkich ich możliwości. – Aplikacje hybrydowe są tańszą alternatywą, ale różnice w jakości użytkowania i funkcjonalności między nimi a aplikacjami natywnymi są zauważalne. Każda z tych opcji ma swoje zalety, ale też ograniczenia. Warto je rozważyć przy wyborze odpowiedniego podejścia – mówi Popko.

Sztuczna inteligencja napisze pełnoprawne aplikacje?

Aleks mówi, że jego dotychczasowe doświadczenia z automatycznym generowaniem kodu są różnorodne. Czasami rezultaty są imponujące i bardzo użyteczne. Zwłaszcza w przypadku generowania szablonów kodu czy wzorców. Jednak nie zawsze algorytm wygeneruje kod oczekiwanej jakości. W konsekwencji aplikacja może działać poprawnie. Ale tylko na początku. Później może napotkać problemy. Zatem korzystanie z AI w prostych przypadkach może być korzystne, jednak zaleca się dużą ostrożność. Jeśli chodzi o przyszłość w programowaniu, trudno jest przewidzieć w jakim kierunku pójdzie rozwój sztucznej inteligencji. – Moim zdaniem, jej głównym zadaniem nie będzie jedynie pisanie kodu. Będzie to raczej weryfikacja i poprawianie kodu napisanego przez programistów. Szczególnie w dzisiejszych czasach, maszyny mogą pełnić rolę narzędzia wspierającego, które wyciąga część rutynowych zadań z rąk programisty, ale niekoniecznie zastąpi go całkowicie – mówi ekspert.

Co gdy nasza aplikacja “starzeje się”?

W rozmowie z programistą wspomniano również o utrudnieniach związanych z modernizacją starszej aplikacji, napisanej w przestarzałym języku. Prędzej czy później zaIstnieje potrzeba modyfikacji, rozwijania i realizacji aplikacji. I to raczej prędzej. Jeśli chodzi o przestarzały język, warto rozważyć przepisanie aplikacji na nowoczesne rozwiązania. Przepisanie aplikacji stopniowo lub od zera może być wyzwaniem, jednak pracując z pasją i biorąc pod uwagę zmiany w technologii, możliwe jest odświeżenie funkcjonalności. Ważne jest zachowanie spójności i zastanowienie się nad tym, jak najlepiej podchodzić do procesu przepisywania aplikacji.

Decyzja dotycząca stopniowego przepisywania aplikacji lub napisania jej od nowa zależy zarówno od klienta, jak i zespołu programistów. Zespół może doradzać, ale warto pamiętać, że opinia programistów nie zawsze jest ostateczna. Wszystko zależy od przypadku i celów, jakie chcemy osiągnąć poprzez modernizację aplikacji. Projekt rewitalizacji aplikacji mobilnej może być fascynującym wyzwaniem, które wymaga zaangażowania każdego uczestnika. Ważne jest również, że modernizacja aplikacji przyniesie korzyści zarówno dla biznesu, jak i użytkowników.

Dostępność coraz ważniejsza dla programistów!

Wielu deweloperów coraz częściej zwraca też uwagę na dostępność aplikacji mobilnych zgodnie z najnowszą dyrektywą Unii Europejskiej. Wprowadzenie takich zmian może wymagać nakładu pracy. Aleksander Popko mówi jednak, że wcale nie musi się to wiązać z ogromnymi kosztami. Dzięki tym zmianom aplikacje stają się bardziej dostępne dla różnych grup użytkowników. – Jestem zwolennikiem tych zmian, ponieważ uważam, że dostępność jest ważną kwestią. Branża mobilna rozwija się w tym kierunku, a powinniśmy dążyć do tworzenia aplikacji, które są dostępne dla wszystkich – dodaje właściciel mobiledeveloper.pl. 

Zwłaszcza, że dostępność dotyczy każdego użytkownika, a nie tylko osób z niepełnosprawnościami. Co dobitnie na Mobile Trends Conference podkreślał Przemysław Marcinkowski, Członek Zarządu w Widzialni.eu. Dostępność odnosi się bowiem do potrzeb każdego z nas. Różne rozwiązania mogą nam sprzyjać lub utrudniać korzystanie z aplikacji, zwłaszcza w niesprzyjających nam warunkach. Wytyczne WCAG mają pomóc nam w lepszym użytkowaniu programu.

Więcej w podcaście z Aleksem!

Autor tego artykułu nie jest biegłym specjalistą od aplikacji, w przeciwieństwie do naszego gościa. Zapraszamy Cię więc do odsłuchania tego odcinka z prawdziwym ekspertem w dziedzinie ich tworzenia. Posłuchaj jego doświadczeń, które pomogą Ci lepiej zrozumieć proces tworzenia aplikacji oraz kluczowe aspekty, z którymi stykają się programiści „na produkcji”. 

https://open.spotify.com/episode/6xQ0ZuUaEBe2GG4FwHX7NB?si=b5d906db4b7e4924
Udostępnij
Zobacz także