Бесплатно HTML в APK
← Все шаблоны
🍅
Продуктивность

Шаблон приложения «Помодоро»

Таймер фокусировки с перерывами, кольцевым индикатором и оповещениями.

ПродуктивностьРаботает офлайн4 функции телефона

✏️ Редактировать и собрать онлайн Открыть на весь экран

Это шаблон в работе. Функции телефона, такие как камера, вибрация и уведомления, работают в приложении, которое вы соберёте.

Функции телефона, которые использует этот шаблон

Они работают через JavaScript-мост FreeApp, который есть в каждом приложении, собранном в Free HTML to APK. В обычном браузере шаблон тоже работает, просто эти вызовы ничего не делают.

Экран не гаснет

FreeApp.keepAwake()

Не выключать экран.

Уведомления

FreeApp.notify()

Мгновенное локальное уведомление (на Android 13+ запрашивает разрешение).

Запрос разрешений

FreeApp.requestPermission()

Вибрация

FreeApp.vibrate()

Одиночная вибрация (по умолчанию 50 мс) или шаблон [пауза, вибрация, пауза, вибрация…].

Как шаблон их вызывает

async function startFocus() {
  if (window.FreeApp) { await FreeApp.requestPermission('notifications'); FreeApp.keepAwake(true); }
}
function onFinish() {
  if (window.FreeApp) { FreeApp.notify('Time for a break', '25 minutes done'); FreeApp.vibrate([0, 300, 150, 300]); }
}

Сделайте его своим с помощью ИИ

Скопируйте этот промпт в ChatGPT, Gemini или Claude, замените идею на свою и вставьте ответ обратно в редактор. Он уже объясняет ИИ оболочку приложения и функции телефона.

Показать промпт для ИИ
Build a single-file mobile web app (index.html with inline CSS/JS) for Android WebView.

The app: Pomodoro — a pomodoro focus timer with breaks, a progress ring and alerts. Focus timer with breaks, ring progress and alerts.

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.keepAwake(on: boolean): void — keep the screen on
- FreeApp.notify(title: string, body?: string): void — instant local notification (asks permission on Android 13+)
- FreeApp.requestPermission(name: 'camera' | 'microphone' | 'location' | 'notifications'): Promise<boolean>
- FreeApp.vibrate(ms?: number | number[]): void — one-shot buzz (default 50 ms) or an [off, on, off, on…] pattern

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-приложение

  1. Нажмите Редактировать и собрать онлайн. Шаблон откроется в онлайн-редакторе.
  2. Измените текст, цвета и код, затем выберите название приложения, иконку и имя пакета.
  3. Соберите. Вы получите подписанный APK для установки и AAB для Google Play — бесплатно, без аккаунта и без водяного знака.

✏️ Редактировать и собрать онлайн СКАЧАЙТЕ БЕСПЛАТНО ВGoogle Play