So here’s a very high level overview of the system:
- iOS & Android Operating System: Self-explanatory
BDK Native Platform
- Engine: Incorporated within the app during a build
- Config: Incorporated when the app is built
- Bubble Plugin: Allows your bubble webapp to communicate with other parts of BDK Native
- Native Template: Fully native ‘views’
Your bubble app
- Your bubble app: Self-explanatory
The engine, app settings and plugin together allow two-way interfacing b/w bubble and iOS / Android native app features.
The first native template I’ve built is a special native template for a wrapping a bubble application. Think of it as a ‘customized wrapper’ for bubble that @andrewgassen mentioned. Ofcourse that’s only one piece I’ve got some ideas around other native templates but it would be too early at this time and spoil the surprise. hint: lockscreen.
I have seen a lot of talk of wrappers such as Superview, universal webview, web2app etc. While I have never used these, the place where it probably differs from such wrappers is that it (i) is custom built for bubble so it attempts to give the bubble app control of the device layer (ii) is two-way so the engine can also pass data into bubble, trigger bubble events etc. (iii) can include native components such as header that are controlled by bubble (see response about header below). Regarding the wrappers in the market, I don’t know if ZQ, Copilot & others use these or not so can’t comment on that.
As an example in the demo app - take the screenshot function. You click the button, which has attached workflow step ‘Take screenshot’ from the plugin. The plugin communicates the request to Engine. The engine now asks the OS to do this, collects the result, sends it back to the plugin. The plugin element then exposes the result to your bubble app as the screenshot element’s image. So basically for the end user i.e. you, you end up building an app that is truly interacting with the device back-and-forth but in the same seamless way that makes bubble so great.
Adding one text / icon on the right side in header is in the roadmap.
This looks like a very desirable thing to have as you transition b/w pages you may want to change the header title, background color. I just built this capability into the engine & plugin Once I’m done testing I’ll update the demo app.
Sounds like a pretty cool app So I just built this background color functionality into the engine & plugin. Once I’m done testing I’ll update the demo app.
I’m not entirely sure what offline first means… If its ‘do something when things go offline’ then yes its possible (see below). If its ‘I want my bubble app magically work offline’ then no (and unlikely that anyone other than bubble team can do it)
There are 2 cases here:
- App opened and there was no connection to bubble preventing the bubble site from loading
- App opened, bubble site loaded and then connection went offline
For case 1, I need to add the capability to detect when user opens the app and internet is not working. Will add to my list. Right now the native components (e.g. header) will show. You can try opening the app in airplane mode.
For case 2, you can already use the Offline detect feature in the bdk UX tools plugin. That will allow you to build your custom screen / use a standard connecting & offline screen, and not just for native but also webapp. Please check out the standard one in the demo app by turning off internet after the bubble page is loaded.
Device database / cache:
Currently possible to store key value pairs (like json). I still need to add plugin actions for that. However I’m curious about why you’d find it useful.
If there’s a specific file you’d want stored on device that’s possible when you request the build.