Help Us Contribute to the Future of Bubble Mobile Plugins

Hey all,
And really such a great initiative.
I was wandering if it is possible to create a plugin to switch languages?
Except if I have missed it int he docs I can’t figure out how to switch the language on the app

Great i’m looking into it now. I also just updated the docs, and we’ve added five more actions.

Available Actions Overview

Action

Description

Add Marker

Adds a new marker to the map with customizable appearance and popup

Remove Marker

Removes a specific marker from the map by ID

Fly To

Smoothly animates the map to a specific coordinate

Fly To Bounds

Automatically fits the map view to show all markers

Fly To Next

Navigates to the next marker in sequence

Fly To Random

Flies to a randomly selected marker

@rikard the mapbox plugin now supports Support for Custom Style URL and several other features. Thanks for getting our attention back to this plugin and for your feedback!

Supabase Real-time or Websockets would be amazing…

1 Like

amazing

1 Like

Interesting, i’ll look into this for you.

1 Like

Switching language is handled by the device natively.

:white_check_mark: How Bubble’s built-in language switching works:

1. Enable Multiple Languages

  • Go to Settings → Languages.
  • Add the languages you want to support.
  • Set a default language.

2. Use “App Text”

  • Instead of hardcoding text in elements, use “Insert dynamic data → App Text”.
  • This connects to translation keys that you can define per language.

We do have a signature pad plugin for Bubble mobile. Link: Signature Pad Bubble mobile Plugin | Bubble

2 Likes

This should be an easy one your you kings:

Gradient and background blur via ID would be killer for me! My example is for the gradient blur !

Hey, thanks for the reply.
I do know about this and I actively use this in my app.
I have added 3 languages and English is my default, with German and French as the others.

On my phone which has English as the primary language, and German as a secondary. When the app is opened, it shows German translation which doesn’t make sense to me.
However, on another phone that only has English as its default language without any other additional it shows English. Could be a bug?

Furthermore, I intend to allow users to be able to switch languages in the app if necessary, so switching between English, and German. How can this be achieved?

absolute legend!!!

1 Like

@zula-tribe I’d suggest reaching out to bubble support or create a topic on it. I think the device itself is the main factor for displaying the right language, without allowing the user to change it manually.

We don’t have access to localization SDK’s atm. Alternativaly you could allow the user to switch language in the app, but that would bloat the app with conditional statements everywhere.

Thanks for all the info.

Another suggestion would be an audio recorder.
Essentially to be able for my user to tap on a button and it can record what they say through the mic. Also with the ability to choose to either save the recording or discard after being recorded. :slight_smile:

Hey @nocodeventure I’m struggling to use the Local Storage plugin. I’m using external Auth for my app (Xano) and I’m storing keys on the local storage plugin, but when the app is closed in iOS, all data from the plugin is lost (at least won’t retrieve anything on load).

Is this expected behaviour?

Hi @aestela This is not the intended behavior. Are you setting a namespace? You should. But otherwise, send me a DM we can look into it.

I’ll send you a DM :slight_smile:

1 Like

Hello, I would need this please. I give you what might help you develop it. Thanx!
Feature Description
:studio_microphone: Voice Activity Detection Listens to microphone input to detect when the user is talking.:pause_button: Pauses video when talking. When speech is detected, the video pauses.:play_button: Resumes when silence When the user stops talking, the video resumes.:electric_plug: Works with Video Player Pro Targets


:hammer_and_wrench: Plugin Elements

  1. Element: “Voice Detector”
    Type: Visual Element
    Properties:
    :bullseye: targetElementSelector: (Text) Default: “video” — use to specify a custom class or tag if needed.
    :muted_speaker: sensitivity: (Decimal) Default: 0.02 — sets the volume threshold for detecting speech.
    :stopwatch: silenceDelayMs: (Number) Default: 1000 — how long to wait before resuming video after silence. Customisable pls.

States:
:green_circle: isTalking: Boolean (exposed)
:movie_camera: videoPaused: Boolean (exposed)

  1. Action: Start Detection
    Triggers microphone access and starts real-time analysis.

  2. Action: Stop Detection
    Stops detection and resets state.


:laptop: Plugin Logic (simplified JS inside the plugin element)
function(instance, properties, context) { navigator.mediaDevices.getUserMedia({ audio: true }).then((stream) => { const ctx = new (window.AudioContext || window.webkitAudioContext)(); const mic = ctx.createMediaStreamSource(stream); const analyser = ctx.createAnalyser(); mic.connect(analyser);
const data = new Uint8Array(analyser.fftSize); const threshold = properties.sensitivity || 0.02; const delayMs = properties.silenceDelayMs || 1000;
const video = document.querySelector(properties.targetElementSelector || “video”); if (!video) return;
let isTalking = false; let silenceStart = null;
function detect() { analyser.getByteTimeDomainData(data); let sum = 0; for (let i = 0; i < data.length; i++) { const val = (data[i] - 128) / 128; sum += val * val; } const volume = Math.sqrt(sum / data.length);
if (volume > threshold) { if (!isTalking) { isTalking = true; instance.publishState(“isTalking”, true); if (!video.paused) video.pause(); instance.publishState(“videoPaused”, true); } silenceStart = null; } else { if (isTalking) { if (!silenceStart) silenceStart = Date.now(); if (Date.now() - silenceStart > delayMs) { isTalking = false; instance.publishState(“isTalking”, false); if (video.paused) video.play(); instance.publishState(“videoPaused”, false); silenceStart = null; } } }
requestAnimationFrame(detect); }
detect(); }).catch((err) => { console.error(“Mic access error:”, err); });}

@nocodeventure a timer / counter that still continues if the screen gets locked, or you open a different app. It should continue in the background. Use cases, meditation apps, fitness apps etc where you can open a different app, and the counter will still continue.

This would be a game changer!!!

1 Like

Hey ive made a personal plugin but it wont show up on the mobile editor, just the web editor. How do i fix this please assist

Hi @dailywebdesign we have two timers. Do they not work for you after locking the screen?

We’re not sure if it will continue in the background, but it should as long as the phone does not stop the app from processing anything in the background.

Link 1: Timer Countdown Text Plugin | Bubble

Link 2: Countdown Timer Bubble Mobile Plugin | Bubble