Modèle d'application Compresseur de photos
Choisissez une photo, réduisez-la nativement avec des curseurs de taille et de qualité, puis enregistrez-la ou partagez-la.
Voici le modèle en direct. Les fonctions du téléphone comme l’appareil photo, la vibration et les notifications fonctionnent dans l’application que vous compilez.
Fonctions du téléphone utilisées par ce modèle
Elles proviennent du pont JavaScript FreeApp inclus dans chaque application créée avec Free HTML to APK. Dans un navigateur normal, le modèle fonctionne quand même et les appels ne font simplement rien.
Natif, rapide sur les téléphones d'entrée de gamme.
Enregistre une image dans Photos.
Partager un vrai fichier.
Court toast natif.
Comment le modèle les appelle
const f = await FreeApp.pickFile({ accept: ['image/*'] });
const small = await FreeApp.compressImage(f.dataUrl, { maxSize: 1280, quality: 80 });
console.log(f.size, '->', small.bytes);
Personnalisez-le avec l'IA
Copiez ce prompt dans ChatGPT, Gemini ou Claude, remplacez l'idée par la vôtre, puis collez la réponse dans l'éditeur. Il explique déjà à l'IA la structure de l'application et les fonctions du téléphone.
Afficher le prompt IA
Build a single-file mobile web app (index.html with inline CSS/JS) for Android WebView.
The app: Photo Compressor — a photo compressor that shows the before/after size and saves the smaller image. Pick a photo, shrink it natively with size and quality sliders, then save or share it.
Requirements:
- Mobile-first, touch-friendly UI (min 44px tap targets), works in portrait, supports light and dark mode.
- Use <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> and pad for env(safe-area-inset-*).
- Must work fully offline: no CDN or external scripts, fonts or images; persist data in localStorage.
The page runs inside an Android app that injects a native bridge as window.FreeApp. Available APIs:
- FreeApp.pickFile(opts?: {accept?: string[], multiple?: boolean}): Promise<{name, mime, size, dataUrl}>
- FreeApp.compressImage(dataUrl: string, opts?: {maxSize?: number, quality?: number}): Promise<{dataUrl, width, height, bytes}> — native, fast on low-end phones
- FreeApp.saveToGallery(dataUrl: string, fileName?: string): Promise<{uri}> — saves an image to Photos
- FreeApp.shareFile(fileName: string, mimeType: string, base64OrDataUrl?: string): boolean — share a real file (omit the data to share an app file by name)
- FreeApp.toast(message: string): void — short native toast
Rules for the bridge:
- Always guard calls with `window.FreeApp &&` (or `if (window.FreeApp) { … }`) and provide a browser fallback so the page also works in a normal browser.
- The bridge may be injected after your script runs: do native setup inside `window.addEventListener('freeappready', …)` and also run it immediately if window.FreeApp already exists.
- Do not use alert/confirm for normal feedback; prefer FreeApp.toast when available.
Return the complete index.html in one code block.
My idea: [DESCRIBE YOUR APP IDEA HERE]Transformez-le en application Android
- Touchez Modifier et compiler en ligne. Le modèle s'ouvre dans l'éditeur en ligne.
- Modifiez le texte, les couleurs et le code, puis choisissez un nom d'application, une icône et un nom du package.
- Compilez. Vous obtenez gratuitement un APK signé à installer et un AAB pour Google Play, sans compte et sans filigrane.
✏️ Modifier et compiler en ligne DISPONIBLE GRATUITEMENT SURGoogle Play
Autres modèles de la catégorie Médias
Synthèse vocale
Lisez n'importe quel texte à voix haute avec choix de la langue, du débit et de la hauteur.
Notes vocales
Dictez des notes avec la reconnaissance vocale et enregistrez-les.
Appareil photo
Aperçu caméra en direct, filtres, instantanés et enregistrement sur l'appareil.
Enregistreur vocal
Enregistrez de l'audio avec indicateur de niveau, lecture et sauvegarde.
Générateur de QR code
Créez hors ligne des QR codes pour du texte, des liens et le Wi-Fi ; enregistrez en PNG.
Tableau de dessin
Peinture au doigt avec couleurs, tailles de pinceau, annulation et enregistrement PNG.