XODERA / NATIVE LABGuide public • sans connexion
Plugins natifs • bêta

Des outils natifs.Voyez le résultat.

Explorez cinq expériences mobiles Bubble, consultez les résultats réels sur Android et reliez chaque élément aux données et aux workflows de votre app. Le guide est public ; l’accès natif interactif a ses propres limites.

Aperçu développeur uniquement : Bubble exige une connexion avec un accès collaborateur à cette app. Le guide et les captures sont publics, sans compte. Le simulateur interactif anonyme attend une version publique vérifiée.

Native Video Player ANDROID

Native Lab Vidéo dans le simulateur Android hébergé par BubbleVoir la capture complète
Capture réelle du simulateur Android. Aucune validation sur iPhone physique n’est annoncée.
NATIVE / ANDROID

De vrais écrans. Des limites claires.

Ces captures proviennent de notre simulateur Android hébergé par Bubble, avec des exemples synthétiques. Ouvrez chaque écran en grand. Elles montrent un état observé, sans certifier un appareil physique.

Native Lab Audio dans le simulateur Android hébergé par BubbleVoir la capture complète

Audio

01

Un lecteur natif compact pour messages vocaux, cours et pièces jointes audio.

Lecture en bêta
Native Lab Vidéo dans le simulateur Android hébergé par BubbleVoir la capture complète

Vidéo

02

Une lecture native avec commandes superposées, sources dynamiques et workflows Bubble.

Interface en bêta
Native Lab Photo dans le simulateur Android hébergé par BubbleVoir la capture complète

Photo

03

Chargez, recadrez, tournez et redimensionnez une image, puis exportez un résultat local.

Éditeur en bêta
Native Lab Passes QR dans le simulateur Android hébergé par BubbleVoir la capture complète

Passes QR

04

Un scanner natif et un parcours serveur distinct pour vérifier et consommer des passes autorisés.

Scanner en bêta
Native Lab Documents dans le simulateur Android hébergé par BubbleVoir la capture complète

Documents

05

Une capture avec consentement et une extraction facultative via votre fournisseur IA.

Capture / IA en bêta
SETUP / BUBBLE

De l’élément à votre workflow

Chaque démo détaille ses entrées, commandes, événements Bubble et sorties. Les noms techniques restent en anglais pour retrouver le champ exact dans l’éditeur.

Configurer une fois

  1. Créez ou choisissez votre projet Bubble dans BestPlugins → Dashboard → Plugins.

  2. Choisissez ce plugin et copiez sa clé de projet.

  3. Dans Bubble → Plugins → le plugin choisi, collez sa clé dans licensing_api_key pour Audio, Video, Photo, Recorder ou Offline Files ; utilisez project_api_key pour Documents AI, QR Passes ou B2 Files. Si l’activation est indiquée Prévu, attendez sa disponibilité.

  4. Ajoutez l’élément, choisissez vos données et construisez le workflow ci-dessous.

  5. Audio Player, Video Player, Photo Editor, Audio Recorder et Files Kit : installation gratuite dans Bubble, puis essai de 7 jours avec carte et 1,50 USD par mois, par plugin et projet. Development et Live sont inclus. Sans plafond d’opérations ; les limites de fichier et de fonction restent applicables. Vérifiez la date du premier débit et les conditions d’annulation avant confirmation. Les autres plugins restent prévus.

Les cinq plugins média et fichiers sont en bêta publique. Les démos privées Native Lab ci-dessous ont des accès distincts et n’activent aucun abonnement.

01 / Préparer la vue native

  1. Installez la bêta publique choisie dans votre app mobile native Bubble. Les plugins indiqués Prévu ou Brouillon privé restent indisponibles. Ce guide ne donne pas accès aux démos privées Native Lab.

  2. Placez l’élément indiqué sur une vue native. Donnez une taille visible aux lecteurs. Reliez les champs dynamiques aux données de votre app ou à une saisie ; commencez avec des fichiers synthétiques.

  3. Reliez is_active au focus ou à la visibilité de la vue lorsque ce champ existe. Utilisez disabled pour bloquer les interactions. Ne placez aucune clé serveur privée de plugin ou de fournisseur dans les champs natifs ou les URL.

  4. Après une modification des plugins ou autorisations natives, reconstruisez le simulateur si Bubble le demande. L’ancienne version peut continuer à fonctionner pendant la préparation de la nouvelle.

02 / Choisir le bon aperçu

  1. Dans le menu d’aperçu Bubble, choisissez Simulated device pour exécuter les bibliothèques natives. Le simple aperçu web ne valide pas ces éléments natifs.

  2. L’aperçu développeur officiel ouvre la vue Home et exige une connexion avec un accès collaborateur existant à cette app Bubble. Un compte Bubble ordinaire ne suffit pas. Ce lien n’accorde ni accès collaborateur ni accès anonyme au simulateur.

  3. Essayez d’abord les exemples synthétiques, puis vos propres fichiers autorisés. La caméra, les permissions, le routage audio et le comportement de chaque appareil nécessitent un test réel sur Android ou iPhone.

Ouvrir l’aperçu développeur

Aperçu développeur uniquement : Bubble exige une connexion avec un accès collaborateur à cette app. Le guide et les captures sont publics, sans compte. Le simulateur interactif anonyme attend une version publique vérifiée.

01
Xodera Audio Player Native

Audio

Un lecteur natif compact pour messages vocaux, cours et pièces jointes audio.

Lecture en bêta
Observé sur Android

La source dynamique, la position/vitesse et les workflows de lecture/recherche sont visibles dans le simulateur Android.

Reste à valider

Le routage audio réel et les nouveaux gestes restent en validation. L’enregistrement n’est pas inclus.

Essayer dans cet ordre

  1. Définissez source_url avec une URL audio accessible ou un fichier local compatible. Ajoutez éventuellement title, subtitle et waveform_peaks_json.

  2. Appuyez sur Play, changez la position et la vitesse. Fournissez explicitement les pics pour une forme d’onde ; il ne s’agit pas d’une analyse automatique de la parole.

  3. Reliez des boutons Bubble à Play, Pause ou Seek. Donnez à seconds une position numérique pour Seek, puis consultez current_time et playback_rate.

Relier un workflow Bubble

Traitez ready avant d’activer votre commande de lecture. Utilisez seek_completed pour la fin d’un déplacement et player_error avec error_code pour un message sûr.

Lire le résultat

Lisez player_status, current_time, duration, progress et playback_rate. La lecture ne génère pas de nouveau fichier audio.

Réinitialiser ou arrêter

Stop arrête la lecture ; Reload source rouvre la source configurée. Passez is_active à no quand la vue devient inactive.

Champs d’entrée dynamiques10
source_urlwaveform_peaks_jsontitlesubtitleplayback_ratevolumeloopis_activedisabledui_text_json
États exposés13
player_statusis_playingis_loadedis_bufferingcurrent_timedurationprogressplayback_ratevolumeis_loopingwaveform_availablewaveform_statuserror_code
Événements7
readyplayback_startedplayback_pausedplayback_endedseek_completedrate_changedplayer_error
Actions de l’élément8
  • Play
  • Pause
  • Toggle
  • Stop
  • Seek(seconds)
  • Set speed(rate)
  • Set volume(volume)
  • Reload source

Les noms proviennent des définitions natives actuelles. Une action disponible n’est pas forcément validée sur tous les appareils. Dépliez une référence pour voir tous les noms.

02
Native Video Player

Vidéo

Une lecture native avec commandes superposées, sources dynamiques et workflows Bubble.

Interface en bêta
Observé sur Android

Les captures Android montrent la superposition, les changements de source, position/vitesse, Pause par workflow et le plein écran.

Reste à valider

Les gestes et la dernière version candidate restent en validation. Les pistes dépendent de la source actuelle ; DASH est réservé à Android.

Essayer dans cet ordre

  1. Définissez source_url et éventuellement poster_url. Gardez content_type = auto sauf si la source exige progressive, hls ou dash.

  2. Appuyez au centre sur Play. Utilisez la progression, la vitesse, le volume/silence et le plein écran. Le menu présente les options de lecture disponibles.

  3. Reliez un bouton Bubble à Pause ou Seek. Utilisez position_seconds pour Seek ou rate pour Set playback rate. Une nouvelle source ne promet pas de lecture automatique.

Relier un workflow Bubble

Utilisez source_loaded / playback_ready pour la disponibilité, time_changed pour la progression, et player_error avec error_code. Les index de pistes appartiennent à la source actuelle.

Lire le résultat

Lisez position_seconds, duration_seconds, rate, is_fullscreen et status. Il s’agit de lecture, sans export de fichier retouché.

Réinitialiser ou arrêter

Utilisez Stop and rewind ou Reload video. Passez is_active à no en quittant la vue ; la reprise exige une action explicite.

Champs d’entrée dynamiques11
source_urlposter_urlcontent_typeratevolumemutedloopis_activedisablednative_controlsui_text_json
États exposés20
is_playingis_bufferingpending_playis_livemutedloophas_sourceis_fullscreenposition_secondsduration_secondsvolumeratesource_generationselected_audio_indexselected_subtitle_indexstatusaudio_tracks_jsonsubtitle_tracks_jsonerror_codeerror_message
Événements9
source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_error
Actions de l’élément11
  • Play
  • Pause
  • Stop and rewind
  • Reload video
  • Seek(position_seconds)
  • Set volume(volume)
  • Set muted(muted)
  • Set playback rate(rate)
  • Enter fullscreen
  • Select audio track(index)
  • Select subtitle track(index)

Les noms proviennent des définitions natives actuelles. Une action disponible n’est pas forcément validée sur tous les appareils. Dépliez une référence pour voir tous les noms.

03
Photo Editor

Photo

Chargez, recadrez, tournez et redimensionnez une image, puis exportez un résultat local.

Éditeur en bêta
Observé sur Android

La sélection de recadrage, la rotation, le redimensionnement et les états d’export PNG sont visibles dans le simulateur Android.

Reste à valider

Les gestes ainsi que les pixels, l’orientation et les métadonnées du fichier exporté restent à valider. Un état affiché ne certifie pas le fichier.

Essayer dans cet ordre

  1. Définissez source_url avec une URL d’image ou une URI locale compatible, puis choisissez Load source. Réglez crop_aspect et gardez show_controls actif pour commencer.

  2. Choisissez Begin crop, ajustez la sélection, puis Apply crop. Utilisez Rotate ou Resize, puis Undo / Redo pour parcourir l’historique.

  3. Choisissez export_format (jpeg ou png), export_quality et export_max_dimension, puis Export image. Attendez export_completed avant de lire la sortie.

Relier un workflow Bubble

Sur source_loaded, activez les commandes. Sur export_completed, lisez output_uri et output_mime. Traitez editor_error avec error_code et attendez tant que is_busy vaut yes.

Lire le résultat

output_uri est un fichier local de cache, avec output_width, output_height, output_bytes et output_mime. Ajoutez votre propre envoi autorisé pour le conserver.

Réinitialiser ou arrêter

Cancel crop quitte le recadrage. Reset edits revient à la source chargée ; Clear session efface la session et les états de sortie locaux.

Champs d’entrée dynamiques11
source_urldocument_contextis_activedisabledshow_controlscrop_aspectexport_formatexport_qualityexport_max_dimensionallow_upscaleui_text_json
États exposés16
editor_statusis_busyhas_imagehas_changescan_undocan_redoimage_widthimage_heightoutput_urioutput_widthoutput_heightoutput_bytesoutput_mimeerror_codecrop_activecrop_rect_json
Événements10
source_loadedsource_load_failededit_appliededit_undoneedit_redoneeditor_resetexport_startedexport_completedoperation_cancellededitor_error
Actions de l’élément13
  • Load source
  • Begin crop
  • Apply crop(origin_x, origin_y, width, height)
  • Cancel crop
  • Rotate(degrees)
  • Flip(axis)
  • Resize(width, height)
  • Undo
  • Redo
  • Reset edits
  • Export image
  • Cancel operation
  • Clear session

Les noms proviennent des définitions natives actuelles. Une action disponible n’est pas forcément validée sur tous les appareils. Dépliez une référence pour voir tous les noms.

04
QR Pass Scanner

Passes QR

Un scanner natif et un parcours serveur distinct pour vérifier et consommer des passes autorisés.

Scanner en bêta
Observé sur Android

Le refus/réessai de permission, le montage/pause de caméra et le décodage natif du QR synthétique public ont des preuves Android.

Reste à valider

La caméra hébergée peut être noire. Le scan physique, la vérification/consommation réelle et Clear session natif restent à valider.

Essayer dans cet ordre

  1. Pour le décodage de démonstration, définissez demo_enabled = yes puis Decode demo image. fixture_decoded confirme seulement le décodage d’image ; aucun passe n’est créé ni validé.

  2. Pour le scan réel, demandez la permission caméra et démarrez le scanner. Reliez is_active au focus de la vue afin d’arrêter la caméra hors écran.

  3. Configurez la clé serveur QR en privé et autorisez le personnel dans votre backend. Lorsque les actions prêtes à l’emploi sont disponibles, scannez puis choisissez séparément Check / Redeem. La validation réelle du personnel reste en attente.

Relier un workflow Bubble

Utilisez fixture_decoded pour l’exemple et pass_scanned pour un scan. Seul un reçu pass_redeemed réussi prouve la consommation. Le personnel doit être autorisé avec la portée qr_passes:redeem. Sur redemption_pending, conservez la session et utilisez Retry same redemption.

Lire le résultat

Lisez scanner_status, server_status, scan_source et receipt_id après votre propre consommation réussie. Les secrets QR et capacités runtime ne sont pas exposés comme états Bubble.

Réinitialiser ou arrêter

Pause arrête la caméra. Clear session efface l’état local ; une requête déjà soumise au serveur peut se terminer. Aucune consommation hors ligne.

Champs d’entrée dynamiques4
disabledis_activedemo_enabledui_text_json
États exposés11
scanner_statusserver_statuspass_idpass_labelreceipt_iderror_codeis_busyis_scanningtorch_enabledscan_sourcepending_redemption
Événements13
scanner_startedscanner_pausedscanner_cancelledpermission_deniedpass_scannedvalidation_startedvalidation_completedredemption_startedpass_redeemedredemption_rejectedredemption_pendingfixture_decodedqr_error
Actions de l’élément1
  • Clear session

Les noms proviennent des définitions natives actuelles. Une action disponible n’est pas forcément validée sur tous les appareils. Dépliez une référence pour voir tous les noms.

05
Document Capture

Documents

Une capture avec consentement et une extraction facultative via votre fournisseur IA.

Capture / IA en bêta
Observé sur Android

La capture native antérieure et le refus de permission actuel ont des preuves Android hébergées. La capture affichée montre cette limite de permission.

Reste à valider

L’extraction complète via le composant natif actuel et le fournisseur reste en attente. Aucune vérification d’identité, d’authenticité ou de présence.

Essayer dans cet ordre

  1. Définissez document_side, button_label et consent_text. Utilisez un reçu synthétique, donnez le consentement de capture, puis Capture document.

  2. Pour l’IA dans ce Lab privé, configurez le fournisseur et l’association temporaire ci-dessous. Définissez fields_json. La configuration prévue de votre app utilise la clé privée du plugin Document AI dans son backend protégé.

  3. Lisez le consentement de traitement distinct, puis Analyze document. Utilisez Check result pour une opération déjà en attente et révisez les champs reçus.

Relier un workflow Bubble

Sur capture_succeeded, lisez local_uri. Prévoyez un réessai pour permission_denied. Sur analysis_ready, affichez analysis_fields_json pour révision ; analysis_pending demande de vérifier la même opération.

Lire le résultat

local_uri est une image du cache local. analysis_fields_json contient l’extraction et review_required reste true. Les clés du fournisseur ne vont jamais dans l’élément natif.

Réinitialiser ou arrêter

Une nouvelle capture explicite démarre un autre document. Révoquez l’association à la fin ; un changement de contexte authentifié efface le travail privé précédent.

Champs d’entrée dynamiques8
document_sidebutton_labelconsent_textdisabledfields_jsonprocessing_consent_textanalyze_button_labelcheck_button_label
États exposés14
capture_statuslocal_urimime_typedocument_sideimage_widthimage_heighterror_codeis_capturinganalysis_statusanalysis_operation_idanalysis_fields_jsonanalysis_error_codereview_requiredis_analyzing
Événements9
capture_startedcapture_succeededcapture_cancelledpermission_deniedcapture_erroranalysis_startedanalysis_readyanalysis_pendinganalysis_error
Actions de l’élément0

Cet élément utilise ses commandes natives et ses événements exposés ; aucune action de workflow supplémentaire n’est déclarée.

Les noms proviennent des définitions natives actuelles. Une action disponible n’est pas forcément validée sur tous les appareils. Dépliez une référence pour voir tous les noms.

DATA / WORKFLOWS

Des valeurs dynamiques concrètes

01

Changer une source multimédia

Reliez source_url de Xodera Audio Player Native ou Native Video Player à une URL de fichier Bubble ou une URI locale compatible. La nouvelle valeur remplace la source ; lancez ensuite la lecture explicitement. Pour Seek, l’audio utilise seconds et la vidéo position_seconds.

02

Utiliser une photo exportée

Définissez source_url de Photo Editor, choisissez export_format et export_quality, puis lancez Export image. Sur export_completed, lisez output_uri, output_mime et les dimensions. Cette URI désigne le cache de l’appareil, pas une URL publique Bubble.

03

Intégrer une extraction

Définissez fields_json de Document Capture sur ["title","date","total"]. Configurez la clé Document AI dans votre backend protégé puis utilisez Analyze document lorsque l’action prête à l’emploi est disponible. Dans ce Lab privé, utilisez l’association distincte ci-dessous. Sur analysis_ready, révisez analysis_fields_json et gardez review_required visible.

Les fichiers restent locaux jusqu’à votre choix

output_uri de Photo Editor et local_uri de Document Capture désignent des fichiers temporaires de l’appareil. L’aperçu peut disparaître lorsque la session ou le cache est effacé. Pour conserver un résultat, créez un workflow autorisé d’envoi ou de stockage dans votre app. La démo ne publie rien automatiquement, n’envoie rien vers Bubble, n’enregistre rien dans la galerie et ne génère pas de vidéo retouchée.

APPS / WORKFLOWS

Ce que vous pouvez créer

Des exemples concrets pour relier les entrées dynamiques, les actions du plugin et les résultats dans votre app. La disponibilité suit le statut actuel de chaque produit.

Ce que vous pouvez créer

Xodera Audio Player Native

Notes vocales dans une conversation d’assistanceUn simple lien de fichier fait quitter la conversation et complique la réécoute d’une longue réponse.Voir le workflow
Entrée dynamique
source_url = URL audio du Message sélectionné ; title = libellé de son auteur ; subtitle = date du Message.
Workflow métier
Placez le lecteur dans le détail du message. L’utilisateur peut lancer ou suspendre la lecture, se déplacer avec Seek et changer la vitesse. Liez is_active à la conversation ouverte.
Résultat
Affichez la progression avec is_playing, current_time et duration. Conservez l’ID du Message dans votre app pour ne pas appliquer un événement tardif à une autre conversation.
Erreur et reprise
Sur player_error, affichez error_code et proposez Reload source ; conservez le message et ne le marquez pas comme écouté après un échec.
Périmètre
Lecture uniquement : le plugin n’envoie pas de messages, ne transcrit pas et ne calcule pas la forme d’onde.
Reprendre un cours de langue au bon endroitL’apprenant doit pouvoir réécouter un passage difficile sans recommencer tout le cours.Voir le workflow
Entrée dynamique
source_url = URL audio du Cours courant ; title = nom du Cours ; la position enregistrée appartient à cet apprenant et à ce cours dans votre base.
Workflow métier
Après ready pour le cours courant, utilisez Seek avec la position enregistrée, puis laissez l’utilisateur lancer Play. Set speed permet une écoute plus lente. Votre workflow enregistre la progression.
Résultat
Lisez current_time et duration. Sur playback_ended, votre app peut enregistrer une étape d’écoute pour le Cours courant.
Erreur et reprise
Si la source change, ignorez l’ancienne position jusqu’au chargement du bon cours. Une écoute terminée ne prouve ni la compréhension ni la réussite à un examen.
Périmètre
L’enregistrement de la progression relève de votre workflow Bubble. Aucune promesse de lecture en arrière-plan ou depuis l’écran verrouillé.
Réviser un enregistrement avec des commentaires horodatésUn formateur ou un éditeur doit pouvoir passer directement du commentaire au passage concerné.Voir le workflow
Entrée dynamique
source_url = URL de l’enregistrement de la Révision sélectionnée ; chaque Commentaire de votre app conserve une position en secondes ; waveform_peaks_json contient, le cas échéant, les vraies amplitudes du même fichier.
Workflow métier
Clic sur un Commentaire → Seek à sa position → Play. Au changement de source, remplacez ou effacez les amplitudes et reliez la bonne Révision.
Résultat
Affichez current_time à côté de votre formulaire de commentaire. waveform_available indique si des amplitudes réelles ont été fournies.
Erreur et reprise
Votre app doit borner ou refuser une position qui dépasse la durée courante. Sans amplitudes réelles, gardez le contrôle de progression habituel.
Périmètre
Le stockage des commentaires, la transcription, le calcul des amplitudes et le montage audio ne font pas partie de ce lecteur.

Lecture uniquement ; les amplitudes doivent provenir du même fichier. La validation sur appareil natif reste en attente.

Ce que vous pouvez créer

Xodera Audio Recorder Native

Écouter avant d’envoyer un message vocal non confidentielL’utilisateur doit pouvoir réécouter et remplacer son enregistrement avant de le joindre à un message.Voir le workflow
Entrée dynamique
title = libellé de la conversation ; définissez max_duration_seconds et max_upload_bytes selon votre politique de messages.
Workflow métier
Start recording → Stop recording → attendre recording_ready → Play preview. Proposez Seek preview et Set preview speed. Seul Envoyer appelle Upload to Bubble vers le point d’envoi validé de votre app.
Résultat
Uniquement sur upload_succeeded, créez le Message et renseignez son champ audio avec uploaded_file. Le recorder ne crée pas lui-même de Message.
Erreur et reprise
En cas de refus du micro, affichez permission_status. Après un échec d’envoi, gardez l’enregistrement local. Réconciliez une réponse inconnue avant tout nouvel envoi pour éviter les doublons.
Périmètre
Le transport Bubble typé actuel est public uniquement. Ce scénario ne convient pas aux échanges confidentiels, médicaux ou d’identité. Pas de transcription ni de messagerie chiffrée incluses.
S’entraîner à la prononciation sans envoi immédiatL’apprenant veut écouter sa réponse avant de décider de la transmettre.Voir le workflow
Entrée dynamique
title = consigne de l’Exercice courant ; max_duration_seconds = limite de l’exercice ; la Réponse reste un enregistrement métier de votre app.
Workflow métier
Enregistrer → arrêter → Play preview. L’apprenant peut se déplacer, ralentir l’aperçu ou annuler pour recommencer. Save locally ne s’exécute que s’il veut garder le brouillon.
Résultat
duration, local_uri, mime_type et draft_id décrivent la tentative. Votre app choisit de la garder localement ou de la transmettre plus tard par un transport adapté et validé.
Erreur et reprise
Sur preview_error, conservez le brouillon et affichez error_code. Un aperçu ou un brouillon local ne doit pas devenir une Réponse soumise avant la réussite du workflow d’envoi.
Périmètre
Pas de notation de prononciation, transcription, notification au professeur ou soumission automatique. La restauration après redémarrage reste à valider nativement.
Garder un brouillon vocal local et choisir quand l’envoyerUn intervenant peut être interrompu ; il ne devrait pas devoir envoyer sa note pour la conserver.Voir le workflow
Entrée dynamique
saved_draft_id = ID conservé par votre app pour ce compte et cet appareil ; title = libellé non sensible de la Tâche choisie.
Workflow métier
Start/Stop recording → Save locally. Gardez le draft_id dans un état propre au compte et à l’appareil. Restore local draft reprend cet ID, puis Play preview permet de vérifier avant un éventuel envoi.
Résultat
Sur local_saved ou local_restored, vérifiez is_saved_locally, local_uri et duration. Ne supprimez le brouillon qu’après un choix explicite ou une politique de conservation confirmée séparément.
Erreur et reprise
Si la restauration échoue, affichez error_code et conservez l’ID pour le diagnostic. Ne présentez pas un fichier vide ou différent comme restauré. Aucun envoi automatique au retour du réseau.
Périmètre
Un ID de brouillon n’est pas une URL cloud et ne fonctionne pas sur un autre appareil. Isolation des comptes et restauration après fermeture restent à valider avant commercialisation.

L’envoi Bubble typé actuel est public uniquement. Son natif et conservation du brouillon après fermeture restent à valider.

Ce que vous pouvez créer

Xodera B2 Files Native

Conserver une pièce jointe dans votre propre bucket privéUne Intervention Bubble a besoin d’une référence durable ; une URL de lecture expirante ne doit pas devenir l’identité du fichier.Voir le workflow
Entrée dynamique
bucket_binding_id = liaison autorisée vers votre bucket privé ; local_uri, display_name, mime_type et expected_size décrivent dynamiquement le fichier local choisi.
Workflow métier
Parcours candidat : Check local source → Upload file → attendre upload_verified. Votre workflow enregistre ensuite asset_ref et les métadonnées dans l’Intervention appartenant au bon utilisateur.
Résultat
Utilisez asset_ref, size_bytes, mime_type et upload_status. Resolve private read peut ensuite fournir une URL temporaire pour un usage autorisé.
Erreur et reprise
Si la base échoue après upload_verified, reprenez sa mise à jour avec la même référence, sans nouveau PUT. Réconciliez upload_pending avec Check or recover upload status et le même ID d’envoi.
Périmètre
Le transfert sur compte propre est implémenté sur source ; raccordement automatique à clé unique, installation native et octets B2 restent à valider. Le bucket privé ne définit pas les droits de vos Interventions.
Créer une galerie de pièces jointes avec des références durablesUne galerie a besoin de noms, types, pagination et d’un accès fiable à l’élément choisi.Voir le workflow
Entrée dynamique
Après un envoi vérifié, le Fichier de votre app conserve asset_ref, nom, MIME et relation propriétaire/intervention. Une URI locale n’est pas son identité cloud.
Workflow métier
Le candidat permet List application files et Load more application files. Pour une liste Bubble, utilisez des lectures serveur typées validées séparément ou vos Fichiers synchronisés. La sélection fournit asset_ref à Get asset metadata ou Download accepted version.
Résultat
has_more et next_cursor appartiennent à la requête courante. Un téléchargement achevé retourne local_output_uri, copie sur l’appareil et non lien public permanent.
Erreur et reprise
Réinitialisez la pagination après changement de liaison, compte ou requête. Sur transfer_error, conservez le Fichier existant et affichez error_code sans substituer une autre version fournisseur.
Périmètre
files_json reste un diagnostic, sans preuve d’intégration à une RG Bubble typée. Aucune galerie/bucket/natif validé, synchronisation cloud ou reprise en arrière-plan annoncée.
Confirmer la publication et la suppression d’une version préciseLe personnel ne doit pas exposer une pièce privée par erreur ni supprimer toutes les versions lors d’un remplacement.Voir le workflow
Entrée dynamique
asset_ref = version acceptée choisie ; la liaison de bucket, la propriété et la politique serveur de votre app doivent autoriser l’opération.
Workflow métier
Affichez la visibilité courante, demandez confirmation, puis appelez Change public sharing. Pour supprimer, utilisez Delete accepted version avec confirmation ; gardez les métadonnées métier tant que le résultat n’est pas confirmé.
Résultat
Après share_changed, utilisez visibility et public_url uniquement si le partage public a été autorisé. Après delete_completed, mettez à jour le Fichier ; delete_pending n’est pas une suppression définitive.
Erreur et reprise
Réconciliez un résultat incertain au lieu de supposer la réussite. Une URL fournisseur déjà émise peut rester valide jusqu’à expiration ; supprimer une ligne ou désactiver le partage ne rappelle pas les octets téléchargés.
Périmètre
Pas de modification de politique du bucket, de purge globale ou de garantie d’URL à usage unique/révocable. Les octets d’un bucket public peuvent être exposés dès l’envoi. Scénarios à l’état de brouillon avant validation fournisseur/natif.

Vos buckets et identifiants restreints. Raccordement natif automatique à clé unique, installation du plugin et octets fournisseur restent à valider.

Ce que vous pouvez créer

Xodera Documents AI Native

Préremplir une note de frais depuis une photo de reçuRessaisir le commerçant, la date et le total ralentit la saisie ; l’extraction peut fournir un brouillon à vérifier.Voir le workflow
Entrée dynamique
fields_json = ["merchant","date","total","currency"] ; l’utilisateur photographie le reçu et consent séparément au traitement. Pendant la validation, utilisez uniquement des reçus synthétiques.
Workflow métier
Parcours métier candidat : analysis_requested → Analyze Captured Document avec octets bornés, MIME, noms de champs, consentement et ID de demande → champs retournés dans votre formulaire de Dépense modifiable.
Résultat
L’action retourne status, operation_id, fields_json et review_required. L’utilisateur corrige et valide avant que votre workflow ne crée la Dépense.
Erreur et reprise
Si le résultat est incertain, appelez Read Analysis avec le même operation_id, sans relancer automatiquement une analyse. Le retrait du consentement efface capture et export conservés. Pas de base64 brut dans un Thing public ou les logs.
Périmètre
Candidat relu sur source : le parcours octets natifs→backend authentifié→fournisseur réel reste à valider. Pas d’approbation comptable, de précision garantie, de traitement PDF ou de verdict d’authenticité.
Lire la référence d’un bon de livraison pour un contrôle humainEn entrepôt, une référence et une date proposées peuvent éviter une ressaisie depuis le document photographié.Voir le workflow
Entrée dynamique
fields_json = ["delivery_reference","supplier","delivery_date"] ; pendant la QA, capturez la face utile d’un bon synthétique.
Workflow métier
Après consentements distincts pour capture et traitement, Analyze Captured Document propose les champs. Affichez la photo et les champs modifiables, puis demandez au personnel de confirmer la Livraison correspondante.
Résultat
Conservez operation_id pour la réconciliation ; fields_json reste une proposition. Votre workflow recherche ou met à jour la Livraison après contrôle humain uniquement.
Erreur et reprise
Un champ absent, ambigu ou incorrect demande une correction manuelle. Une erreur fournisseur laisse la Livraison intacte ; Read Analysis réconcilie une opération incertaine.
Périmètre
Pas de mouvement de stock, de validation de signature, de preuve de livraison ou de garantie sur n’importe quel modèle. Le transport métier à clé unique reste à valider en natif et avec le fournisseur.
Proposer le numéro de série d’une étiquette d’équipementUn formulaire de maintenance peut proposer modèle et numéro de série lorsque la saisie de l’étiquette est difficile.Voir le workflow
Entrée dynamique
fields_json = ["manufacturer","model","serial_number"] ; photographiez une étiquette synthétique ; choisissez un preset DeepInfra ou OpenAI disponible et enregistrez votre clé fournisseur en privé dans BestPlugins.
Workflow métier
L’action métier candidate Analyze Captured Document propose des chaînes. Affichez-les à côté de la photo et laissez corriger avant la recherche de l’Actif ou le workflow de maintenance.
Résultat
Utilisez fields_json, review_required et operation_id. Traitez les identifiants comme du texte pour préserver les zéros initiaux.
Erreur et reprise
Si la photo est illisible ou la proposition erronée, autorisez la saisie manuelle. Après une réponse incertaine, relisez la même opération plutôt que de payer une nouvelle inférence.
Périmètre
L’extraction ne prouve ni propriété, ni authenticité de l’équipement, ni identité. Les presets sont sélectionnés ; aucun endpoint ou modèle arbitraire, et aucune extraction native validée annoncée.

Les champs proposés demandent un contrôle humain. Transport natif authentifié et résultat fournisseur réel positif restent à valider ; aucune vérification d’identité.

Ce que vous pouvez créer

Xodera Offline Files Native

Préparer plusieurs pièces jointes locales avant un rapportLe formulaire doit montrer les fichiers choisis et permettre d’en garder une copie gérée avant l’envoi vers un stockage.Voir le workflow
Entrée dynamique
accepted_mime_types_json = liste MIME autorisée ; multiple = yes ; fixez max_files, max_file_bytes et un document_context propre au compte et au rapport.
Workflow métier
Pick files → vérifier noms et tailles → Save selection locally. Votre formulaire garde les IDs jusqu’à son workflow Envoyer, qui téléverse les fichiers approuvés.
Résultat
Affichez selection_count, file_names, file_sizes et saved_file_ids. La copie gérée conserve le fichier original de l’appelant.
Erreur et reprise
L’annulation du sélecteur ne soumet pas le rapport. Sur files_error, gardez les IDs déjà acceptés et affichez error_code. Une URI locale ne suffit pas à créer une pièce jointe cloud.
Périmètre
Pas de synchronisation ou d’envoi cloud automatique. Un libellé MIME n’est ni une analyse antivirus ni une validation du contenu. Sélection et copie restent à valider sur l’OS cible.
Conserver un export local de l’éditeur photo ou du recorderUn fichier généré peut se trouver dans un emplacement temporaire ; l’app a besoin d’une copie gérée explicite.Voir le workflow
Entrée dynamique
source_uri = sortie locale d’un éditeur ou recorder validé séparément ; liez ses vrais display_name et mime_type ; utilisez le document_context du même propriétaire.
Workflow métier
Load local source → vérifier les métadonnées → Save selection locally. Gardez l’ID dans le bon appareil et contexte, puis appelez Restore saved file avec cet ID précis.
Résultat
Utilisez file_id, local_uri, size_bytes et is_saved_locally. file_restored distingue une restauration achevée d’une simple demande.
Erreur et reprise
Refusez une URL HTTP comme source locale. Si la source a disparu ou si la restauration échoue, affichez error_code et conservez l’enregistrement métier pour la reprise.
Périmètre
Un serveur ne peut pas lire directement cette URI. Files ne valide ni l’export d’un autre plugin, ni une conservation cloud, ni la durabilité après redémarrage.
Partager un reçu ou un export local avec la feuille systèmeL’app doit transmettre le fichier choisi à la feuille de partage de l’appareil, sans inventer d’URL publique.Voir le workflow
Entrée dynamique
selected_file_id = copie gérée choisie dans votre liste de fichiers ; son nom et son MIME décrivent le vrai fichier local.
Workflow métier
List saved files → Restore saved file → Share selected file après un appui sur Partager. Gardez la copie jusqu’à une demande explicite de Delete saved copy.
Résultat
Utilisez share_status et share_sheet_closed pour mettre à jour l’interface après fermeture. Conservez l’ID pour un nouveau partage volontaire.
Erreur et reprise
Une feuille fermée ne prouve pas la livraison d’un email ou d’un message. Gérez annulation et files_error sans annoncer une livraison réussie.
Périmètre
Le partage passe par l’OS. Files ne crée pas de lien distant et ne garantit pas que l’app destinataire a accepté les octets.

Fichiers locaux et partage système uniquement, sans synchronisation cloud automatique. Sélection, copie, restauration et app destinataire restent à valider en natif.

Ce que vous pouvez créer

Xodera Photo Editor Native

Avatars cohérents avant l’envoiL’utilisateur doit choisir lui-même la partie visible de sa photo de profil au lieu de subir un recadrage arbitraire.Voir le workflow
Entrée dynamique
source_url = photo de profil choisie ; crop_aspect = "1:1" ; document_context = espace de noms opaque propre au compte.
Workflow métier
Attendez source_loaded, puis Begin crop → Apply crop ; Rotate et Undo restent disponibles. Sur Enregistrer, lancez Export image.
Résultat
Uniquement sur export_completed, transmettez output_uri, output_width, output_height et output_mime à votre workflow d’envoi validé, puis enregistrez sa référence durable dans le Profil.
Erreur et reprise
En cas d’annulation ou de editor_error, gardez l’ancien avatar. Effacez la session lors du changement de compte pour ne pas exposer le brouillon.
Périmètre
L’export reste local. L’envoi vers un stockage et la mise à jour de la base sont des actions métier distinctes ; gestes et export natifs restent à valider.
Préparer des photos homogènes pour un catalogueDes cadrages différents et des images trop grandes rendent le catalogue irrégulier et alourdissent les envois.Voir le workflow
Entrée dynamique
source_url = photo choisie de l’Article ; crop_aspect = ratio défini par votre app ; export_max_dimension, export_format et export_quality suivent votre politique d’envoi.
Workflow métier
Recadrez la zone utile, utilisez Resize si nécessaire, puis Export image après confirmation. Conservez séparément l’original ou sa référence.
Résultat
Vérifiez output_width, output_height, output_bytes et output_mime avant l’envoi. Enregistrez la référence de l’image reçue dans l’Article.
Erreur et reprise
Si l’export échoue ou dépasse votre politique d’envoi, affichez error_code et laissez corriger. Ne remplacez pas l’image existante avant confirmation de l’envoi.
Périmètre
Les réglages de taille et de qualité ne garantissent ni un poids exact ni un taux de compression universel. Aucun détourage, filtre ou outil de retouche n’est inclus.
Créer un détail utile pour un rapport d’interventionUn technicien peut vouloir montrer une pièce endommagée tout en conservant la photo originale du rapport.Voir le workflow
Entrée dynamique
source_url = source de la Photo du Rapport courant ; document_context = espace opaque du rapport et du compte ; le recadrage peut rester libre.
Workflow métier
Begin crop → Apply crop, puis Undo/Redo pour comparer. Export image produit la copie candidate ; votre app demande ensuite s’il faut l’ajouter au Rapport.
Résultat
Utilisez has_changes, can_undo, can_redo et output_uri. Après un envoi validé, conservez l’original et la copie dans deux champs distincts.
Erreur et reprise
Cancel crop ou Reset edits permet de revenir en arrière. Une annulation doit laisser intacte la pièce jointe originale du Rapport.
Périmètre
Il s’agit d’une copie modifiée, sans garantie de conservation de preuve, sans annotations graphiques ni vérification d’authenticité. La conservation EXIF exige son propre test.

L’export crée un fichier local. Envoi et enregistrement en base sont des actions métier distinctes ; gestes et sortie native restent à valider.

Ce que vous pouvez créer

Xodera QR Passes Native

Entrée à usage unique pour un événement dans la journéeUne simple valeur QR peut être copiée et réutilisée à plusieurs entrées.Voir le workflow
Entrée dynamique
Votre app conserve une Admission et un request_id stable pour l’émission ; utilisez label=event et un ttl_seconds compris entre 1 et 86400 secondes.
Workflow métier
Un émetteur autorisé appelle Issue QR pass et remet le QR en privé. Le personnel scanne → Check QR pass → confirme seulement si ok=yes et status=available → Confirm QR redemption avec un ID stable enregistré.
Résultat
Seuls status=redeemed et receipt_id permettent de valider l’admission dans votre app. Conservez la référence du pass et du reçu ; excluez les jetons porteurs des outils d’analytics.
Erreur et reprise
Avec outcome_unknown, reprenez exactement la même demande, le même utilisateur, environnement et pass. Ne créez pas un nouvel ID de confirmation. Distinguez expiré, révoqué et déjà utilisé.
Périmètre
Aucune preuve d’identité, validation hors ligne ou billetterie permanente. Le parcours caméra→serveur n’est pas encore validé nativement : il s’agit d’un scénario de sortie, pas d’une démo disponible.
Utiliser une fois un avantage de courte durée chez un partenaireLe partenaire a besoin d’un état utilisé/non utilisé confirmé côté serveur, pas d’une image QR ou d’une animation.Voir le workflow
Entrée dynamique
label=coupon ; l’Avantage de votre app définit l’éligibilité et une durée courte avant toute émission autorisée.
Workflow métier
Émettez le pass après le contrôle d’éligibilité de votre app. Au comptoir, Check QR pass vérifie sans consommer. Après confirmation de la remise de l’avantage par le personnel, appelez Confirm QR redemption.
Résultat
Votre Avantage peut conserver receipt_id et l’heure confirmée après status=redeemed. Le plugin gère l’état du pass ; votre app gère l’avantage et la relation client.
Erreur et reprise
Si l’avantage est annulé avant utilisation, le même émetteur autorisé peut appeler Revoke QR pass avec pass_id. ok=yes seul ne prouve ni remboursement ni utilisation réussie.
Périmètre
Aucun paiement, règlement de caisse, calcul de remise ou rapprochement d’identité. Un pass reste limité à 24 heures : ce n’est pas une carte d’abonnement renouvelable.
Confirmer un retrait de commande ou de matériel dans la journéeLe workflow doit distinguer la lecture d’une référence de la remise réelle de l’objet.Voir le workflow
Entrée dynamique
Le Retrait de votre app conserve l’autorisation, l’objet prévu et deux IDs stables pour émission et utilisation ; le pass label=access est de courte durée.
Workflow métier
Après l’autorisation du Retrait par votre app, appelez Issue QR pass. Le personnel scanne, vérifie avec Check, consulte le Retrait correspondant, puis confirme la remise et appelle Confirm QR redemption.
Résultat
Votre workflow ne passe le Retrait à remis qu’après un reçu redeemed confirmé. Gardez receipt_id pour relier l’état métier au résultat du pass.
Erreur et reprise
Un nouveau scan peut retourner already_used : affichez le Retrait existant au lieu de remettre un autre objet. Réconciliez une confirmation incertaine avec le même ID et les mêmes paramètres.
Périmètre
Le QR est un droit porteur, sans preuve d’identité ni gestion complète de stock. La remise physique et la cohérence du Retrait restent sous la responsabilité de votre app.

Passes propres à l’app, à usage unique et valables au maximum 24 heures. Le parcours natif fiable scan → Check → confirmation explicite reste à valider.

Ce que vous pouvez créer

Xodera Video Player Native

Accès par chapitres dans une app de formationL’apprenant doit pouvoir revoir une étape précise sans passer par un lecteur externe.Voir le workflow
Entrée dynamique
source_url = URL vidéo du Cours courant ; poster_url = image de couverture ; chaque Chapitre de votre app possède sa position de début.
Workflow métier
Clic sur un Chapitre → si la source change, attendre source_loaded → Seek avec position_seconds → Play. Set playback rate aide à examiner un geste ; Enter fullscreen s’utilise à la demande.
Résultat
Lisez position_seconds, duration_seconds et is_fullscreen. Votre workflow enregistre la progression pour la source courante uniquement.
Erreur et reprise
Sur player_error, affichez error_code, conservez la progression et proposez Reload video. Une fin de lecture ne vaut pas validation d’un cours ou d’une évaluation de sécurité.
Périmètre
N’annoncez que les couples fichier/codec/OS réellement validés. Ce lecteur ne réalise ni montage vidéo ni protection DRM.
Démonstration vidéo sur une fiche de marketplaceUne image ne suffit pas toujours à expliquer un produit ; un lien externe interrompt le parcours d’achat.Voir le workflow
Entrée dynamique
source_url = URL de démonstration de l’Annonce sélectionnée ; poster_url = sa miniature ; muted = yes si le premier aperçu doit être silencieux.
Workflow métier
Ouvrez l’Annonce, liez sa vidéo, puis lancez Play après une action de l’utilisateur. Proposez Set muted pour le son et Enter fullscreen pour mieux voir. Liez is_active au détail visible.
Résultat
Utilisez has_source, is_buffering et status pour distinguer absence de vidéo, chargement et média prêt.
Erreur et reprise
Au changement de source, abandonnez l’ancienne progression et les anciennes pistes. Affichez la miniature si le fichier choisi n’est pas pris en charge.
Périmètre
Le plugin ne génère pas de vidéo, ne garantit pas l’autoplay et ne lit pas tous les formats. Portrait, paysage et plein écran restent à valider sur l’artefact publié.
Choisir les pistes de langue d’un flux compatibleUne app multilingue doit proposer les pistes réellement présentes dans la source sélectionnée.Voir le workflow
Entrée dynamique
source_url = URL du flux validé du Programme sélectionné ; la source doit elle-même contenir des pistes audio ou de sous-titres compatibles.
Workflow métier
Sur tracks_changed, lisez audio_tracks_json et subtitle_tracks_json de la source courante. Votre app crée les choix et appelle Select audio track ou Select subtitle track avec l’index courant.
Résultat
Utilisez selected_audio_index, selected_subtitle_index et source_generation pour rattacher le choix à cette source.
Erreur et reprise
Reconstruisez les choix après chaque changement de source. En l’absence d’une piste compatible, gardez la piste par défaut et indiquez cette limite.
Périmètre
Le lecteur ne traduit pas, ne génère pas de sous-titres et ne crée pas de pistes. Chaque combinaison flux/pistes/OS demande une preuve de lecture propre.

La lecture des fichiers, flux et pistes dépend du couple source/OS validé. Pas de montage, DRM ou lecture en arrière-plan.

DOCUMENT AI / BYOK

Connecter Document AI avec votre propre clé

Le fournisseur se configure dans le tableau de bord BestPlugins. Une association temporaire à Native Lab permet d’essayer le projet sans mettre la clé du fournisseur dans la démo. Utilisez des documents synthétiques et vérifiez chaque extraction.

Configurer mon app

bestplugins.online/dashboard/plugins

  1. Ouvrez Configurer mon app, connectez-vous, choisissez New app project, saisissez l’identifiant de votre app Bubble ou son lien d’éditeur, puis ouvrez le projet.

  2. Sélectionnez Document AI et Development. Choisissez un fournisseur et un modèle proposés, enregistrez votre propre clé, puis cliquez sur Use provider si ce choix apparaît. Les clés du fournisseur et la clé privée du plugin Document AI restent dans BestPlugins ou votre backend protégé.

  3. Si vous êtes éligible, choisissez Démarrer l’essai API. L’essai Document AI / QR API dure sept jours sans limite d’opérations et couvre le développement et la production. Les frais du fournisseur restent séparés ; cela n’active pas de version native payante.

  4. Sous Connect Native Lab, lisez le consentement de session temporaire et choisissez Create pairing code. Saisissez le code à usage unique dans Native Lab. Il expire après dix minutes sans limite distincte d’opérations ; l’accès payant n’a pas non plus de plafond d’opérations lié à l’abonnement. Ne le placez jamais dans une URL.

  5. L’association ne traite aucun document. Capturez ou sélectionnez un exemple synthétique, acceptez séparément son traitement par le fournisseur, puis choisissez Analyze. Pour une opération en attente, utilisez Check result sans la soumettre à répétition.

  6. Vérifiez les champs extraits et révoquez l’association dans BestPlugins à la fin. La consommation de passes QR par le personnel nécessite une autorisation backend distincte ; cette association Document AI ne l’accorde pas.

BETA / PRICING

Tarifs de la bêta publique

Par plugin et par projet d’app Bubble. Le développement et la production sont inclus pour ce projet. Votre fournisseur d’IA facture séparément son propre usage.

Essai de 7 jours avec carte, puis 1,50 USD / mois

Installation gratuite dans Bubble

Activez Audio Player, Video Player, Photo Editor, Audio Recorder ou Files Kit dans son projet du tableau de bord. Vérifiez l’essai avec carte et le tarif récurrent avant confirmation. Les autres plugins ne sont pas ouverts à l’achat ; les démos privées ont des limites distinctes.
STATUS / LIMITS

Ce que montre la bêta — ce qui reste à vérifier

  • Les commandes audio/vidéo, les états de retouche et d’export photo, ainsi que le décodage QR synthétique ont des preuves sur simulateur Android. Cela ne certifie pas tous les formats, fichiers exportés, appareils ou workflows.
  • Les améliorations gestuelles sont en cours de validation. Les appareils Android physiques, l’iPhone, la capture caméra, le routage audio et l’accessibilité nécessitent une validation distincte.
  • Les réglages vidéo changent uniquement la lecture. Aucun export de montage vidéo, enregistrement, contrôle de présence, comparaison de visages ou vérification d’identité n’est annoncé.
  • La capture documentaire et l’extraction IA facultative nécessitent des consentements séparés. L’extraction peut être erronée et exige toujours une révision humaine. Le parcours IA natif actuel reste en validation.
  • Le guide public est disponible. Un simulateur natif interactif anonyme attend une version publique vérifiée et un contrôle d’accès sans connexion.

Poursuivre votre projet

Ouvrir l’aperçu développeur

Aperçu développeur uniquement : Bubble exige une connexion avec un accès collaborateur à cette app. Le guide et les captures sont publics, sans compte. Le simulateur interactif anonyme attend une version publique vérifiée.