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

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.

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

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 ;)
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 ;)

0

Jave? Nie no tylko Kotlin.

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