Przymierzam się by samemu napisać aplikację na Androida (api consumer mojego serwisu web).
Chciałbym się poradzić kogoś doświadczonego od czego mam zacząć.
Przejrzałem Googla i wychodzi mi Android Studio + Kotlin, ale gdy sam testowałem przekładowe aplikacje na te napisanie w czystej Javie działały, a ok. 30% napisanych w Kotlinie się wywalało.
Wydaje się, że takie rozwiązania jak React Native czy Flutter nie przyjmą się.
Dobrze kombinuję Android Studio + Java?
A i jeśli ktoś poradzi najlepszy tutorial dla początkującego android developera, nie jest ważne czy płatny czy darmowy.
Zaznaczę że ogólnie podstawy programowania i działania sieci jakieś tam mam...
h2o napisał(a):
, a ok. 30% napisanych w Kotlinie się wywalało.
My nie uznajemy słowa "wywala", "nie działa" itd
Błąd kompilacji? Jak brzmi?
Wyjatek podczas wykonania? Jego treść.
Zaznaczę że ogólnie podstawy programowania i działania sieci jakieś tam mam...
Za wyjątkiem w/w zasady na pewno. Bo to też podstawa.
ZrobieDobrze napisał(a):
h2o napisał(a):
, a ok. 30% napisanych w Kotlinie się wywalało.
My nie uznajemy słowa "wywala", "nie działa" itd
Błąd kompilacji? Jak brzmi?
Wyjatek podczas wykonania? Jego treść.Zaznaczę że ogólnie podstawy programowania i działania sieci jakieś tam mam...
Za wyjątkiem w/w zasady na pewno. Bo to też podstawa.
A zrozumiałeś o co się pytam w moim wpisie?
h2o napisał(a):
ale gdy sam testowałem przekładowe aplikacje na te napisanie w czystej Javie działały, a ok. 30% napisanych w Kotlinie się wywalało.
Ciężko zrozumieć ten fragment ale spróbuję. Masz na myśli że podczas swojego doświadczenia w testowaniu, miałeś styczność z aplikacjami napisanymi zarówno w javie jak i w kotlinie. Następnie te w javie były niezawodne a te w kotlinie się 'wywalały', dobrze myślę?
Ale jakie z tego wnioski?
Może opowiesz więcej o tych aplikacjach. Rząd wielkości/ funkcjonalności/ kto je pisał.
Wniosek na podstawie tego co działa i tego co nie działa. Skoro nie działa "przykładowa aplikacja" to znaczy, że się nie nadaje. A przykładowej aplikacji we Fluterze już nie odpadaliłeś, tylko od razu z góry założyłeś, że się "nie przyjmie".
Jeśli mam dołożyć coś od siebie, to próbowałem - Xamarina, Kotlin/Java i Flutter - i tylko ten ostatni spełnił wszystkie moje wymagania zarówno funkcjonalności jak i wygody w developerce.
AdamWox napisał(a):
Wniosek na podstawie tego co działa i tego co nie działa. Skoro nie działa "przykładowa aplikacja" to znaczy, że się nie nadaje. A przykładowej aplikacji we Fluterze już nie odpadaliłeś, tylko od razu z góry założyłeś, że się "nie przyjmie".
Jeśli mam dołożyć coś od siebie, to próbowałem - Xamarina, Kotlin/Java i Flutter - i tylko ten ostatni spełnił wszystkie moje wymagania zarówno funkcjonalności jak i wygody w developerce.
Pierwszy rozsądny(częściowo) głos. Skąd założenie, że nie odpaliłem przykładowej aplikacji we Flutterze?
Czy Flutter oferuje 100% możliwości i elastyczności Javy (przy pisaniu aplikacji na Androida) zarówno w funkcjonalności jak i tworzeniu UI?
Jak duże masz doświadczenie w tworzeniu apek na Androida?
Nie mam dużo aplikacji w tym napisanych. Jedna jest na sklepie. Głównym powodem wybrania fluttera jest właśnie UI. To co oferuje java/kotlin i XML jest dla mnie kompletnie niezrozumiałe. Drzewko widgetów i to co oferuje w kwestii customizacji Flutter jest mistrzostwem. Czas jaki potrzebowałem na zrobienie tego samego w obu technologiach nie jest nawet bliski, Flutterem ogarnąłem to w parę minut. Jeśli już przyzwyczaisz się do specyficznej składni Fluttera, to tylko wyobraźnia jest limitem.
Polecam It's all Widgets
Wg mnie zacząć od Android Studio + Kotlin. Działa bardzo dobrze, nie ma też problemu z miksem językowym JAVA i Kotlin.
Ostatnio bardzo popularnym staje się stosowanie Jetpack Compose.
Ja jestem urzeczony tym rozwiązaniem.
Bardzo fajnie działa też wspomniany Flutter i wg mnie daleko jest mu do "nie przyjęcia".
Dużą zaletą Flutter jest multiplatformowość co w dzisiejszym czasach ma duże znaczenie.
Kotlin też ma możliwość pisania aplikacji multiplatformowych, ale wg mnie kawał jeszcze pracy przed JetBrains i samą społecznością, żeby to było tak fajne narzędzie jakim jest np. Flutter.
Ale trzymam kciuki.
Flutter bardzo podobny jest do Jetpack Compose. Dokładnie takie samo podejście code first ui i podobne zarządzanie stanem aplikacji. Widać tu pewne trendy i wygląda na to, że to właśnie takie podejście się przyjmie. Apple też wprowadził zresztą coś podobnego na iOS w swoim Swift UI.
AdamWox napisał(a):
Nie mam dużo aplikacji w tym napisanych. Jedna jest na sklepie. Głównym powodem wybrania fluttera jest właśnie UI. To co oferuje java/kotlin i XML jest dla mnie kompletnie niezrozumiałe. Drzewko widgetów i to co oferuje w kwestii customizacji Flutter jest mistrzostwem. Czas jaki potrzebowałem na zrobienie tego samego w obu technologiach nie jest nawet bliski, Flutterem ogarnąłem to w parę minut. Jeśli już przyzwyczaisz się do specyficznej składni Fluttera, to tylko wyobraźnia jest limitem.
Polecam It's all Widgets
A mógłbyś na priv dać linka/nazwę? Chciałbym to sobie obejrzeć, dwie które znalazłem w sklepie średnio sobie radziły z wydajnością
Z tej strony którą poleciłeś apka Niochi - Sentez-vous chez vous (Madede) jest napisana cała we Flutterze? Bo chodzi nawet przyzwoicie. Ale inna (Japan Travel Guide) już tak sobie,,,
Robert Karpiński napisał(a):
Wg mnie zacząć od Android Studio + Kotlin. Działa bardzo dobrze, nie ma też problemu z miksem językowym JAVA i Kotlin.
Ostatnio bardzo popularnym staje się stosowanie Jetpack Compose.
Ja jestem urzeczony tym rozwiązaniem.Bardzo fajnie działa też wspomniany Flutter i wg mnie daleko jest mu do "nie przyjęcia".
Dużą zaletą Flutter jest multiplatformowość co w dzisiejszym czasach ma duże znaczenie.Kotlin też ma możliwość pisania aplikacji multiplatformowych, ale wg mnie kawał jeszcze pracy przed JetBrains i samą społecznością, żeby to było tak fajne narzędzie jakim jest np. Flutter.
Ale trzymam kciuki.
Dzięki, o to mi chodziło. Widzę, że Google promuje Kotlina, może ma to związek ze sprawami prawnymi do używania nazwy (Java należy do Oracla), bo z wydajnością rozumiem nie będzie lepiej.
Flutter IMO się przyjmie, gdy Google zrezygnuje z Androida/jvm i napisze nowy system w Darcie. Czyli na dzisiaj Android Studio + Kotlin + Jetpack Compose.
gajusz800 napisał(a):
Flutter bardzo podobny jest do Jetpack Compose. Dokładnie takie samo podejście code first ui i podobne zarządzanie stanem aplikacji. Widać tu pewne trendy i wygląda na to, że to właśnie takie podejście się przyjmie. Apple też wprowadził zresztą coś podobnego na iOS w swoim Swift UI.
Zobaczę ten Jetpack Compose.
A co z tutorialem, ktoś/coś może polecić?
Nie żebym sobie nie poradził z materiałami od Googla czy helpem, ale chciałbym zapoznać się w miarę z optymalnym workflow, swojego czasu straciłem niepotrzebnie sporo czasu (i trochę pieniędzy) na mało przydatne i przygotowane przez "średnich" dydaktyków, którzy chyba nie do końca orientowali się w tym czego uczą.
Mojej aplikacji nie obejrzysz, ponieważ pisze programy biznesowe, dla konkretnych firm. Musiałbym Ci dać logowania, a tego zrobić nie mogę.
vous (Madede) jest napisana cała we Flutterze? Bo chodzi nawet przyzwoicie. Ale inna (Japan Travel Guide) już tak sobie,,,
Zdajesz sobie sprawę z tego, że wydajność jest zależna od programisty? To nie Flutter, tylko źle wykorzystany Flutter. Nie rozumiem jak sugerowanie się (cudzą) wydajnością ma ciebie nakierować na wybór technologii. Takie zamulające babole można napisać w każdym języku i technologii jak nie zrobi się tego dobrze. Takie babole pisałbym ja w java/kotlin jakbym musiał, bo nie znam i pisałbym byleby działało. Są zasady, których musisz się trzymać, bo tego wymaga technologia, ale to nie może być twoją miarą wydajności, która wpływa na decyzję wyboru technologii.
Jeżeli bym miał wybierać Fluttera albo JetpackCompose to pewnie bym jednak wolał Fluttera. Choćby dlatego, że jego popularność coraz szybciej rośnie i widać że się przyjął. Czy przyjmie się JetpackCompose, tego do końca jeszcze nie wiadomo. To wygląda tak, jakby Google zachęcony sukcesem Fluttera postanowił zrobić coś podobnego w Kotlinie, czy to zastąpi normalne Android SDK czy nie, tego jeszcze nie wiadomo. Na razie jedno i drugie jest rozwijane równolegle.
AdamWox napisał(a):
Mojej aplikacji nie obejrzysz, ponieważ pisze programy biznesowe, dla konkretnych firm. Musiałbym Ci dać logowania, a tego zrobić nie mogę.
vous (Madede) jest napisana cała we Flutterze? Bo chodzi nawet przyzwoicie. Ale inna (Japan Travel Guide) już tak sobie,,,
Zdajesz sobie sprawę z tego, że wydajność jest zależna od programisty? To nie Flutter, tylko źle wykorzystany Flutter. Nie rozumiem jak sugerowanie się (cudzą) wydajnością ma ciebie nakierować na wybór technologii. Takie zamulające babole można napisać w każdym języku i technologii jak nie zrobi się tego dobrze. Takie babole pisałbym ja w java/kotlin jakbym musiał, bo nie znam i pisałbym byleby działało. Są zasady, których musisz się trzymać, bo tego wymaga technologia, ale to nie może być twoją miarą wydajności, która wpływa na decyzję wyboru technologii.
Jest. Ale nie zmienia to faktu, że jeden język jest szybszy a drugi wolniejszy. Przejrzałem parę blogów z wpisami Flutter vs native, większość opinii jest zgodna - program napisany w językach natywnych jest bardziej wydajny i ma większe możliwości (ale napisanie jest bardziej czasochłonne), gotowa apka waży też mniej. Zaleta fluttera to oszczędność czasu przy pisaniu prostych aplikacji, przy bardziej złożonych może się okazać, że jest odwrotnie. Dodatkowo przejrzałem dokumentację fluttera i darta i pojawiają się "not implemented yet" nawet http call jest z modułu o podejrzanie brzmiącej nazwie Future.
EOT
Dziękuje wszystkim za wyrażenie swojej opinii
Future
to wynik asynchronicznej operacji, coś jak Promise
w JS.
Jak ty tak podchodzisz do problemu to faktycznie pisz sobie w Javie. Zrozumiałbym jeszcze jakby twój program miał rozwiązywać skomplikowane zadania, obliczenia, czyli coś czego (jeszcze) Flutter może nie ogarnąć. A ty piszesz zwykłą apkę, pewnie jakiś CRUD, pod to co już masz przez www i na siłę doszukujesz się wad, bo nic innego nie ogarnie tego przyszłego "kombajnu" możliwości, tylko native.
PS.
Dobrze mi się wydaje, że aplikacja Facebook jest napisana w React Native?
O mamo wiem ze to na poczatku nie jest jasne ale zanim bedziesz w stanie napisac jakiegos prostego i nie wywalającego sie klienta rest api(aka apka mobilna) to pewnie nie bedzie to mialo znaczenia czy napiszesz to w javie kotlinie czy flutterze.
Jak chcesz zaczac: Kotlin. Zrob kirs na hyperskillu, potem kotlin koans i zacznij pisac pierwsze apki.
Te mityczne róznice w wydajnosci zaczną byc zauważalne przy bardzo skomplikowanych projektach, za wiele lat od rozpoczecia nauki :)
Jesli chodzi o apki, to dowod anegdotyczny z mojej strony, mniejsze organizacje(male firmy, jakies apteki etc) używaja fluttera czy react native, w wiekszosci.
Reszta wiekszych Klientow z ktorymi wspolpracowalem pisze tylko w technologiach natywnych, dla Androida wybierajac Kotlina. Tu mowie juz o aplikacjach z setkami tysiacow aktywnych Userow i wiecej. To tylko moje doswiadczenia ale do duzych projektow nie widzialem jeszcze wybranego fluttera czy reacta.
Kerubyte napisał(a):
O mamo wiem ze to na poczatku nie jest jasne ale zanim bedziesz w stanie napisac jakiegos prostego i nie wywalającego sie klienta rest api(aka apka mobilna) to pewnie nie bedzie to mialo znaczenia czy napiszesz to w javie kotlinie czy flutterze.
Dla mnie by miało.
Oprócz pixel-perfect frontendu, jaki obiecuje flutter, ważne mogą być inne zagadnienia - dla mnie np użycie tej samej biblioteki "algorytmicznej" co w serwerowym backendzie, z ekosystemu JVM ale nie fluttera
Nie każda apka to ma byc "zajedwabista" na rynek konsumencki, niektóre są wizualnie bardzo ascetyczne, bo nie w tym ich rola
Tak więc oprócz wzrokowej doskonałości, wydajności czy "wydajności" *)
są i inne czynniki: reuse kodu, kompatybilność
*)
przypomina mi się religina wiara w wydajnosc apliakcji GUI napisanych w C++ "bo są napisane w języku natywnym", a naprawdę 75% interpretowane na runtime.