Witam ! Mam pytanie do osób pracujących w firmach tworzących aplikacje na androida. W jakich programach piszecie kod itp. ?
Chodzi o to czy takie firmy używają np. Android Studio czy jakiś innych IDE.

- Rejestracja:prawie 7 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Tuchów
- Postów:105

- Rejestracja:ponad 9 lat
- Ostatnio:11 miesięcy
- Postów:4700
Aplikacje natywne pisze się obecnie tylko i wyłącznie w Android Studio. Z kolei aplikacje hybrydowe czyli Ionic, React Native pisze się w Visual Studio Code, Webstorm, Atom. Do Xamarin oczywiście Visual Studio.
Ostatnio pojawił się jeszcze Flutter i tutaj najpopularniejsze IDE to Android Studio oraz Visual Studio Code.

- Rejestracja:ponad 9 lat
- Ostatnio:11 miesięcy
- Postów:4700
@cerrato -
Generalnie można wyróżnić trzy rodzaje aplikacji, które pisze się na Androida:
- natywne
- hybrydowe
- webowe
Hybrydowe (Ionic, Cordova) to takie do których tworzenia używa się technologii webowych: html5, js, css. Taka aplikacja jest uruchamiana w natywnym kontenerze WebView i jest to tak naprawdę stroną Internetowa, która udaje aplikację natywną. Użytkownik zazwyczaj nie widzi i nie odczuwa różnicy jeżeli aplikacja jest dobrze zaprojektowana i zoptymalizowana.
React Native działa nieco inaczej, ponieważ nie używa WebView tylko tzw. mostka, który jest zbudowany w C/C++ i uruchamia kod JS oraz prowadzi komunikację pomiędzy wątkami JS, a wątkami natywnymi. Z tego też względu React Native zazwyczaj zapewnia lepsze efekty niż aplikacje hybrydowe.
Flutter z kolei działa jeszcze inaczej i jego działanie przypomina działanie frameworków do tworzenia gier, ponieważ rysuje swoje komponenty na Skia canvas napisanym w Darcie, a następnie używając GPU urządzenia wyświetla go na ekranie z częstotliwością 60fps.
Dzięki za wyjasnienia.
A teraz wytłumacz jak dziecku (prosto i zakładając, że odbiorca ma zerowy poziom wiedzy) - po co są takie rodzaje/typy wprowadzone? Czemu nie jest tak, jak np. w pisaniu aplikacji na desktopy, czyli że pisze się w jakimś języku, potem to kompiluje i już. Po co wprowadzili te 3 "levele"? Czy chodzi o ułatwienie portowania apek z innych OS'ów, czy jeszcze o coś innego? Na pewno takie zamieszanie z czegoś wynika i czemuś ma służyć.

- Rejestracja:ponad 8 lat
- Ostatnio:ponad 5 lat
cerrato napisał(a):
Dzięki za wyjasnienia.
A teraz wytłumacz jak dziecku (prosto i zakładając, że odbiorca ma zerowy poziom wiedzy) - po co są takie rodzaje/typy wprowadzone? Czemu nie jest tak, jak np. w pisaniu aplikacji na desktopy, czyli że pisze się w jakimś języku, potem to kompiluje i już. Po co wprowadzili te 3 "levele"? Czy chodzi o ułatwienie portowania apek z innych OS'ów, czy jeszcze o coś innego? Na pewno takie zamieszanie z czegoś wynika i czemuś ma służyć.
Zakładam, że czystemu urozmaiceniu ;-) Jak ktoś ma stack typowo JSowy to może sobie machnąć przód, tył i mobilkę tylko w JS za pomocą frameworków. Nie wiem jak z wydajnością ale kilka lat temu aplikacje potrzebujące wydajności pisało się natywnie. Do prostego wyświetlania jakichś pierdół można było zaciągnąć nienatywne technologie. Strzelam, że dziś to uległo nieco zmianie. I chyba złożenie aplikacji nienatywnie jest trochę szybsze - kroisz jedną na Androida i iOS. Natywnie musisz chyba to jednak pisać osobno co wydłuża, a jeśli nie wydłuża to powoduje, że proces wytwarzania kosztuje więcej.

- Rejestracja:ponad 9 lat
- Ostatnio:11 miesięcy
- Postów:4700
Rzeczywiście nie napisałem najważniejszego po co to tak naprawdę powstało :D Przed powstaniem frameworków hybrydowych firmy musiały napisać aplikację webową w html, js, css dla klientów korzystających z przeglądarki czy to na desktopie czy na komórce, a dodatkowo musiały napisać aplikację mobilną natywną w Objective-C pod iOS oraz w Javie pod Androida. Czyli tak naprawdę miały jeden produkt czy jeden sklep, a musiały stworzyć i utrzymać trzy różne aplikacje, w trzech zupełnie innych językach i technologiach. Dodatkowo musiały utrzymać trzy zespoły programistów, ponieważ ciężko znaleźć jeden zespół, który ogarnie wszystko albo musiały kupić aplikacje mobilne w jakimś software-housie.
Frameworki hybrydowe oznaczały ograniczenie kosztów i ułatwienie dla firm, którym zależało na szybkim dostarczeniu aplikacji na wszystkie platformy, ponieważ tworzyły tylko jedną aplikację w HTML/JS/CSS zamiast trzech. Z tego też względu najpierw pojawiły się właśnie aplikacje hybrydowe, a później React Native, Xamarin, a ostatnio Flutter, które to technologie umożliwiają utworzenie jednej aplikacji na wszystkie platformy web/ios/android albo przynajmniej duży code-reuse sięgający 70-90% pomiędzy aplikacjami.
Dodam jeszcze, że firmom nie mogła wystarczyć tylko aplikacja webowa, ponieważ aplikacja natywna umożliwiała większą retencję użytkowników, poprzez wyświetlanie powiadomień albo integrację z sensorami urządzenia np. GPS, aparat itd.