Hello fellow bubbler!
After a long time with this plugin in the ice, I decided to publish it as it currently is.
What its current state would be, you may ask.
Well, it is almost there!
I call it version 0.95 since all features for the initial version are present, it just needs some polishing on top of known issues and for its main use case it will be perfect!
And what that use case would be?
Offline data collection tool.
Letās say that an end user of yours needs to input offline data, like a farm inspection, and later when it gets online again, to send that data to your Bubble app.
The native app can do exactly that!
Of course the plugin can be used for other use cases too, but this is the most exciting one.
Other potential uses: You can currently create an offline viewable feed of information, or an offline mode for your natively wrapped app and more.
Here is the live demonstration of my favourite use case:
The Android app
https://play.google.com/store/apps/details?id=com.ubformsnc
The Bubble app for you to login
https://native-app-conjurer.bubbleapps.io/version-test/generate_qr_login
To test, download the app from Playstore and follow the instructions in the Bubble app page.
This demo works like this:
- You login through a mechanism that looks like a reverse whatsapp web login,
- the main key goes from your Bubble app into the native app,
- then the native app can send data back to be associated with a specific user in the Bubble app.
- The native app, under your command through the āPost dataā button, sends a web request to the Bubble appās publicly exposed backend workflow.
- If the native app is offline, it will wait until it is opened again with the phone being online and then sends the data.
Editor view of this demo and much, much more information you will find inside the instruction manual
This demo native app still can take some polishing in its user experience.
Once you select an image, it resets all text inputs of the page.
Also, sometimes it may send apparently missing data due to a button near the end having the effect of deleting an image.
How does this plugin works? It creates, through workflows, a JSON text, based on Jasonelle, that will instruct the native app to become a companion app to your Bubble app.
You will then save this into your database and makes it available through a backend workflow, and whenever the app gets online, especially for the first time after being installed, it will hit this publicly exposed backend workflow to get this text that contains all its initial page(s) with all their logic, data and more.
And of course, I kept all the boring details inside the instruction manual, and you can now find it here:
https://drive.google.com/file/d/1bGdccTipE0ysmPcaDsZSG1iz_Do1iXqm/view?usp=sharing
And the plugin itself, of course!
https://bubble.io/plugin/native-app-conjurer-1597785192288x568184268755828740
Now, a bit of backstory and the roadmap:
I could not create this plugin if it were not for some community members.
We had a fundraise campaign, then I still ended up investing out of my pocket an almost 1:1 match of funds in order to finish the plugin.
However, when I got some expert bubblers to aid with the beta testing, we quickly realized that another part was still difficult: Dealing with Android Studio. Very difficult indeed, lots of hoops.
Then I put this project in the ice and went after freelancers that could automate away this Android Studio part. And freelancer after freelancer, month after month, gave up trying to build this automation.
It seems to me now that it is too niche, too specific, that it is quite difficult to find someone that has the specific skillset to do the automation.
I then gave up trying to automate that and release the plugin without it and hopefully we can help eachother in this thread in the fight against the powerful Android Studio.
Here it is then
And moving forward?
I cannot possibly move forward alone.
- iOS support?
- Scheduled and reactive push notifications?
- Better wrapper?
- Moving the workflow actions to the server side so we can dynamically build and serve pages?
- Automatic compilation of the app?
- Instructional videos?
All of this, and much more, is possible, just not from me alone.
The way this plugin started is the only way for it to move forward: with your involvement.
I know because I withheld it for so long and tried to move it forward by myself and could not do so.
So this plugin is most of all a community technology, open to all, without pricing or usage restrictions.
Yes, it is under my name, but it is just that I took the challenge to be a central point for this.
Anyone can freely clone it anyway.
Okay, so how can you get involved? Two ways: Features and instructions.
But mainly it has to be something that suits your interests, your agenda.
The community aspect of it is that we all invest in the same shared piece of tech, instead of each reinventing the wheel in closed rooms.
- Maybe you want to be free from ānativizationā fees and be able to turn an unlimited amount of Bubble apps into native apps without incremental, per project or per app, costs.
- Maybe your Bubble app needs a specific offline or native function currently unavailable elsewhere. Or a group of several functionalities and deep integration with your Bubble app!
- Maybe you want to have more control over the tech involved.
- Or maybe you want to teach your students how to do something with this plugin.
I cannot tell. You can!
When it comes to features, you can:
- Pay someone to create the feature for you.
- Create the feature youself if you have coding skills.
When it comes to instructions, you can:
- Create a written or video tutorial showing how to create a specific kind of app or native feature with the plugin.
- Help improve the basic general instruction manual.
- Helping people in this, or another thread, on solving specific problems that may arise.
- Help curate a list of known issues. Oh, there will be plenty of them. So many moving parts in this one.
And finally, as usual, tell others about the plugin. Another bubbler you know may be interested in it.
If you want to use this tech in your project and wants to further improve it to meet your requirements, then let me know and I can help onboard whichever professional you allocate to this
The only thing I ask is: letās keep this free and open for everyone! If you do create a new feature in it, do share it back.