Jaki stack technologiczny wybrać do nauki pod stworzenie konkretnej aplikacji

0

Chciałbym stworzyć aplikację mobilną, która docelowo stałaby się przynoszącym dochody produktem. Aplikacja będzie na pewno połączona z AI typu analiza obrazów i tekstu oraz domyślnie prostymi animacjami 3D. Dodatkowo byłaby crawlerem przeszukującym konkretne strony internetowe w poszukiwaniu produktów. Moim celem jest stworzenie aplikacji zarówno na platformę Android jak i iOS, aby trafiła do jak największej liczby potencjalnych klientów.

Zrobiłem research i natrafiłem na trzy najbardziej popularne frameworki do tworzenie aplikacji mobilnych cross-platformowych.

  1. React-native
  2. Flutter
  3. Xamarin
    Teraz moje pytanie - której z nich powinienem się zacząć uczyć, żeby opisaną powyżej aplikację stworzyć? Dodatkowo planuję w przyszłości założyć startup i zatrudniać ludzi, w związku z tym chodzi również o popularność frameworka. Przeglądałem oferty pracy i React oraz Flutter zdecydowanie wygrywają z Xamarinem więc zakładam, że między tymi dwoma bym wybierał.

Jeżeli zdecydowałbym się na tworzenie aplikacji pod Androida i iOS, ale natywnie to miałbym nieco większe możliwości wynikające z natywności właśnie. Z drugiej strony wzrosłyby koszta. Jeśli jednak uważacie, że taką aplikację lepiej stworzyć natywnie korzystając z Kotlina i Swifta to chętnie się dowiem dlaczego. :)

Z góry dziękuję za pomoc i poświęcony czas

1

Flutter przebija obie technologie imo. O xamarin zapomnij

0

Aplikacja będzie na pewno połączona z AI typu analiza obrazów i tekstu oraz domyślnie prostymi animacjami 3D

AI po stronie frontendu czy backendu będzie?

1

Xamarin to przeszłość, zastąpił go .NET MAUI ale nie wiem czy jest gotowy na produkcję, docelowo ma zdaje się mieć możliwość integracji z react-native. Jak znasz już react/dart/c# i chcesz szybko zrobić appkę to wybór prosty. Jak zaczynasz od zera to stawiałbym na react-native. Flutter jest od google, a z doświadczenia wiem że wszystko od G to g.

Shizzer napisał(a):

Jeżeli zdecydowałbym się na tworzenie aplikacji pod Androida i iOS, ale natywnie to miałbym nieco większe możliwości wynikające z natywności właśnie.

Trochę się bawiłem MAUI i to że robisz appkę na wiele platform nie wyklucza korzystania z natywnych możliwości. Nie widzę żadnych plusów pisania odrębnych aplikacji na każdą platformę może poza wydajnością - pisanie pod konkretną platformę powinno dawać najlepsze rezultaty wydajnościowe i najbardziej natywny wygląd. Tak czy inaczej musisz dostosować aplikację pod każdą platformę żeby dostosować się do userów platformy którzy mają już pewne przyzwyczajenia.

Shizzer napisał(a):

Dodatkowo byłaby crawlerem przeszukującym konkretne strony internetowe w poszukiwaniu produktów. Moim celem jest stworzenie aplikacji zarówno na platformę Android jak i iOS

Nie wiem jak sobie to planujesz, ale wiedz że praca w tle na androidzie praktycznie już nie jest możliwa. Aplikacje na androida od kilku wersji praktycznie nie mają już żadnej możliwości pracy w tle, zostają przypadkowo ubijane lub spowalniane i mają tylko możliwość krótkiego zareagowania na pusha z FCM lub synchronizacji w losowych momentach, zwłaszcza na samsungach, oneplus, huawei i xiaomi - https://dontkillmyapp.com/ Apka może robić coś konkretnego tylko jak user na nią patrzy i utrzymuje z nią interakcję.
Coś takiego jak crawler lepiej robić na serwerze

0
Descendant napisał(a):

Flutter przebija obie technologie imo. O xamarin zapomnij

A mógłbym Cię prosić o argument dlaczego tak twierdzisz? Bardzo by mi to pomogło

LukeJL napisał(a):

AI po stronie frontendu czy backendu będzie?

Szczerze mówiąc ciężko mi to dopasować z moim obecnym poziomem wiedzy z AI. Docelowo apka ma skanować pewien model 3D i do niego dopasowywać zdjęcia na podstawie tego co wyciągnie z uczenia maszynowego i analizy obrazów

obscurity napisał(a):
Shizzer napisał(a):

Dodatkowo byłaby crawlerem przeszukującym konkretne strony internetowe w poszukiwaniu produktów. Moim celem jest stworzenie aplikacji zarówno na platformę Android jak i iOS

Nie wiem jak sobie to planujesz, ale wiedz że praca w tle na androidzie praktycznie już nie jest możliwa. Aplikacje na androida od kilku wersji praktycznie nie mają już żadnej możliwości pracy w tle, zostają przypadkowo ubijane lub spowalniane i mają tylko możliwość krótkiego zareagowania na pusha z FCM lub synchronizacji w losowych momentach, zwłaszcza na samsungach, oneplus, huawei i xiaomi - https://dontkillmyapp.com/ Apka może robić coś konkretnego tylko jak user na nią patrzy i utrzymuje z nią interakcję.
Coś takiego jak crawler lepiej robić na serwerze

Ten crawler nie musiałby działać w tle więc być może źle to określiłem bo crawler to bot a tu bota nie potrzebuję. Po prostu apka by ściągała informacje z różnych stron internetowych po kliknięciu przycisku przez użytkownika a następnie mu je prezentowała

0

Żadnej, czy jakbyś chciał zbudować SOBIE dom to byś zapytał "jakiej wiertarki nauczyć się obsługiwać" a potem zamieszkał w nim bez strachu o to że zawali się na ciebie?

Albo naucz się budować u kogoś, dla kogoś, pod okiem kogoś (forum to nie jest najlepsza forma nauki), za czyjeś pieniądze, albo zatrudnij indiana co ci to zbuduje za miskę ryżu.

Jako przykład podam to
Pobranie wierszy z Room w jednej aktywności zwraca pustą listę, a w innej recyclerView wszystko wyświetla dobrze
Ktoś zadał bardzo specyficzne pytanie, gdzie wszystko co tam jest naklepane jest niezgodne ze sztuką i trzebaby mu powiedzieć: wyrzuć to wszystko do kosza. Ale nikt mu nie powie jak to poprawnie napisać bo to wymaga czasu a nikt go nie będzie za darmo poświęcał.

0
marian pazdzioch napisał(a):

Żadnej, czy jakbyś chciał zbudować SOBIE dom to byś zapytał "jakiej wiertarki nauczyć się obsługiwać" a potem zamieszkał w nim bez strachu o to że zawali się na ciebie?

Jeżeli istnieje forum to korzystam z pomocy tak jak sam jej tutaj udzielałem. Mógłbym się zacząć uczyć którejkolwiek technologii bo uczyłem się już trochę programowania w życiu i nie tylko. Chciałem po prostu zapytać o różne opinie jeśli ktoś chciałby je wyrazić. Sam zrobiłem research a teraz pytam o opinię bardziej doświadczonych w tej konkretnej działce ludzi ode mnie żeby nie tracić czasu na naukę czegoś co mi się nie przyda. Co w tym złego?

1
  1. Rób w tej technologii którą znasz - robisz front i znasz react native - react native bedzie dobrym rozwiazaniem.
  2. Nie rób w Xamarinie
  3. Wedlug mnie flutter vs reactnative - flutter. Ja nie znam sie na froncie, programuje androida ponad 10 lat, z rok, poltora we fluterze.
  4. Jest jeszcze KMM

Jesli chcesz wziac multiplatform i nie znasz reacta to flutter jest bardzo dobrym wyborem. We fluterze mozesz tez zrobic strone internetowe ktora co prawda po pierwsze nie chodzi blyskawicznie po drugie jak pamietam SEO nie istnieje ale dziala. Moze to sie przydac do dostania dofinansowania od VC / angel investors.

Uwaga - jesli klepiesz cos bardzo specyficznego np ARCore z AI to rozwazalbym jednak robie aplikacji natywnych i rozpoczecie od iosa. Dlaczego? Mozesz kopac sie z koniem tzn flutterem zeby obejsc jakis problem ktory nie zostal jeszcze przenisiony z natywnego rozwiazania do fluttera.

Warto wedlug mnie zrobic PoC we fluterze czy w ogole to co chcesz uzyskac da rade zrobic i zobaczyc ile WTF / min bedziesz miec.
image

2
Shizzer napisał(a):

Jeżeli zdecydowałbym się na tworzenie aplikacji pod Androida i iOS, ale natywnie to miałbym nieco większe możliwości wynikające z natywności właśnie. Z drugiej strony wzrosłyby koszta. Jeśli jednak uważacie, że taką aplikację lepiej stworzyć natywnie korzystając z Kotlina i Swifta to chętnie się dowiem dlaczego. :)

Embarcadero Delphi lub C++ :-) Poważnie warto to rozważyć.
Jedna aplikacja, jeden kod z automatu działa na platformach: Win, Android, Mac, IOS. Do tego banalna integracja z OpenGL czy SDL jeśli chcesz więcej grafiki 3D dodatkowe zalety to szybkość działania bo kod kompilowany pod konkretny CPU i wiele innych. Masz także wsparcie dla TensorFlow (AI).

Polecam rozważyć tą opcję - najwyżej się nie spodoba. Obecnie większość programistów moim zdaniem "zbyt ślepo zapatrzonych w nowe technologie" śmieje się z Embarcadero ale gdyby zapytać w jakim innym zintegrowanym i profesjonalnym środowisku można tak szybko, łatwo i bez wielu ograniczeń zrobić aplikację na Win, Android i MAC to już śpiewają nieco ciszej :-) Teoretycznie z całą swoją ociężałością można użyć Xamarin i to moim zdaniem druga sensowna opcja.

Warto zerknąć:
https://www.embarcadero.com/products/cbuilder
https://www.embarcadero.com/products/delphi

1
Shizzer napisał(a):
Descendant napisał(a):

Flutter przebija obie technologie imo. O xamarin zapomnij

A mógłbym Cię prosić o argument dlaczego tak twierdzisz? Bardzo by mi to pomogło

We flutterze mozna pisac natywne pluginy. Jesli potrzebujesz czegos mocno customowego/natywnego z ios/androida to osoba która ogarnia android/ios moze napisac taką paczke

1 użytkowników online, w tym zalogowanych: 0, gości: 1