On Tue, Oct 23, 2018 at 11:32 AM Rafael Luque <rafael.luque.le...@gmail.com>
wrote:

> Hi all,
>
> I'm interested in developing progressive web applications (PWA) [1] in
> Pharo, so I'd like to know if anyone has been involved in such kind of task
> before and could share his experiences.
>

The best thing I used for such stuff in terms of effort/results is using
Firebase.

https://firebase.google.com

Why? Because it provides a ton of the mechanisms for what you ask below,
works well, handles a ton of periphrenalia that I really do not want to
deal with directly.

The good bit is that the frontend piece (the actual PWA) can be written in
any way you want provided that at the end there is some JS code handling
the UI.

Services can be provided as cloud functions of Google Cloud and nothing
prevents them from being in Pharo.

In the Firebase SDK, there is a command line tool that provides for local
execution of the generated JS and one can then push that code to the server
side.
Integration with Google general push notification system is easy to
implement as well.

Costs of operation are quite low, even for pushing to large user bases.

There is of course the "database" component (the actual "Firebase") that is
key/value pair system, along with read/write policies (which can be quite
complexand support quite a number of situations very well, provided the
schema is well done) and if what one needs is a relational DB, this is not
really the same thing.

So, that's how I would do PWAs, they work nicely using that very stack.

Phil


> At first sight, I was thinking in trying PharoJS [2] to build abstractions
> in Pharo for each PWA's client-side concept like Service Workers, Cache
> API, IndexedDB API, appshell architecture, etc.
>
> By the other hand, one of the more appealing features of PWAs is the web
> push notifications capability. To be able to send push notifications from a
> Pharo server I will also need an implementation of the Web Push Protocol
> [3] and the VAPID spec [4]. Do you know any previous related work in Pharo
> or should I think in my own implementation?
>
> Thank you!
>
> [1] https://developers.google.com/web/progressive-web-apps/
> [2] https://pharojs.github.io/
> [3] https://tools.ietf.org/html/draft-ietf-webpush-protocol-12
> [4] https://tools.ietf.org/html/draft-thomson-webpush-vapid-02
>

Reply via email to