Odporúčané Kurzy, pre cvičenie (optimálne si vyskúšať všetky kroky v kurze)

Najmä tieto Codelaby:


Zadanie 4. časť

  1. Načítanie z JSON súboru z predchádzajúceho cvičenia nebude potrebné v aplikácii - od teraz sa zameriame na načítavanie JSON odpovede zo servera.
  2. Zamyslite sa a navrhnite ako by ste mohli ukladať informácie z pubs.json do relačnej SQLite databázy v mobile.
  3. Naprogramujte si architektúru vysvetlenú na prednáškach a tiež v kurze - ViewModel, Repozitár, LocalCache, Room, Retrofit,...
  4. Implementujte načítavanie z webservisu (nižšie) informácie pomocou Retrofit (s Coroutines) a pomocou napr. GSON adaptéra.
  5. Načítané informácie z webservisu uložte do databázy pomocou Room knižnice. (dbajte na vhodný zápis variabilného formátu údajov do tabuľky)
  6. Vo Fragmente so zoznamom podnikov, zobrazujte informácie z ViewModelu uložené v LiveData, ktoré sú z databázy. Ak sa objavia nové informácie v databáze po načítaní z webservisu, údaje by sa mali automaticky zobraziť
  7. V aplikácii nechajte aktívne len fragmenty - Zoznam podnikov (úvodná obrazovka), Detail podniku (z databázy). ( na ostatné zatiaľ nedajte možnosť používateľovi sa dostať - využijeme ich neskôr )
  8. Vo Fragmente - Zoznam podnikov používajte RecyclerView, ViewModel, LiveData, Pull-To-Refresh (obnovenie zo webservisu).
  9. Vo Fragmente - Detail podniku používajte vhodné zobrazenie dostupných informácií z databázy. Nezabudnite na využitie intentov na URL adresy, GPS súradnice, Telefónne čísla.

Popis webservisu

POST https://data.mongodb-api.com/app/data-fswjp/endpoint/data/v1/action/find
Access-Control-Request-Headers: *
api-key: API KEY
Content-Type: application/json

{
  "collection": "bars",
  "database": "mobvapp",
  "dataSource": "Cluster0"
}

Ukazka odpovede:

{
  "documents": [
    {
      "_id": "635857e2a613f32f7b528309",
      "type": "node",
      "id": 276918102,
      "lat": 48.1278212,
      "lon": 17.1000143,
      "tags": {
        "amenity": "pub",
        "name": "Krčma Lipa",
        "opening_hours": "Mo-Su 10:00-22:00"
      }
    }]
}


Vyhladanie podla atributov:

POST https://data.mongodb-api.com/app/data-fswjp/endpoint/data/v1/action/find
Access-Control-Request-Headers: *
api-key: API KEY
Content-Type: application/json

{
  "collection": "bars",
  "database": "mobvapp",
  "dataSource": "Cluster0",
  "filter": {
    "tags.amenity": "pub",
    "tags.name": "Krčma Lipa"
  }
}