Aplikacja na Android

0

Witam,
Potrzebuje małej pomocy w nakierowaniu mnie na temat odczytu danych w aplikacji pod androida w Javie / kotlin. Chce zrobić pierwszą aplikacje na tą platformę i nie umiem znaleŹć informacji w jaki sposób przechować dane które moją być wyświetlane. W wszystkich poradnikach jakie oglądałem były aplikacjie które pobierają dane od użytkownika zapisują je gdzieś i wyświetlają. Aplikacja jaką chce zrobić ma tylko wyświetlać informacje np:

Przycisk Lizak1 -> przechodzi do kolejnej aktywności w której wypisane jest skład tego lizaka.

w przyszłości chce dodawać więcej pozycji itp.

Więc moje pytanie jest takie jak ? na poziomie kodu aplikacji mam wszystko wpisać ? czy jakoś zbudować bazę danych w osobnym programie i ją zaimportować ? czy pobierać dane z serwera przy uruchamianiu aplikacji ?

Nie proszę o gotowe rozwiazanie a nakierowanie mnie czego szukać i w jaki sposób to rozwiązać

pozdrawiam

1

Nie weź tego nadmiernie emocjonalnie, ale programowałeś już coś? Choćby poza androiem?
Większego niż hello world czy 50 linii ?

Z prostymi koncepcjami nie widzę, abyś miał kontakt. Skoro poradniki *), a każda strona poradnika (nawet dobrego) skupiona jest na wąskim celu - wprawiają cię w konfuzję.

Są różne "stopnie" danych, o rożnym stopniu płynności (dynamiki).

  • Od sztywnych (zmiana danych to wydanie nowej wersji programu) wbudowanych w aplikację, w kodzie jak wzmiankujesz (nie polecam), np jako zasoby (resources) Javy, albo zasoby na sposób androidowy,
  • przez plik, który sobie siedzi na telefonie, dostarczony wraz z instalacją, i może być przez aplikację zaktualizowany (ale nie musi)
  • pobieranie z serwera przy starcie to (chyba) nad-ambitne, co jak w danym miejscu nie będzie internetu? Ale nawet ciagłe pobieranie danych, to też częsty sposób działania, choć zupełnie innych aplikacji

EDIT: O bezradności mówi i zupełnie bezradny temat "Aplikacja na Android", żeby chociaż był "przechowywanie danych w Android", albo coś w tym stylu

*) czy miałeś w rękach kompletny podrecznik Javy / Kotlina / aAdroida ? Takie nagłe ganianie po gotowcach to bardzo charakterystyczne (w negatywnym sensie)

0

Kiedyś coś robiłem w c++ na studiach.

Więc taka "tabela" z danymi będąca w zasobach aplikacji bo to najłatwiejszy sposób? W jakiej formie powinna być jakieś bazy sqlite ? Czy jako plik txt ? Czego mam szukać ? Bo te poradniki które zobaczylem pokazywały właśnie jak zapisywać i odczytywać z poziomu aplikacji a nie widzi mi sie 100 pozycji tak wpisać i ich opisy. Wiec potrzebuje zrobić taka tebale baze zrobić zewnętrznie

1
Borowik SF napisał(a):

Kiedyś coś robiłem w c++ na studiach.

Aha.
Nawet chyba umiem to sobie wyobrazić. Przyjmijmy, że nie programowałeś.

Na razie to więcej ukrywasz *) i/lub nie umiesz podzielić problemu na pod-problemy oraz wyrazić własnej idei **)

Powinieneś sam zauważyć, że masz trzy zagadnienia, a żadne nie jest banalne.

  • edycja treści
  • dystrybucja
  • prezentacja na androidzie

Kilka pytań w przypadkowej kolejności

  • co to naprawdę jest
  • o jakich liczbach mowa (tj ile milionów użytkowników tworzących / aktualizujących a ile oglądających)
  • czy oprócz obrazka jest jakaś treść tekstowa. Tekst prosty, czy stylizowany. Obrazek jeden / pozycję czy zmienna ilość
  • jaka jest dynamika, jak częste aktualizacje

Bez tego, to w ogóle nie rozważaj SQLite czy nie SQLite, po prostu nie ten etap.

*) tu połowa poczatkujacych ma tajny pomysł ma milion dolarów, który mogą ukraść, więc jesteś w dobrym towarzystwie. Życzę powodzenia
**) czarno widzę, nawet jakbyś to chciał komuś zlecić

0

To ma być w ramach mojej nauki i nie wiążę z tym żadnego zarobku. Na początku sam tekst bez żadnych fajerwerków.

Pierwsza aktywność:

Lizak A
Lizak B
Lizak C
....
Lizak X

Po kliknięciu w któryś "lizak"

Lizak B
Skladniki ^ (blok rozwijany)

  • skkadnik a
    -skladnik b

Wymiary ^ (blok rozwijany)

  • wymiar x 124mm
  • wymiar y 30mm

W przyszłości jeden lub 2 obrazki do każdego z produktów.

Aktualizacje na początku może częściej z racji wpisania wszystkich produktów. Później raz na miesiąc albo rzadziej

Produktów na początku będzie około 50

1

Ok, jako niedawno początkujący przyznaje, że kwestia trzymania gdzies danych jest najbardziej problematyczna.
To co Cie powinno na początku interesować to jak ogarnąć Android + Firebase. Reszta poniżej to dodatek, mozesz to zrobić na pewno prościej.

Aplikacja będzie składała się z jednej aktywności i dwóch fragmentów(plus layouty do nich).
To co potrzebujesz:

Prosty projekt Empty Activity, dodaj dwa fragmenty i layouty do nich. W activity będzie tylko fragment container czyli aktywność zajmuje się wyświetlaniem fragmentów.
Firebase - LINK - Jako baza danych
Navigation Component - LINK - Najłatwieszy sposob dla zielonego do nawigacji w apce
Safe Args - LINK - Proste przekazywanie item id pomiędzy fragmentami
Recycler View - LINK - Wyświetlanie pobranych z Firestore danych jako lista

I milion innych rzeczy, ja bym sie nie bawil w lokalną tabelę trzymaną w aplikacji.

'Baza danych' będzie się mieściła w Firebase Firestore gdzie możesz sam załadować dane jakich potrzebujesz.
eCommerce – Cl.png

Po uruchomieniu aktywności, będzie ona 'prosiła' Firebase o pobranie danych a aktywność osadzi je w widoku Recycler View, który znajduje się w pierwszym fragmencie.
Każdy element listy Recycler View musi być klikalny, po kliknieciu w dany 'kafelek' musisz przekazać ID produktu poprzez safe args do drugiego fragmentu, który pobierze pojedynczy produkt i wyświetli jego dane.

Potrzebujesz dwóch metod z firebase, jedna do pobrania wszystkich elementów druga do pobrania konkretnego jednego produktu(czyli np funkcja jako argument przyjmująca productId: String)

Jakies tam przyklady, przyznam ze na jana:

override fun getAItems(): LiveData<List<Product>> {

        val responseResult = MutableLiveData<List<Product>>()

        firestore.collection(COLLECTION_PRODUCTS)
            .get()
            .addOnSuccessListener {
                val products = it.toObjects(ProductEntity::class.java)
                responseResult.value = products
            }
            .addOnFailureListener { e ->
                Log.d("getItems", e.toString())
            }
        return responseResult
    }

override fun getSingleItem(uid: String): LiveData<Product> {

        val responseResult = MutableLiveData<Product>()

        firestore.collection(COLLECTION_PRODUCTS)
            .document(uid)
            .get()
            .addOnSuccessListener {
                val productEntity = it.toObject(ProductEntity::class.java)
                val product = productEntity?.let { entity ->
                    inputProductMapper.mapFromEntity(entity)
                }
                responseResult.value = product!!
            }
            .addOnFailureListener { e ->
                Log.d("getSingleItem", e.toString())
            }
        return responseResult
    }

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