Słów kilka na temat możliwych form pisania na androida i nie tylko...
Skoro tutaj dotarliście to znaczy, że stoicie przed dylematem w czym najopłacalniej będzie pisać. Możliwości jest naprawdę wiele, do dyspozycji mamy pisanie natywnie w Javie lub Kotlinie, Xamarina czyli pisanie jednocześnie na max 3 platformy w C#, Native React i JavaScript, który umożliwia pisanie na androida oraz iOSa. Istnieją także mniej popularne opcje jak Ruby Motion czy Multi-OS Engine, ale są one znacznie mniej popularne i ciężko o wsparcie dla nich, dlatego pominiemy je w naszych rozważaniach. Nim zagłębimy się w temat musimy ustalić dlaczego w ogóle go rozważam, jaki jest powód tego, że chcesz zmienić język w którym piszesz? Wszystko ma swoje plusy i minusy, więc warto dobrze to przemyśleć. Zakładam, że potrzebujesz narzędzia umożliwiającego Ci tworzenie jednocześnie oprogramowania na 2 platformy - zawęzimy temat dzisiejszych rozważań do androida oraz iOSa.
Co składa się na to w czym warto pisać aplikację? Moim zdaniem jest to:
Znajomość języka
Jeśli możesz zrobić coś “na czuja”, bo lepiej nie umiesz - w czym innym byś to zrobił lepiej, ale jest taka moda i wszyscy tak robią - to tego nie rób. Pracujesz lepiej gdy pracujesz z narzędziem jakie znasz - język programowania to narzędzie, nie zapominaj o tym nigdy.
Przenoszalność
Jeśli możesz coś zrobić raz i odpalić to na każdej maszynie to super. Tyle w temacie.
Łatwość debugowania i wspierania aplikacji
Tutaj bywa różnie. Moim zdaniem łatwiej debugować natywny kod.
Szybkość kodu
Pamiętaj, że nie pisząc natywnie najczęściej Twój kod będzie wolniejszy od kodu natywnego - ale czasem chodzi po prostu o to, żeby “być szybszym w zakrętach”.
Wsparcie dla rozwiązania
Jeśli wybierzesz pisanie w czymś totalnie egzotycznym to musisz pamiętać o tym, że “chłopaki ze stacka” mogą być nieco mniej pomocni niż zawsze.
Rozwijalność
Czy jeśli użyjesz teraz tego narzędzia, to nie będzie problemu aby później rozwijać kod dalej? Dodać nową bibliotekę? Zrobić coś nieszablonowego?
Skoro ustaliliśmy już co składa się na wartości narzędzia, którego użyjemy do pisania naszej aplikacji to porównajmy teraz 3 najczęściej spotykane - Java/Kotlin vs Xamarin vs React Native. Nim zaczniemy porównanie to przyjmijmy, że punkt pierwszy (znajomość języka) oceniasz sobie sam w skali 1-5.
Java/Kotlin
Przenoszalność: Aktualnie brak. Jet Brains pracują nad możliwością pisania w Kotlinie na iOS, więc możliwe że w niedalekiej przyszłości to się zmieni.
Łatwość debugowania i wspierania aplikacji: Tutaj zdecydowanie 5/5, jest to bardzo proste i raczej nic Cię nie zaskoczy.
Szybkość kodu: Kod napisany natywnie będzie najszybszy i tutaj nie ma się nad czym rozwodzić.
Wsparcie dla rozwiązania: Piękna i potężna dokumentacja. Na ten moment zadano 1,102,786 pytań na StackOverFlow, więc istnieje bardzo duże prawdopodobieństwo że odpowiedź na większość Twoich doczesnych i przyszłych problemów już się tam znajduje.
Rozwijalność: Nieograniczona.
Xamarin
Przenoszalność: Możesz pisać wspólny kod dla wielu platform. Aktualnie obsługuje wszystkie największe platformy mobilne dostępne na rynku.
Łatwość debugowania i wspierania aplikacji: Tutaj już nie jest tak pięknie jak w przypadku aplikacji napisanych natywnie. Wielkość problemu będzie zależna od aplikacji.
Szybkość kodu: Nieco wolniej niż natywnie, ale nadal całkiem szybko.
Wsparcie dla rozwiązania: Rozwiązanie całkiem popularne. Dużo hinduskich tutoriali na YT, coraz częściej pojawiają się sensowne odpowiedzi na StackoOverFlow.
Rozwijalność: Ograniczona.
React Native
Przenoszalność: Możesz pisać wspólny kod dla wielu platform. Aktualnie obsługuje wszystkie Androida oraz iOSa.
Łatwość debugowania i wspierania aplikacji: Widziałem straszne rzeczy. Współczuję tym, którzy gdzieś utknęli.
Szybkość kodu: Znacznie wolniej niż natywnie, ale aplikację pobierającą listę z CMSa napiszesz bez obaw o problemy z wydajnością.
Wsparcie dla rozwiązania: Coraz bardziej popularne za sprawą JS, którego zna bardzo dużo osób. Można zaobserwować znaczny wzrost ilości zakładanych wątków związanych z tą technologią.
Rozwijalność: Ograniczona.
Przedstawiłem Ci tutaj 3 najbardziej popularne narzędzia służące do tworzenia aplikacji na androida oraz pokazałem jak w prosty sposób możesz przekalkulować w czym będzie najopłacalniej napisać daną aplikację. Mam nadzieję, że dowiedziałeś się czegoś nowego i że nie wychodzisz stąd z niczym. Zaznaczam, że języki te można porównać także pod innymi względami i wyniki tych porównań mogą się różnić znacznie od siebie oraz tutaj przedstawionego.Napiszcie proszę czy taka forma Wam odpowiada i czy chcielibyście kolejne artykuły.
Specjalnie dla Android.com.pl
Łukasz Bednarczyk