Umów rozmowę z ekspertem i poznaj temat głębiej.

Python w aplikacjach mobilnych: kiedy i dlaczego budować aplikację w Pythonie?

3 sty 202310 min czytania

Dawid Karczewski

Senior full stack developer i CTO w Ideamotive.

python w aplikacjach mobilnych kiedy i dlaczego budować aplikację w pythonie

Rozpoczęcie ekscytującego nowego projektu w 2023 roku zaczyna się zwykle od kluczowego pytania o wybór właściwego języka programowania, który zapewni mu sukces. Z myślą o tym chcemy zagłębić się w świat tworzenia aplikacji mobilnych w Pythonie i przyjrzeć się jego potencjałowi oraz przydatności przy budowie udanych aplikacji mobilnych.

 

Zbierasz się do zbudowania swojej aplikacji. Czas więc zgłębić temat i wybrać to, co sprawi, że produkt będzie przyjazny dla użytkownika. Na czym polega specyfika tworzenia aplikacji mobilnych w Python

 

Zacznijmy od początku: Python to skryptowy język programowania. Nadaje się do rozwiązywania różnych zadań i pracy z różnymi platformami - od iOS i Androida po serwerowe systemy operacyjne.

 

To język interpretowany, a nie kompilowany jak C++ czy Java. Program w Pythonie to zwykły plik tekstowy. Kod możesz pisać niemal w dowolnym edytorze albo korzystać z konkretnych IDE.

 

Python znajdziesz wszędzie: w sieci, w aplikacjach mobilnych i desktopowych oraz w grach. Programiści tworzą w nim sieci neuronowe, prowadzą badania naukowe i testują programy.

 

Python_ The Definitive Business Guide

Jaki język wybierają web developerzy w 2022 roku

Wiele rankingów pokazuje najlepsze języki programowania, frameworki, środowiska programistyczne, a nawet gadżety w branży IT. W przypadku Pythona radzimy przyjrzeć się następującym platformom:

 

  1. PYPL - popularność według Google Trends. Widać, że Python od 2018 roku utrzymuje pierwsze miejsce.

wykres python w tworzeniu aplikacji mobilnych

  1. TIOBE – indeksy oparte na danych Bing, Google i Yahoo.

Python utrzymuje pozycję lidera przez cały 2022 rok. Tworząc ranking, TIOBE liczy wzmianki o każdym języku programowania na stronach i w wynikach wyszukiwarek. Na wynik TIOBE składają się platformy takie jak Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube i Baidu. Popularność porównywana jest rok do roku. We wrześniu 2022 roku Python prowadził w porównaniu z wrześniami lat poprzednich, począwszy od 2001.

 

python jako lider rankingu

 

  1. RedMonk korzysta z danych GitHuba i Stack Overflow, żeby zrozumieć trendy na rynku IT.

ranking języków redmonk python

 

Infografika pokazuje ruch 20 najpopularniejszych języków w całej historii rankingu. Widać, że w tym zestawieniu Python zajmuje w 2022 roku drugie miejsce.

Gdzie programiści używają Pythona

Wszechstronność, prostota i duża szybkość pisania kodu w Pythonie pozwalają używać go w tworzeniu stron, programów desktopowych, administracji systemami, Data Science, systemach wbudowanych, aplikacjach mobilnych, grach komputerowych oraz w rozmaitych wtyczkach i skryptach.

 

  • Tworzenie stron i aplikacji webowych. Python ma do tego wiele frameworków: FastAPI, Flask, Tornado, Pyramid, TurboGears, CherryPy i najpopularniejszy - Django.

  • Parsery. Python pomaga zbierać informacje ze stron internetowych. Służą do tego popularne biblioteki:
    • Scrapy to wieloplatformowa, wydajna biblioteka z dużą społecznością użytkowników.
    • Beautiful Soup to prosta i mocna biblioteka do parsowania dokumentów HTML i XML. 
    • Selenium to narzędzie do automatyzacji i testowania aplikacji internetowych, które pozwala symulować pracę przeglądarki.
  • Systemy wbudowane w urządzeniach. Oprogramowanie napisane w Pythonie często spotykamy w minikomputerach Raspberry Pi, bankomatach, sprzęcie telekomunikacyjnym, obrabiarkach CNC i wielu innych urządzeniach.

  • Gry komputerowe. Python nadaje się do skryptowania scen, zdarzeń i postaci w grach komputerowych. Wszyscy znamy pythonowe gry, takie jak World of Tanks, EVE Online, Battlefield czy Civilization.

  • Administracja systemami. W tym obszarze Python pomaga automatyzować wykonywanie różnych zadań, a prostota i spójność jego składni pozwalają szybko znajdować błędy w kodzie. Jest też standardowym językiem programowania na wszystkich serwerach z Linuksem.

  • Uczenie maszynowe i sztuczna inteligencja. ML i AI to jedne z najpopularniejszych i najbardziej obiecujących zastosowań tego języka. Służą do tego specjalne biblioteki Pythona (TensorFlow, Scikit-Learn) przeznaczone do trenowania sieci neuronowych, sterowania systemami przemysłowymi i innych zadań z obszaru ML/AI.

  • Big data. Programiści używają Pythona, żeby analizować i wizualizować dane oraz aktywnie przewidywać trendy. Dostępny jest tu zestaw wyspecjalizowanych bibliotek do obliczeń i przetwarzania dużych zbiorów danych: SciPy, Matplotlib, PANDAS.

  • Aplikacje desktopowe. Choć język nie jest kompilowany, pomaga tworzyć programy desktopowe. Oto na przykład krótka lista popularnych aplikacji desktopowych napisanych w Pythonie:
    1. GIMP to edytor graficzny dla Linuksa;
    2. Ubuntu Software Center - centrum aplikacji w systemie Ubuntu (jednej z dystrybucji Linuksa);
    3. Blender to program do tworzenia grafiki 3D;
    4. Ansible to mechanizm zarządzania konfiguracją, który pozwala wdrażać oprogramowanie na wielu węzłach;
  • Aplikacje mobilne. Tworzenie aplikacji mobilnych w Pythonie jest mniej popularne. Dla Androida lepiej sprawdzają się JavaScript (nasz ulubiony? React Native!), C#, C++ i Kotlin. A dla iOS: Swift albo Objective-C. Pythona używa się zwykle do programowania serwerowej części aplikacji. Na przykład klient Instagrama na iOS jest napisany w Objective-C, a serwer w Pythonie. Pythonowe frameworki do tworzenia wieloplatformowych mobilnych aplikacji z GUI to Kivy i BeeWare.

Kivy - aplikacje mobilne w Pythonie

Kivy jest otwartoźródłowe, dostępne za darmo i pozwala tworzyć wieloplatformowe aplikacje z GUI. Wygląd takich aplikacji będzie dość naturalny, ale inny niż w pozostałych aplikacjach. Wszystkie widżety we frameworku są bowiem konfigurowalne, a nie standardowe. Dla Ciebie może to być znaczący plus wyróżniający Cię na tle konkurencji. Z drugiej strony aplikacja będzie nieco odbiegać od innych, natywnych. Nawet przy w pełni intuicyjnym interfejsie Kivy może raczej dezorientować użytkowników. Warto rozważyć zalety i wady przed wyborem tego frameworka.

 

kivy otwartoźródłowy framework pythona do tworzenia aplikacji

BeeWare - aplikacje mobilne w Pythonie

W odróżnieniu od Kivy ten framework ma w zestawie natywne narzędzia dla każdej platformy. Doświadczenie użytkownika nie będzie się więc różnić od aplikacji napisanych w Swifcie dla iOS czy w Javie dla Androida. Oczywiście wiąże się to z pewnymi cechami procesu wytwarzania: wiele elementów trzeba opisać i skonfigurować osobno dla każdej platformy. Dzięki wspólnemu językowi programowania trudności pojawiają się jednak tylko po stronie interfejsu. Resztę funkcjonalności napiszesz i wykorzystasz ponownie na obu platformach. Trzeba tylko pamiętać, że obie aplikacje będzie trzeba przetestować osobno.

 

beeware framework pythona

 

Kivy i BeeWare to całkiem obiecujące pythonowe frameworki do aplikacji mobilnych. Jeśli jednak Ci nie odpowiadają, wciąż jest w czym wybierać wśród alternatywnych frameworków.

 

  1. Python-for-Android. To narzędzie pozwalające Pythonowi działać z Androidem. Jego głównym zadaniem jest utworzenie folderu projektu ze wszystkimi narzędziami potrzebnymi do uruchomienia aplikacji mobilnej. Folder ten zawiera Kivy i różne biblioteki, takie jak Pygame czy SDL. Znajduje się w nim także loader w Javie, pośrednik między Kivy a systemem. Później dodasz swoje skrypty i skompilujesz aplikację przy użyciu Android NDK.

  2. PyJNIus. To framework zaprojektowany, by zapewnić współpracę Pythona z API Androida. Za pomocą tego API możesz uzyskać informacje z różnych części urządzenia mobilnego, w tym o wibracji, pauzie, restarcie i wielu innych. Główną wadą tego frameworka jest to, że wymaga solidnej znajomości API Androida i generuje sporo kodu. Warto wspomnieć, że javowy konkurent PyJNIus wygląda tak samo.

  3. Plyer. Celem tego projektu jest stworzenie prostego interfejsu w Pythonie, obejmującego funkcje, które znajdziesz na większości nowoczesnych platform mobilnych. Kod napisany przy użyciu Plyera wykona się na wszystkich obsługiwanych platformach, w tym na Androidzie, iOS, Linuksie, Windowsie i OS X. Jeśli chodzi o iOS, jest jeszcze jeden framework, którego możesz użyć - PyOBJus.

  4. PyOBJuS. To pythonowa biblioteka dająca dostęp do klas Objective-C.

python

Zalety

  • Główną zaletą Pythona jest jego prostota. Nie musisz spędzać miesięcy na nauce skomplikowanej składni jak w C++ ani martwić się wyciekami pamięci. Język zrobi wszystko za Ciebie.

  • To język interpretowany. Program w Pythonie to zwykły plik tekstowy, który uruchomisz na dowolnej platformie z zainstalowanym interpreterem.

  • Świetnie sprawdza się dla początkujących. Python jest dobrze zaprojektowany i logiczny. Do nauki nie musisz nawet znać angielskiego. Dzięki prostocie praca idzie dużo szybciej, bo programista pisze mniej kodu.

  • Język ma silną społeczność. Społeczność użytkowników Pythona jest tak duża, że przy niejasnym błędzie prawdopodobnie szybko znajdziesz rozwiązanie w internecie.

Wady

  • Programy w Pythonie należą do najwolniejszych. Aplikacje na iOS działają w Swifcie 8,7 razy szybciej niż w Pythonie. Implementacja PyPy zbliża się szybkością do Javy, ale nie ma wszystkich funkcji oryginalnego języka. Python nie nadaje się do zadań wymagających dużej ilości pamięci - lepiej rozwiązują je wstawki w C lub C++.

  • Zależność od bibliotek systemowych. Utrudnia to przenoszenie aplikacji na inne systemy. Żeby rozwiązać ten problem, wymyślono Virtualenv, ale i on ma wady: nadmiarowość pełnej izolacji, protezy i duplikowanie bibliotek systemowych.

  • Global Interpreter Lock (GIL). Nie pozwala on na jednoczesne wykonywanie wielu wątków w implementacji CPython. GIL można jednak tymczasowo wyłączyć, jak w pakiecie NumPy.

  • Dynamiczne typowanie. „Super!” - powiesz. „Czy dynamiczne typowanie nie jest świetne?”. Z jednej strony tak. Ale przez nie błędy widzisz dopiero w czasie działania programu, a nie kompilacji.

zalety pythona

Dlaczego warto tworzyć aplikacje mobilne w Pythonie

Wybierając język programowania do swojego produktu, zawsze zwróć uwagę na cechy i zalety każdej z opcji. Odpowiedz sobie na pytanie „co mi to da”, a znajdziesz rozwiązanie optymalne. Dlaczego więc warto tworzyć aplikacje mobilne w Pythonie:

 

  • Łatwy do czytania kod

Jeśli przy słowach „kod programu” widzisz obraz z mnóstwem linii, różnych słów, symboli, a przede wszystkim z masą nawiasów i długich opisów - to nie o Pythonie. Ten język pozwala opisać jednym słowem polecenie, które na przykład w Javie trzeba zapisać w pięciu liniach. 

 

Ponieważ kod w Pythonie łatwo się czyta, zyskujesz wiele korzyści. Nauka jest łatwa i szybka, więc do Twojego projektu zawsze znajdą się programiści. Dzięki wygodnej konstrukcji języka potrzebujesz mniej czasu na wytworzenie produktu. Im lżejszy i czytelniejszy kod, tym łatwiej znaleźć i naprawić błędy w projekcie oraz wprowadzić zmiany. Nowej osobie zajmuje dużo mniej czasu wdrożenie się w projekt. Szybko wgryza się w kod i jest gotowa do produktywnej pracy. O zaletach czytelnego kodu można mówić długo, ale wróćmy do tworzenia aplikacji mobilnych w Pythonie.

 

  • Wysoka kompatybilność

Wspominaliśmy już, że w Pythonie da się tworzyć aplikacje mobilne, a także programy desktopowe i strony internetowe. Tworząc aplikacje w tym języku, możesz pisać natywne aplikacje na Androida i iOS oraz aplikacje wieloplatformowe, które będą działać równie poprawnie na obu platformach.

Oszczędzasz w ten sposób pieniądze na ponownym tworzeniu tej samej aplikacji na inną platformę i skracasz o połowę czas wprowadzenia produktu na rynek, co na dzisiejszym mocno konkurencyjnym rynku aplikacji jest bardzo ważne.

 

  • Test Driven Development

Python umożliwia pracę w podejściu Test Driven Development. To całkiem ciekawe podejście do wytwarzania oprogramowania. Zakłada ono, że przed wprowadzeniem jakiejkolwiek zmiany w kodzie piszesz testy jednostkowe pokrywające tę zmianę. Dopiero potem następuje refaktoryzacja kodu.

 

Tworzenie aplikacji w Pythonie w ten sposób pozwala osiągnąć najefektywniejszą architekturę produktu. Zapewnia też wysokie pokrycie testami automatycznymi, co - przy zaliczeniu wszystkich testów - gwarantuje wysoką jakość produktu.

 

  • Wsparcie dla big data

Korzystanie z big data stało się w ostatnim czasie koniecznością. Firmy coraz częściej analizują informacje, żeby osiągać jeszcze lepsze wyniki. Dostępność bibliotek sprawia, że jest to proste i przystępne. Nieco dalej przyjrzymy się aplikacjom mobilnym w Pythonie, które z tego korzystają.

Jak widzisz, ten język ma wiele zalet. W wielu przypadkach tworzenia aplikacji mobilnych jest wręcz niezastąpiony. Doceniło to sporo naprawdę dużych firm i projektów. Niektóre mogą Cię zaskoczyć, ale wszystkie tylko potwierdzają wygodę pythonowych aplikacji dla biznesu i użytkowników.

 

przewodnik po pythonie

Jakich zasobów potrzebujesz, żeby stworzyć aplikację mobilną w Pythonie?

1. Czas

Jeśli chcesz zbudować aplikację, podstawowym zasobem jest czas. Okres zależy od złożoności pomysłu i poziomu Twoich umiejętności programistycznych. Średnio jednak stworzenie aplikacji mobilnej w dowolnym języku przez profesjonalnych programistów zajmuje od 3 miesięcy. 

 

Jeśli dopiero się uczysz, przygotuj się na dłuższą pracę. Początkującemu zajmie to sporo czasu. Sama nauka to co najmniej 2 miesiące (prognoza optymistyczna) - sprawdź badanie CareerCarma. To dobra platforma dla tych, którzy chcą nauczyć się Pythona. Znajdziesz tam tutoriale o tworzeniu aplikacji mobilnych w Pythonie oraz wskazówki, gdzie szukać darmowych kursów.

 

Jeśli marzysz o samodzielnej pracy nad projektem, musisz zaplanować wszystkie etapy. 

  1. Przygotowanie briefu dla programistów — 7-14 dni.
  2. Znalezienie dobrego zespołu — około 1 miesiąca.
  3. Projekt UX/UI — 1,5-3 miesiąca.
  4. Proces wytwarzania - 3 miesiące.
  5. Wydanie w App Store — do 14 dni.

Łącznie może to zająć do 8 miesięcy.

 

 

2. Pieniądze

Ostateczny koszt projektu będzie zależeć od:

 

  • Złożoności. Im prostsze zadanie, tym mniej programistów musisz zaangażować i tym tańszych specjalistów możesz zatrudnić.

  • Miejsca zamieszkania. Koszt amerykańskiego programisty będzie oczywiście wyższy niż europejskiego czy hinduskiego. Możesz rozwiązać ten problem, zatrudniając zdalnego specjalistę z kraju o niższych zarobkach. Wtedy jednak trzeba pokonać barierę językową i brak możliwości spotkania się na żywo w biurze, żeby omówić szczegóły projektu.

Oto statystyki średnich miesięcznych stawek programistów Pythona w różnych krajach według SalaryExpert, żebyś mógł oszacować potrzebny budżet:

 

zarobki programisty pythona

 

Jesteśmy przekonani, że o sukcesie każdego projektu decyduje zespół. Porównajmy koszt zespołu w USA i w Polsce.

 

Członek zespołu

Polska

USA

Programista Python

7600

9000

Projektant

1600

4700

Product Manager

6300

7500

Średnia kwota

USD 15500

USD 21200

Koszt zespołu miesięcznie w 2022 roku, 

według Indeed.com

Firmy, które wybierają Pythona

Startupy i firmy tworzące świetne platformy wybierają Pythona. Przedstawiamy listę znanych projektów, które używają Pythona.

 

Google - używa tego języka jako komponentu wyszukiwarki.

Dropbox - używa Pythona do optymalizacji backendu i frontendu.

Spotify - używa Pythona do analityki danych.

Instagram, Facebook - używają go po stronie serwera.

Amerykańska Agencja Bezpieczeństwa Narodowego – szyfruje i analizuje dane wywiadowcze.

Pixar - tworzy w Pythonie filmy animowane.

Intel, Cisco, HP, Seagate, Qualcomm i IBM testują i analizują rynek z pomocą Pythona.

NASA, Los Alamos i Fermilab - używają tego języka w obliczeniach naukowych.

 

Poza tym Pythona używają Positive Technologies, Houdini, Yahoo, Red Hat, Pinterest i Quora. Czy to nie inspirujące?

Udane przykłady aplikacji mobilnych w Pythonie 

Instagram

To ogólnoświatowa sieć społecznościowa z ogromną liczbą użytkowników i możliwości, intuicyjnym interfejsem i aplikacją na każdą platformę.

 

Instagram stał się dziś centrum najróżniejszych treści w najróżniejszych formach: zdjęć, filmów, animacji, naklejek, masek, filtrów, efektów wizualnych i tak dalej. Do tego możesz komunikować się z innymi i dzielić tym, co widzisz. Grono odbiorców tej sieci stale rośnie, co wymaga dobrego skalowania i rozkładania obciążenia. A jednocześnie Instagram powstał w całości w Pythonie, co pokazuje świetną skalowalność aplikacji w tym języku.

 

instaagram stworzony w pythonie

Pinterest

Ta aplikacja również jest zbudowana w całości w Pythonie, a dokładnie w jednym z jego frameworków - Django. Podobnie jak w przypadku Instagrama głównym celem aplikacji jest dzielenie się treściami zdjęciowymi i wideo. Ta sieć społecznościowa nie służy do prywatnej korespondencji, tylko do treści wizualnych. Jednocześnie jest tu świetna funkcja zapisywania dowolnej treści na własnej tablicy. Możesz „przypiąć” dowolny obraz, wgrać własne materiały, udostępnić artykuły czy inne treści z internetu. Pinterest mocno stawia na pracę z dużymi zbiorami danych. Liczba użytkowników też ma znaczenie, bo aplikacja jest popularna na całym świecie. A sądząc po liczbie pobrań, wciąż rośnie.

 

pinterest stworzony w pythonie

Spotify

Wszyscy znamy tę aplikację z muzyką. Każdy wie, że rośnie i rozwija się błyskawicznie, zajmując miejsce na szczycie. Przenieśmy więc uwagę na to, że algorytmy tej aplikacji, które pozwalają dobierać i proponować użytkownikom muzykę, są częścią big data i uczenia maszynowego.

 

spotify stworzony w pythonie

Quora

To jednocześnie sieć społecznościowa i serwis internetowy, który pomaga prowadzić dyskusje i obsługiwać komentarze na wielu stronach na świecie. Napisana w Pythonie aplikacja zyskała popularność. Jest bardzo przyjazna użytkownikom, ma różne opcje logowania i autoryzacji oraz możliwość moderowania wiadomości, co gwarantuje zdrową atmosferę i zaufanie do aplikacji.

 

Dropbox

To pythonowa aplikacja dostępna nie tylko na urządzeniach mobilnych, lecz także na komputerach. Przechowywanie i udostępnianie plików wymaga hostingu, który bezpiecznie pomieści wszystkie potrzebne dokumenty, zdjęcia, nagrania audio, filmy i inne pliki. Ta funkcja zyskała popularność wśród firm i zwykłych użytkowników. Znów widzimy tu zdolność Pythona do obsługi wprost niewyobrażalnych ilości danych w systemie.

 

dropbox stworzony w pythonie

Uber

Porozmawiajmy o pracy z dużą ilością danych i wygodnym interfejsie użytkownika. Aplikacja taksówkowa pełni funkcję zamawiania przejazdu. Dostarcza też jedzenie. To najlepszy przykład dużej aplikacji mobilnej zbudowanej z użyciem Pythona. Są różne kategorie użytkowników, a każda ma własną funkcjonalność i własny interfejs. Aplikacja pozostaje przy tym niezmiennie wygodna i doceniana przez swoich odbiorców. Codziennie powstaje niezliczona liczba zamówień i - jak widać - Uber i Python świetnie sobie razem radzą.

 

uber stworzony w pythonie

Reddit

Mamy jeszcze jedną viralową sieć społecznościową, w której znajdziesz ludzi do dyskusji o wszystkim. Zacznij dowolną dyskusję o newsach, oceniaj i komentuj. Ta aplikacja również trafiła do wielu użytkowników i zajęła miejsce na ich ekranach głównych. Wszystkie funkcje Reddita zaimplementowali programiści Pythona.

 

reddit stworzony w pythonie

 

Zrobiliśmy to zestawienie, żeby zainspirować Cię do kroków we właściwym kierunku. Świetne przykłady, udane i duże projekty! Rozumiemy, że Twój produkt jest wyjątkowy i chcesz mieć pewność, że wybierzesz właściwy, profesjonalny zespół programistów. Pomożemy Ci znaleźć utalentowanego programistę z odpowiednim doświadczeniem i portfolio zrealizowanych zadań.

Dawid Karczewski

Dawid jest full stack developerem. Tworzy aplikacje w Ruby on Rails i React Native od pierwszego pomysłu aż po wdrożenie. Buduje dla naszych klientów rozwiązania, które pomagają im rosnąć.

Zobacz wszystkie wpisy autora
Python_ The Definitive Business Guide

Python: kompletny przewodnik biznesowy

Dla cyfrowych przedsiębiorców i product ownerów

Czytaj teraz
Frame 29
Chcesz zatrudnić Dawida?
Jeśli chcesz dowiedzieć się więcej o dostępności Davida, umówmy się na rozmowę. David to doświadczony full-stack developer z bogatym doświadczeniem w programowaniu w Pythonie.
Umów konsultację

Szukasz ekspertów od Pythona do swojego zespołu?

W naszej sieci talentów czekają dziesiątki zweryfikowanych specjalistów Python.