Skocz do zawartości
Coders Lab

Pisanie na androida i nie tylko - jaki język wybrać

    Rekomendowane odpowiedzi

    Napisano (edytowane)

    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.

    U5drSH3ygXVLZg6euwQ9yLhTv7ixDdp_1680x840
    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.

    2000px-Xamarin-logo.svg.png
    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.


    1*safAvjgR68qpQCreDTOcYA.png

    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

    Edytowane przez mmaciejow
    poprawa tematu

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Dzięki Łukasz za ten tekst. Odpowiadając na Twoje końcowe pytanie: ja bym BARDZO chciał więcej takich artykułów.

    Wysłane z mojego SM-G960F przy użyciu Tapatalka

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    @daktarin może masz jakąś propozycję na kolejny artykuł?
    Ogólnie to mogła by to być nawet seria mini tutoriali, z których każdy poruszałby jakiś problem albo zagadnienie. Np. "Jak zmienić język w aplikacji, bez jej przeładowania". Albo "Przekazywanie wartości między WebView a androidem". Itp w tym stylu. Oczywiście wszystko pisane w Javie i Android Studio, bo to dalej chyba najbardziej popularne narzędzia. Czyli ogólnie, takie poradniki na tematy, na które niekoniecznie znajdziemy szybko odpowiedź w necie...

    Wysłane z mojego SM-G960F przy użyciu Tapatalka

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.