Шаблон приложения «Сжатие фото»
Выберите фото, нативно уменьшите его ползунками размера и качества, затем сохраните или поделитесь.
Это шаблон в работе. Функции телефона, такие как камера, вибрация и уведомления, работают в приложении, которое вы соберёте.
Функции телефона, которые использует этот шаблон
Они работают через JavaScript-мост FreeApp, который есть в каждом приложении, собранном в Free HTML to APK. В обычном браузере шаблон тоже работает, просто эти вызовы ничего не делают.
Встроенный, быстро работает на слабых телефонах.
Сохраняет изображение в «Фото».
Отправить настоящий файл.
Короткое встроенное всплывающее сообщение.
Как шаблон их вызывает
const f = await FreeApp.pickFile({ accept: ['image/*'] });
const small = await FreeApp.compressImage(f.dataUrl, { maxSize: 1280, quality: 80 });
console.log(f.size, '->', small.bytes);
Сделайте его своим с помощью ИИ
Скопируйте этот промпт в ChatGPT, Gemini или Claude, замените идею на свою и вставьте ответ обратно в редактор. Он уже объясняет ИИ оболочку приложения и функции телефона.
Показать промпт для ИИ
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]Превратите его в Android-приложение
- Нажмите Редактировать и собрать онлайн. Шаблон откроется в онлайн-редакторе.
- Измените текст, цвета и код, затем выберите название приложения, иконку и имя пакета.
- Соберите. Вы получите подписанный APK для установки и AAB для Google Play — бесплатно, без аккаунта и без водяного знака.
✏️ Редактировать и собрать онлайн СКАЧАЙТЕ БЕСПЛАТНО ВGoogle Play
Другие шаблоны в категории «Медиа»
Текст в речь
Читайте любой текст вслух с выбором языка, скорости и тона.
Голосовые заметки
Диктуйте заметки с помощью распознавания речи и сохраняйте их.
Камера
Живой просмотр с камеры, фильтры, снимки и сохранение на устройство.
Диктофон
Запись звука с индикатором уровня, воспроизведением и сохранением.
Генератор QR
Создавайте QR-коды офлайн для текста, ссылок и Wi-Fi; сохраняйте в PNG.
Блокнот для рисования
Рисование пальцем с цветами, размерами кисти, отменой и сохранением в PNG.