Aplikacja mobilna dla firmy: Flutter czy natywnie
Przy aplikacji firmowej wybór technologii rzadko jest kwestią wydajności. Częściej chodzi o to, ile będzie kosztowało utrzymanie za trzy lata. Rozkładam decyzję na czynniki pierwsze.
Marek Panasiewicz, Founder & lead developer
Pytanie zwykle pada w formie technicznej, a decyzja jest ekonomiczna. Aplikacja natywna to dwa oddzielne projekty: dwa zespoły umiejętności, dwa cykle wydawnicze, dwa razy tyle poprawek przy każdej zmianie. Flutter to jeden kod dla obu platform. Różnica w kosztach utrzymania kumuluje się co roku.
Kiedy Flutter jest oczywistym wyborem
- Aplikacja dla pracowników: serwisanci, kierowcy, magazynierzy, ekipy montażowe.
- Aplikacja towarzysząca systemowi, który już masz: podgląd zleceń, dokumenty, powiadomienia.
- Pierwsza wersja produktu, którą chcesz sprawdzić na rynku bez podwajania budżetu.
- Aplikacja z formularzami, listami, mapami i skanowaniem kodów, czyli zdecydowana większość zastosowań firmowych.
Kiedy warto pisać natywnie
- Ciężka grafika trójwymiarowa albo przetwarzanie obrazu w czasie rzeczywistym.
- Głęboka integracja z funkcjami systemu, które pojawiają się w nim jako pierwsze: widżety, skróty systemowe, nietypowe uprawnienia.
- Aplikacja, w której zużycie baterii jest kryterium odbioru.
- Zespół, który już utrzymuje kod natywny i nie ma powodu zmieniać technologii.
Mit wydajności
Argument o wolniejszym działaniu Fluttera dotyczy przypadków skrajnych, a nie listy zleceń z filtrowaniem. Aplikacja firmowa spowalnia nie z powodu warstwy graficznej, tylko dlatego, że ktoś pobiera pięć tysięcy rekordów naraz albo ładuje zdjęcia w pełnej rozdzielczości. To są błędy niezależne od wybranej technologii.
Aplikacja rzadko jest wolna przez framework. Zwykle jest wolna przez zapytanie, które ktoś napisał raz i nikt do niego nie wrócił.
Praca offline, najczęściej pomijane wymaganie
Jeśli aplikacja ma trafić do kogoś, kto pracuje w terenie, to prędzej czy później zostanie uruchomiona bez zasięgu. Bez zaplanowanej pracy offline użytkownik zobaczy błąd i wpisze dane na kartce, a projekt zostanie uznany za nieudany, i słusznie. Zaprojektowanie synchronizacji z rozwiązywaniem konfliktów kosztuje na starcie, ale to jest ta część, która decyduje, czy z aplikacji ktoś będzie korzystał.
Praktyczna rekomendacja
Przy aplikacji firmowej zaczynaj od Fluttera, chyba że któryś z punktów z listy natywnej opisuje dokładnie Twój przypadek. Jeśli okaże się, że jeden ekran wymaga kodu natywnego, da się go dopisać jako moduł, bez przepisywania całości.