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 >