MENIFLOW — APK APLIKACIJA ZA KONOBARE
=====================================

Konobarski ekran (/moj-sto) već radi kao aplikacija bez ikakvog pakovanja:
konobar otvori adresu u pretraživaču i klikne "Dodaj na početni ekran".
Za većinu restorana to je dovoljno i ništa dalje ne treba.

Ovaj dokument objašnjava kako da napravite pravi APK, ako vam treba
instalacija bez pretraživača ili objava na Google Play.


NOTIFIKACIJE (od verzije 2.1.0)
------------------------------
Konobarska stranica sada šalje prave sistemske notifikacije: nova porudžbina
ili poziv za njegov sto stiže i kad je aplikacija zatvorena. Konobar to uključi
sam, jednim klikom na traku „Uključite notifikacije" na /moj-sto, i može da
proveri dugmetom „Probna notifikacija".

Radi i u pretraživaču i u APK/TWA aplikaciji — omotač ne treba ponovo praviti,
jer je notifikacija deo iste stranice. Uslovi:
  - sajt radi preko https:// (AutoSSL je dovoljan),
  - posle ažuriranja je jednom kliknut „Run NPM Install" u cPanel-u,
  - na iPhone-u: iOS 16.4 ili noviji I stranica dodata na početni ekran.
Ključevi za notifikacije prave se automatski pri prvom korišćenju.


ŠTA JE APK OVDE ZAPRAVO
-----------------------
Ne pišemo novu aplikaciju. APK je tanak Android omotač (zove se TWA —
Trusted Web Activity) oko iste stranice /moj-sto. Konobar dobija pravu
ikonicu i aplikaciju bez adresne trake, a vi i dalje menjate samo sajt —
nema ponovnog pakovanja pri svakoj izmeni menija ili ispravci.

Uslov: sajt mora da radi preko https:// (AutoSSL u cPanel-u je dovoljan).


PRE POČETKA: PROVERITE DA JE PWA ISPRAVNA
------------------------------------------
Otvorite https://restorani.yugohit.rs/moj-sto na Chrome-u (računar),
pa F12 > kartica "Application" > "Manifest". Ne sme biti grešaka.
Ovaj paket već sadrži sve što je potrebno:
  /manifest.webmanifest   naziv, boje, ikonice, start_url
  /sw.js                  service worker
  /icon-192.png, /icon-512.png, /icon-maskable-512.png


NAČIN 1 — PWABUILDER (preporučeno, bez instaliranja alata)
-----------------------------------------------------------
1. Otvorite https://www.pwabuilder.com
2. Unesite:  https://restorani.yugohit.rs/moj-sto
   Kliknite "Start".
3. Kad analiza završi, kliknite "Package for stores" > "Android".
4. Podesite:
     Package ID:  com.meniflow.konobar
     App name:    MeniFlow — Moji stolovi
     Short name:  Moji stolovi
   Package ID zapamtite — mora da se poklopi sa assetlinks.json (tačka 7).
5. Izaberite tip paketa:
     "APK"  — za direktnu instalaciju na telefone (bez Google Play)
     "AAB"  — obavezno ako ćete objaviti na Google Play
   Možete preuzeti oba.
6. Kliknite "Download". Dobijate .zip koji sadrži:
     - APK i/ili AAB fajl
     - signing.keystore i lozinke (u fajlu signing-key-info.txt)
     - assetlinks.json
   !!! ČUVAJTE keystore i lozinke trajno, na sigurnom mestu.
   Ako ih izgubite, NE MOŽETE više da objavite ažuriranje iste
   aplikacije na Google Play — morali biste da pravite novu.
7. Otvorite assetlinks.json iz tog zipa i prekopirajte njegov sadržaj
   preko fajla na serveru:
     meniflow/public/.well-known/assetlinks.json
   (u ovom paketu je pripremljen šablon sa tekstom
    ZAMENITE_OVO_OTISKOM_VASEG_POTPISNOG_KLJUCA)
   Zatim u cPanel-u kliknite Restart Application.
8. Provera: otvorite u pretraživaču
     https://restorani.yugohit.rs/.well-known/assetlinks.json
   Mora da se prikaže vaš sadržaj, sa pravim otiskom ključa.

Ako ovaj korak preskočite, aplikacija i dalje radi, ali se na vrhu
vidi traka sa adresom sajta. To je jedini simptom — po njemu ćete
odmah znati da assetlinks.json nije dobro postavljen.


NAČIN 2 — BUBBLEWRAP (lokalno, za one koji hoće punu kontrolu)
---------------------------------------------------------------
Potrebno: Node.js, Java JDK 17 i Android SDK.

  npm install -g @bubblewrap/cli
  bubblewrap init --manifest https://restorani.yugohit.rs/manifest.webmanifest
  bubblewrap build

Prvi put vas alat pita da preuzme JDK i Android SDK i da napravi
potpisni ključ. Rezultat su app-release-signed.apk i .aab u tekućem
folderu, plus ispis SHA-256 otiska koji ide u assetlinks.json.
Otisak kasnije možete ponovo dobiti sa:

  keytool -list -v -keystore android.keystore -alias android


KAKO DA APK DOĐE DO KONOBARA
-----------------------------
A) Direktno slanje (najbrže, besplatno, bez Google-a)
   Okačite APK negde na svoj sajt ili ga pošaljite preko Viber-a.
   Na telefonu: otvorite fajl > Android pita za dozvolu "Instaliraj
   nepoznate aplikacije" za pretraživač/Fajlove > dozvolite > Instaliraj.
   Ovo je sasvim u redu za tim od nekoliko ljudi.
   Mana: ažuriranja šaljete ručno. (Mada, pošto je ovo omotač oko sajta,
   ažuriranja aplikacije skoro nikad neće ni trebati.)

B) Google Play
   Jednokratnih 25 USD za developer nalog. Traži se AAB, ne APK.
   VAŽNO: ako otvarate LIČNI developer nalog, Google traži zatvoreno
   testiranje sa najmanje 12 testera u trajanju od 14 dana pre nego što
   sme da se objavi javno. Za poslovni (organization) nalog toga nema.
   Za internu upotrebu u restoranu obično je dovoljan "Internal testing"
   kanal — do 100 testera, bez tog čekanja.

C) Apple / iPhone
   Za iPhone ne postoji ekvivalent APK-a. Instalacija preko Safari >
   Podeli > "Add to Home Screen" već radi i to je jedini besplatan put.
   Prava iOS aplikacija traži Apple Developer nalog (99 USD godišnje)
   i prolazak kroz App Store recenziju.


PREPORUKA
---------
Počnite bez APK-a. Neka konobari instaliraju /moj-sto preko "Dodaj na
početni ekran" — dobijaju istu ikonicu i isti ekran preko celog telefona,
danas, bez ijednog dinara i bez čekanja. APK pravite tek ako naiđete na
konkretan razlog: recimo, ako vam treba objava na Google Play zbog
utiska kod klijenata.
