Advices to build Nextcloud app and Mobile/Desktop client for it

Hello !

Let’s say I want to dev a Todo app for nextcloud (just an example).
It will be nice to dev an PWA with Vue.js and release client for :

  • Nextcloud app
  • Mobile
  • Desktop (Linux, Windows, Mac)

ElectronJs is used by Discord, and sounds great. But it doesn’t build Mobile app, and I read that it’s memory consuming (chromium). I don’t think 300 Mb in RAM just for a Todo app is good.

Cordova sounds great too, but can’t build Desktop app. Same problem with memory ?

I tried Qt… but I prefer PWA project, and I don’t think it’ll help me for Nextcloud app integration.

Before starting my project, I looking for advices about wich tools and frameworks recommanded to write one code, and release it on cross platform. (I know, I’m a sweet dreamer …)

Thank you :slight_smile: !

I think the nextcloud app should be in vue.js, at least the UI part. If you need additional server side access (some API for your app) you would have to write it in PHP.

For mobile and desktop you can just access the UI through your browser. I am not sure if it is possible to install your app as a PWA seperately (nextcloud should show your apps manifest to the browser), but that would make it instantly available on mobile and desktop (without the browser window), so Vue.js would be your way to go.

Hey, thank you for your help. Indeed Vue seems to be a good choice. After few months testing differents way to do it, I actually work on my project with :
VueJS + Vuetify + Vue plugins:

  • vue-cli-plugin-cordova
  • vue-cli-plugin-electron-builder

So, with one code, I can build Desktop/Android/IOS App, and extract UI part to build a Nextcloud app with it! When my project will be strong enough, I’ll write a small how to on GitLab/GitHub and post a link here.

Hi. Would you mind sharing how you realised authentication in your app? How you login to Nextcloud from your app?

Thanks in advance.

Hi, I’m not actually at this step. Working on lib and standalone app logic. But I’ll be back here to share personal experience about that.