[ negyxo @ 31.10.2018. 17:06 ] @
Da li je neko radio neku PWA impelentaciju? Sta tacno predstavlja PWA?

Da probam malo da pojasnim.

Odredjeni klijent zeli da uradi PWA aplikaciju za odredjeni specijalizovani hardware, da bi maksimizirali iskoristivljost, frontend bi trebao da se tera preko web-a (trenutno ce HW da tera Windows 10, ali mozda se jednog dana i potera nesto drugo). Do sada, ja sam uglavnom radio SPA (React + ts) i moj predlog je bio da radimo u toj kombinaciji (sto se ne kosi toliko sa PWA) ali bi trebalo da bude PWA. Ono sto ne razumem je sta tacno bi PWA nudio da ne moze da se uradi sa SPA? Sve primere koje sam video, najvise se pominje cache, kao jedan od feature-a, ali taj cache se odnosi vise na MPA (multi page applications), samim tim, koja je tacno svrha PWA, osim da se mozda upakuje SPA i runnuje kao "native" aplikacija (generalno svi feature-i su nebitni, posto ce se app terati kontrolisano, korisnik nema opciju nego samo da gleda u app, slicno kao ATM masine)?
[ Shadowed @ 31.10.2018. 19:05 ] @
Cini mi se da ti je situacija malo naopaka. Pogledah ovde https://en.wikipedia.org/wiki/Progressive_Web_Apps pod Characteristics i vidi da li ti je i sta od toga potrebano za konkretnu aplikaciju i to uradi.
Ne bi trebalo praviti PWA samo da bi se imala PWA jer je to novi buzzword vec vidi da li ti je to uopste potrebno. Ili ti je mozda potrebno samo pola tih karakteristika pa je to onda neka polu-pwa, da tako nazovem.
[ Shadowed @ 31.10.2018. 19:07 ] @
Mislim, kapiram situaciju, imao sam i ja takvih slucajeva, da klijent hoce nesto da bude na neki nacin ili da koristi neki framework ili nesto slicno po svaku cenu samo zbog toga sto je cuo da je to nesto super iako je nepotrebno ili cak i otezava stvar u konkretnom projektu.
[ negyxo @ 31.10.2018. 19:24 ] @
Ja se drzim one - vezi konja gde ti gazda kaze :)

No, da budem iskren, ovo je vise research, pa samim tim zelim da budem sto je vise objektivan, da ne naginjem samo na ono sto je meni blisko. PWA naizlged nudi bas ono sto bi trebalo, ali iz mog ugla to deluje samo naizlged. Sve feature koje nudi su nebitni, cache, notifikacije, pristup OS specific API (WinRT u slucaju win) itd. jer to je sve ono sto ne treba korisnik da vidi. Kao sto rekoh, cache-iranje applikacije nema smisla u SPA, jer u momentu kad vidis SPA, on je vec ceo downloadowan, plus sto nisi vezan za broswer, jer ako sam dobro skontao PWA u win 10 se tera preko Edg-ovog engina (dok je jedan od zahteva klijenta da je UI maksimalno ispeglan, pa samim ti i animacije moraju da budu glatke, a iz nekog mog iskustva chrome, iako trosi resurse, najbolje renderuje content).

I da, koliko sam skontao PWA u stvari se ne kosi sa SPA, to je vise neka arhitektura "kako da teras web app kao native app", a web app mozes da pises u cemu hoce. No, glavno pitanje je, ako mogu da teram u browseru SPA identicno kao i PWA, kada se u opste koristi PWA?
[ Shadowed @ 31.10.2018. 23:17 ] @
Uzmi sa rezervom sto pisem jer nisam radio ni jedan konkretan projekat.

Elem, PWA nije nesto sto koristis vec je to nacin da napravis web sajt. Da, zove se "app", sve je sad "app", nije nego. PWA je web sajt koji je dosta klijentski orjentisan i trebao bi da ima offline mode (sto ce reci, da je JS svestan da je offline i da postupi u skladu sa tim). Ne radi u win 10 preko edge-ovog engine-a nego radi u browser-u u kojem otvoris.
[ mjanjic @ 01.11.2018. 01:00 ] @
Nećeš da bude web stranica koja se otvara, već aplikacija koja se instalira na telefon. Neće da kuca adresu web sajta za neki portal sa vestima, Facebook ili šta već, nego samo da pokrene aplikaciju, pa čak i ako je u pitanju App koji otvara stranu sajta prilagođenu za prikaz na mobilnom).

Da bi bilo jasnije, recimo da koristiš PhoneGap ili nešto slično (ima sad gomila tih FW za razvoj aplikcija za mobilne koristeći HTML, CSS i JS uz dodatne biblioteke, itd.), samo treba da ispoštuješ smernice za PWA, dakle aplikacija treba da radi i offline (očigledno da ne može da radi sve što i online) i da ispoštuje sve ostale smernice za PWA, ali se ne radi o web strani koja se otvara (SPA), već o aplikaciji koju korisnik vidi kao da je "native".
[ negyxo @ 01.11.2018. 06:55 ] @
@Shadowed
Hm, otvaranje PWA u bilo kom browseru je nista vise nego otvaranje web aplikacije. No, PWA ima neke feature koje mozes da iskoristis a koje ne mozes u standardnoj web app (cashiranje stranica/resursa, notifikacije, interakcija sa OS). No, to je ako otvoris PWA u browseru (drugim recima to je tvoj web app + onaj maifest fajl), ali ako recimo pristupis PWA iz web store-a, i "downloadujes" na svoj racunar, u tom slucaju PWA ce se pozvati kao standalone windows aplikacija (sto je inace i cela poenta PWA da izgleda kao native) koji se u win10 poziva preko WWAHost procesa koji koristi EdgeHtml za rendering, tj. verovatno isiti taj rendering engine koji imas u Edge-u (najbolje sto sam nasao da pise o tome je na ovom blogu)

@mjanjic
Jasno je da PWA treba da omoguci offline mode, samo sto je to poprilican buzzword, posto u vecini slucajeva offline mode (osim u nekim trivijalnim aplikacijama) ne moze da radi apsolutno nista, osim da prikaze neku genericku poruku "app is offline", sto bas i nije neka korist :)

No, mislim da znam cemu sluzi PWA, i sta mu je target, sad, da li to nekom treba ili ne, to je vec na svakom da odluci (u slucaju "mog" klijenta, PWA ima smisla samo zbog ono dela gde se tera kao standalone applikacija jer ukoliko bi isli na browsers samo, onda bi u slucaju da nema trenutno konekcije morao da klikce dok mu se ne ucita web app :))
[ S A J A @ 01.11.2018. 08:05 ] @
PWA je isto što i SPA plus offline režim. Poenta je da se kostur aplikacije kešira u lokalu pa kod pokretanja da se ne učitava svaki put nego samo goli podaci. Drugim rečima, PWA sajt će se otvoriti i kad smo potpuno offline, čak i prikazati neki sadržaj koji je predefinisan ali čim zatrebaju neki podaci izaći će poruka da smo offline. Klasičan SPA se uopšte neće ni učitati ako smo offline već će se pokazati ugly brauzer poruka. Dakle PWA je samo mala nadogradnja na SPA koja omogućava da sajtovi dobiju neke osobine aplikacija. Šta se u praksi dobija: malo brži startup, mogućnost da se izvuče ikonica i da funkcioniše kao aplikacija (dakle ne mora da se koristi kroz brauzer), zatim ima i neke funkcije za notifikacije... generalno ništa specijalno i bez čega se ne može ali s obzirom da google gura tu priču, vrlo moguće da će postati novi standard pa ako uradiš nešto mimo toga, bićeš javno oblaćen ;)
[ Shadowed @ 01.11.2018. 09:41 ] @
@negyxo
Ono o cemu sam pisao je uopsteno o PWA. To sto ti pominjes je specijalan slucaj koji se odnosi samo na Win10 Store aplikacije za koje nisam ni siguran da bi uopste trebalo da se zovu PWA (jesu html/css/js ali su aplikacije koje se instalriaju, nesto kao Electron). OK, mozda tebi bas to treba i to je ok, ali je to specijalan slucaj. I na tom linku koji si dao je prikazana na slici razlika izmedju PWA uopsteno i Win10 App "PWA".

Primer PWA mozes videti recimo ovde. U pitanju je obican blog ali probaj nakon sto ga otvoris da odes offline i otvoris neki clanak ili bilo koji interni link (osim RSS feed-a :) ). Trebalo bi da ti ucita bez problema. Takodje, mozes da uradis i refres na homepage-u, normalno se ucitava. Naravno, ucitavanje dodatnih linkova ka starijim clancima nece raditi dok se ne vratis online (nije skinuo kompletan blog).

Mozes videti i druge primere ovde - https://pwa-directory.appspot.com
[ negyxo @ 01.11.2018. 09:55 ] @
Hm, koliko sam ja skontao PWA bi trebalo da je univerzalan, samim tim, na windowsu koristis windows-ovu implementaciju (tacnije ti nista ne diras, to sam OS handluje). Recimo Chrome OS ima podrsku (imas takodje google-ov store), linux verovatno ima podsku, mac tj. iOS itd.

Poenta je da kada runnujes kao aplikaciju, to mora da ide kroz neki process i mozda je to specijalan slucaj, ali ja bih rekao da je taj specijalan slucaj u stvari bas i namena PWA - da pokrenes kao "native" aplikaciju, iz browsera i sada mozes da vidis web app, samo ukucas adresu (jeste nemas offline mode, tj. nista se nece ucitati, ali ako recimo runnujes SPA, onda ce se ucitiati cela aplikacija kada is online, a ako izmedju nemas konekciju to handlujes kroz SPA, i sve dok ne opalis refresh apsolutno nema nikakvih issue to da li imas offline mode ili ne).
[ Shadowed @ 01.11.2018. 11:01 ] @
Ne, ne, ti imas offline mod u browser-u :)
Eno, onaj blog da otvorim sad u ff-u dok sam offline otvorice lepo. I radice sve osim, naravno, dovlacenja novih podataka. Evo, sad sam probao, cak i postove koji se ucitavaju ajax-om kad skrolujes ucita u offline modu jer sam ih jednom vec ucitao. Univerzalnost se ogleda u tome da je stranica napravljena tako da je responsive i radi u razlicitim browser-ima na razlicitim OS. Nema potrebe za ikakvom native aplikacijom (browser-i sada provide-uju location, offline storage i sl.). To sto MS gura neku svoju pricu sa Win10 je... druga prica :)
[ mjanjic @ 01.11.2018. 13:13 ] @
Kao što rekoh, može da bude "obična" Web strana koja je u stvari SPA, ali obična web strana nema pristup kameri, žiroskopu i ko zna još čemu sve na mobilnom uređaju (mada postoje dodatne biblioteke za to, ali opet može da zavisi od platforme, jezika i razvojnog okruženja), a ovo predviđa da se može koristiti sve što i kod native aplikacije, a da u stvari bude maltene kao SPA, samo ne otvaraš u browser-u.

Takođe, ako se radi o aplikaciji, ona može da bude aktivna u pozadini i da u momentu kad dobiješ signal (ako si u nekoj zabiti, ili kada se nakačiš na neki wifi ako podatke vučeš samo preko wifi) povuče nove podatke sa bloga, pa kad je kasnije otvoriš, imaćeš najnovije podatke iako nemaš signal, dok ne znam baš kod klasične Web strane kako ćeš to da izvedeš, a da ti strana ne bude otvorena u browser-u (što povlači da i browser bude otvoren sve vreme).
[ Shadowed @ 01.11.2018. 13:19 ] @
Citat:
mjanjic: ali obična web strana nema pristup kameri, žiroskopu i ko zna još čemu sve na mobilnom uređaju (mada postoje dodatne biblioteke za to, ali opet može da zavisi od platforme, jezika i razvojnog okruženja)

Mnogim od tih stvari moze da pristupi. Browser-i sada to prosledjuju (uz dozvolu korisnika), kako na desktop-u, tako na mobilnim uredjajima. Idi na blic-ov sajt i pitace te da dozvolis da ti salje notifikacije. Idi na neki sajt sa mapama i pitace te da dozvolis da vidi tvoju lokaciju (mozda ne odmah, nego ako kliknes nesto tipa "nadji me na mapi"), itd.
[ bojan_bozovic @ 01.11.2018. 13:42 ] @
Upravo sto Shadowed kaze "PWA" je najobicniji buzzword.

I nemojte nikad vise da kazete da web site/PWA ili stogod takvo "moze sve kao i native app" jer to vredja inteligenciju. Samo pogledajte svoj browser.
[ mjanjic @ 01.11.2018. 14:34 ] @
Al' može da izgleda kao da može ;)


Notifikacije su postojale na desktop-u još pre neku godinu (za Gmail, ako se dobro sećam), samo većina korisnika nije bila zainteresovana da to aktivira ili nije ni znala za to, tako da to nije nešto novo i revolucionarno.

@Shadow
Sad će sajt sa mapama da vidi gde si preko desktop browser-a, naročito ko je na kablovskom netu pa je NAT-ovan, ne znam ni da li ADSL korisnicima sa javnom adresom radi kako treba (nisam sad kod kuće da probam), tako da nema ništa bez GPS modula.
[ negyxo @ 01.11.2018. 15:36 ] @
@Shadowed
Ja i dalje ne vidim da je tako kao sto pises. PWA treba da je standardizovan nacin da web app runnujes kao "native" app. Drugim recima, da nemas browser (iako je u pozadini u stvari neki browser engine).

Pogledaj ove linkove:
mozila: https://developer.mozilla.org/...s/Progressive/Installable_PWAs
google: https://developers.google.com/web/progressive-web-apps/desktop

Ove stvari nisu vezane za windows, a opet isto rade sto windows ("bez" browsera).

Mislim, meni bar deluje logicno, ako PWA donosi samo offline mode za web app u browseru, pa onda sumnjam da bi se neko u opste mucio da to podrzi, skoro identicno sve moze kroz SPA, ali PWA bi trebalo da donese integraciju web app unutar OS (ono "native" support :))

[ Shadowed @ 01.11.2018. 17:35 ] @
Citat:
mjanjic:@Shadow
Sad će sajt sa mapama da vidi gde si preko desktop browser-a, naročito ko je na kablovskom netu pa je NAT-ovan, ne znam ni da li ADSL korisnicima sa javnom adresom radi kako treba (nisam sad kod kuće da probam), tako da nema ništa bez GPS modula.

Nije poenta u tome koliko ce precizno odrediti vec u tome da browser expose-uje location service OS-a web strani ukoliko to dozvolis. Koliko je je taj location service precizan je irelevantno za ovu pricu (a zavisi od toga da li specijalizovani hardver ili ne).


@negyxo, procitacu kasnije te linkove ali koliko na brzinu vidim, rekao bih da ti gledas jedan podskup PWA aplikacija misleci da je to kompletan skup.
[ S A J A @ 01.11.2018. 21:01 ] @
PWA nije isto što i native aplikacija. I dalje mora da postoji browser na operativnom sistemu koji omogućava pokretanje PWA aplikacije.

MS je uključio Edge u podršku i to možemo videti ovde: https://docs.microsoft.com/en-us/microsoft-edge/progressive-web-apps/get-started

Može čak i da se aplikacija "uploaduje" na Store: https://docs.microsoft.com/en-...ssive-web-apps/microsoft-store
[ Shadowed @ 02.11.2018. 09:59 ] @
Citat:
negyxo:
@Shadowed
Ja i dalje ne vidim da je tako kao sto pises. PWA treba da je standardizovan nacin da web app runnujes kao "native" app. Drugim recima, da nemas browser (iako je u pozadini u stvari neki browser engine).

Pogledaj ove linkove:
mozila: https://developer.mozilla.org/...s/Progressive/Installable_PWAs
google: https://developers.google.com/web/progressive-web-apps/desktop


Pogledao sam sada detaljnije. To je i dalje obicna web aplikacija, na web serveru, kao i bilo koji drugi sajt. Jedino sto tu imas je manifest fajl koji browser ucita i dobije informacije tipa koja je ikona, koji title i sl. i onda mozes da dodas shortcut na homescreen. Kad pokrenes shortcut, pokrene se browser i otvori ti sajt. Prakticno nabudzeni bookmark. manifest moze da ima instrukciju da se browser otvori fullscreen da bi sve izgledalo kao aplikacija.
No, to je sve i dalje obican web sajt. Moze da radi offline u izvesnoj meri, ali to nema nikakve veze sa ovim iznad. Ima veze sa tim sto je sajt napravljen da koristi local storage u browser-u za kesiranje.

PWA je jednostavno skup osobina web sajta. Mozes implementirati neke od njih ili sve. Takodje, neki browser-i imaju podrsku za "instaliranje" PWA pri cemu je to instaliranje postavljanje naprednije varijante bookmark-a.
[ Shadowed @ 02.11.2018. 10:03 ] @
Evo, pogledah sad, i onaj blog koji sam ranije linkovao (https://karlherrick.com/ ) ima podrsku za to. Kad ga otvorim u Firefox-u na mobilnom telefonu, imam Home ikonu u addressbar-u i mogu da dodam na homescreen. Kad ga odatle otvorim, otvori se full screen. Al' to je i dalje taj isti sajt :)
[ negyxo @ 02.11.2018. 13:17 ] @
@Shadowed
Mi nekako pricamo istu stvar drugim jezikom. Sve vreme govorim da je PWA nista vise nego standardizovani (znaci kroz razne OS-eve) nacin da runnujes web app kao "native" app. Primeti da sam stalno stavljao navodnike oko ovog native. To je zato sto se ne pretvara aplikaciju magicno u native app, nego je samo look & fell kao kod native app (tacnije startovanje), da imas ikonu, kliknes i dobijes aplikaciju, dal' u prozoru ili fullscreeen svejedno. PWA dolazi samo kao standard da se taj deo oko web aplikacije standardizuje unutar svakog OS i kao sto rekoh, PWA u browseru nema mnogo smisla (misllim na workflow gde otvoris browser, otkucas adresu ili stisnes bookmark i onda dobijes app, jer sve to imas i bez PWA, jedino nemas offilne mode), PWA nudi nacin da na isti nacin "instaliras" web app kroz razlicite platforme, prakticno da pises web app koji kasnije mozes da pozivas kao native app (opet, da pozivas kao native, ne da se magicno i pretvori u native app) i to je praktico cela sustina, da je standardizovano, u protvinom svako bi furao neku svoju tehnologiju kako da runnujes web app u desktop modu pa bi umesto jednog manifest fajla imao za svaku platformu posebno. Naravno imas i neke druge stvari, MS nudi WinRT, ali ako ides tim putem, onda mozes komotno da pises native jer polako specijalizujes web app za win. Eto, nadam se da je jasnije.
[ Shadowed @ 02.11.2018. 13:40 ] @
Ovo je deo oko kojeg se ne slazemo:
Citat:
PWA dolazi samo kao standard da se taj deo oko web aplikacije standardizuje unutar svakog OS

PWA nije samo to.
PWA je skup osobina sajta i to je samo jedna od njih. Cak nije ni najbitnija. OK, mozda tebi licno jeste, to je ok, zavisi od potreba. Ali, nije osnovna osobina a posebno ne jedina.
Imas na onoj google strani koju si linkovao link ka check listi - https://developers.google.com/web/progressive-web-apps/checklist
Tu imas Baseline checklist i Exemplary checklist. Ovo prvo su ono sto predstavlja osnovnu stvar kod PWA.
[ negyxo @ 02.11.2018. 13:57 ] @
Hm, pa moja poenta je bas to, da PWA nudi tu standard i nista vise, razmisli samo, ti imas prakticno web app dodas manifest i tvoja web app je sada PWA enabled. Podji od te cek liste, cak sta vise, sam si i rekao negde u prethodnim postovima da to nije nista sto se i sada ne mozes uraditi, tacnije, PWA je samo standard koji kaze da je PWA enabled. Evo base lista:


Site is served over HTTPS - kod mene na SPA vec je to slucaj

Pages are responsive on tablets & mobile devices - nista novo, to se odavno radi, ne postoji PWA framework kako to da uradis, zavisi sta koristis

All app URLs load while offline - ovo je ono sto PWA zaista nudi

Metadata provided for Add to Home screen - ovo isto, upravo ono o cemu i pricam, glavni feature koji ne mozes da uradis samo sa web app

Site works cross-browser - yup, odavno standard na web app

Page transitions don't feel like they block on the network - react, angular, vue, sve zavisi koliko dobro baratas sa tehnologijama, opet nema veze sa PWA

Each page has a URL - isto kao i do sada za web app, ne znam kako ko radi, ali kod mene na raznim delovima SPA imas rute

Ovo je is base grupe, ako odes dalje, videces da sve to i sada radis, jer prakticno PWA enabled je u stvari vec postojeci sajt kome dodas manifest :)

Drugim recima, zamisli ovako, tvoj sajt nema manifest, uradis sve ovo sa checkliste, osim ovog za offline i install posto to nemas na webu, zatim dodas manifest fajl tvom sajtu, sta se to tvoja aplikacija drukcije ponasa u odnosu na pre? Pa apsolutno nista, osim sto si dobio feature za offline mode i da mozes da pinnujes ikonicu na desktiopu da izgleda kao native app. Ja iz ovog mogu da zakljucim da PWA nudi standard za runnovanje web apps kao desktop apps.
[ Shadowed @ 02.11.2018. 15:37 ] @
Samo sto ti gledas iz perspektive svojih aplikacija koje vec uspunjavaju razne uslove sa check liste. Ali, evo, da Gojko sad doda manifest na ES, da li bi ES bio PWA? Ne bi. Tu bi trebalo poraditi na znatno vecem broju stavki.
Zato sam pomenuo na pocetku da je PWA buzzword. To je samo skup zahteva koje sajt treba da ispunjava i koji mnogi sajtovi ispunjavaju mozda i duze nego sto PWA kao pojam postoji.

Btw, vidim da pises "PWA nudi...". Pwa ne nudi nista, on samo zahteva :) To je samo lista zahteva koje trebas da ispunis da bi mogao da kazes da ti je sajt PWA. Zamisli da je to kao neki sertifikat/diploma. A ti uslovi se ispunjavaju kroz postojece tehnologije. Mnoge si sam nabrojao da ih koristis. I taj manifest za homescreen nije tu zbog PWA nego je tu da bi mogao da dodas "app-like" shortcut na homescreen. PWA je samo to uvrstio u svoju listu.

Btw2, to sa homescreen-om podrzavaju neki browser-i ali ne svi i to se odnosi samo na mobilne uredjaje.
[ negyxo @ 02.11.2018. 16:14 ] @
Slazem se ja sa tobom, zato sam i postavio pitanje sta to PWA nudi (sorry na izboru reci) sto SPA ne nudi, dok je u stvari trebalo postaviti pitanje sta to nudi PWA enabled site u odnosu na onaj koji to ne nije. Meni to nije bilo jasno jer kada sam citao te check liste nisam mogao da se otmem utisku da je to, kako i sam kazes buzzword, koji je neko skovao iako se sve to i danas radi. Ono sto sam ja mislio da jedino kada uporedis moderni SPA sa tim PWA enabled, jedino sto se razlikuje je to sto nemas podrsku da runnujes kao desktop app, offline mode i da "instaliras" pa sam otuda i mislio da PWA to "nudi", jer i danas sa te liste sve to postoji samo sto nema ime :)