Android Studio, Kotlin i quiz app - > prośba o rade

Android Studio, Kotlin i quiz app - > prośba o rade
VA
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:3
1

Witam!

Mam za zadanie zrobić aplikacje typu quiz na platformie Android Studio, która ma monitorować postęp (potrzebne logowanie). W tym celu wziąłem się za zaznajomienie z Kotlinem, potem kursy z Android Studio. Wszystko wydawało mi się jasne. Za pomocą tutoriali z YouTube zrobiłem logowanie (google firebase), utknąłem próbując zrobić profil użytkownika.

Chce się tego nauczyć. Tylko robienie poszczególnych części z różnych tutoriali na YouTube niezbyt mi wychodzi, bo cały projekt ostatecznie się sypie a ja przestaje się orientować w kodzie.

Mógłbym prosić o rade osób doświadczonych w temacie jak się za to zabrać i zebrać wszystko do kupy? Jest to mój pierwszy projekt tego rodzaju.

AM
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 3 lata
  • Postów:68
2

Hmm,
nie opisałeś z czym masz problem przy tworzeniu profilu użytkownika.

Ogólnie przejrzyj sobie https://github.com/android/architecture-components-samples
Jak nie wiesz jak tworzyć ekrany to rób na fragmentach plus do tego navigation component https://developer.android.com/guide/navigation/navigation-getting-started
Chcesz dane trzymać lokalnie na telefonie to dla małej ilości shared preferences lub jak więcej danych do sqlight(nakładka room lub jakaś inna, ale room jest popularny)
Do requestów masz retrofita plus jakaś rxjava lub coroutines (co prostsze na początek to nie wiem, bo sam korzystam tylko z rxjava)

Zadawaj konkretne pytania to na pewno ktoś Ci pomoże ;)
Warto też by spisać wymagania funkcjonalne na ten projekt, rozrysować sobie flow działania aplikacji na kartce itd

edit: poprzeglądaj też inne tematy z tego działu, trochę tematów początkujących przewija się i są tam przydatne informacje

edytowany 1x, ostatnio: alMarko
V-2
  • Rejestracja:około 8 lat
  • Ostatnio:10 miesięcy
  • Postów:671
3

Nie zadajesz konkretnych technicznych pytań, więc domyślam się, że pytasz raczej o ogólne porady.

Kilka takich porad z mojej strony:

  • Dopóki nie poczujesz się pewnie w jakimś obszarze (np. to robienie profilu), póki kopiujesz rozwiązania z tutoriali - nie pracuj nad tym w swoim głównym projekcie. Zrób sobie małe projekty - takie piaskownice, poligony. Tam możesz "na brudno" zaimplementować rozwiązanie z tutoriala, poeksperymentować, spróbować lepiej je zrozumieć. Taka izolacja ułatwia naukę i pracę. A zwłaszcza zmniejszy ryzyko że się - jak piszesz - pogubisz we własnym kodzie. Dopiero, kiedy dany element będzie już w miarę zdatny do użycia, możesz go sobie przemigrować do głównego projektu, już "na czysto" .
  • Jeśli masz problem z integracją różnych elementów, to zrób sobie najpierw taki proof of concept, czyli prototyp. Aplikację z fałszywym (symulowanym) logowaniem, fałszywą bazą danych (np. trzymaną tylko w pamięci, w kolekcjach), i tak dalej, po linii najmniejszego oporu. Dzięki temu będziesz mógł skupić się na samym połączeniu elementów w jedno, czyli na nawigacji, przekazywaniu danych, synchronizacji widoku z danymi itd. Jak łatwo zauważyć, to jest porada pokrewna do poprzedniej, tylko że w tym wypadku nie izolujesz sobie pracy nad funkcjonalnymi elementami, tylko nad "rusztowaniem", na którym później je osadzisz.
  • Używaj systemu kontroli wersji, komituj często. Opisuj sam dla siebie, w czytelny sposób, co zrobiłeś i na jakim jesteś etapie; co na tym etapie jeszcze nie działa, albo działa źle. To bardzo ułatwi np. odwijanie błędnych zmian, kiedy zorientujesz się, że zabrnąłeś w ślepy zaułek.
  • Z podobnych przyczyn rób sobie notatki. Ciężko jest utrzymywać w głowie cały mentalny obraz rozgrzebanego projektu, zwłaszcza gdy praca nad nim rozciąga się na kilka sesji/dni.
  • Jeśli zależy ci na rozwoju własnym, a nie tylko na szybkim odhaczeniu zadania (bo ci np. wujek zlecił), to ja bym jednak sugerował nie sięgać po rozwiązania jak Navigation component. Zalecałbym na początek pisać bardziej "z nosem przy ziemi", czyli stosując najprostsze klocki dostępne w SDK. Odwrotna kolejność to jest takie budowanie domu od komina, bo będziesz skazany na podpórki - czyli ułatwiające życie biblioteki - a to, co się dzieje pod maską, pozostanie dla ciebie czarną magią. Tak jak fajnie mieć elektryczny śrubokręt, ale jeśli ktoś chce być poważnym mechanikiem, to nie powinno być tak, że ze zwykłym sobie nie radzi ;)

Nie ma najmniejszego powodu, aby w CV pisać "email" przed swoim adresem mailowym, "imię i nazwisko" przed imieniem i nazwiskiem, ani "zdjęcie mojej głowy od przedniej strony" obok ewentualnego zdjęcia. W drugiej firmie której już pracuję mam palących marihuanę programistów [...] piszą kod "leniwie", często nie wysilając się, rozwlekając ten kod, unikając np. programowania funkcyjnego (mówię tutaj o lambdach w javie).
edytowany 1x, ostatnio: V-2
AM
Faktycznie więcej się można nauczyć korzystająć z fragment managera niż z nav component. Ja np mam w swojej apce asynctaski, z których korzystam do komunikacji z bazą lokalną, w planach mam refaktor na rxjava. Chociaż pewnie wątpliwe abym w projektach komercyjnych musiał utrzymywać asynctaski ;p
V-2
W komercyjnych raczej nie (miejmy nadzieję), ale i tak uważam, że wypada najpierw poznać "goły JavaScript" zanim sięgnie się po JQuery czy inne Angulary ;) Przy czym akurat Navigation należy chyba do mniej udanych części Jetpack. Nie jestem pewien, czy ten komponent zyskał sobie dużą popularność, bo jest trochę problematyczny. Pamiętam np. https://proandroiddev.com/why-i-will-not-use-architecture-navigation-component-97d2ad596b36 - co prawda sprzed 2 lat, ale zarzuty nie wyglądały na takie, które mialyby szansę szybko się zdezaktualizować.
VA
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:3
1

Dzięki ! Dokładnie o takie ogólne porady mi chodziło, jak ugryźć temat zrobienia danej aplikacji. Akutalnie zacząłem od nowa w javie (więcej dostępnych tutoriali), skorzystałem z rad i dużo komentuje, na chwile obecną staram się zrobić tą apke w niezbyt zaawansowany sposób żeby się nie pogubić a zrozumieć działanie. Jak już się będe czuł pewniej to przerzuce się pewnie na Kotlina. Dzięki za komentarze ;)

Roman Mokrzan
  • Rejestracja:ponad 5 lat
  • Ostatnio:12 dni
  • Postów:159
0

Jave? Nie no tylko Kotlin.


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.