[{"data":1,"prerenderedAt":239},["ShallowReactive",2],{"i-ph:moon-bold":3,"i-ph:globe-simple":8,"i-ph:caret-down":10,"i-ph:list":12,"i-ph:heart-fill":14,"i-ph:discord-logo-bold":16,"i-ph:github-logo-bold":18,"i-ph:cookie-bold":20,"feature-article-en-tools-mobile":22,"i-ph:arrow-left":233,"i-ph:device-mobile-bold":235,"i-ph:monitor-bold":237},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,256,false,"\u003Cpath fill=\"currentColor\" d=\"M236.37 139.4a12 12 0 0 0-12-3A84.07 84.07 0 0 1 119.6 31.59a12 12 0 0 0-15-15a108.86 108.86 0 0 0-54.91 38.48A108 108 0 0 0 136 228a107.1 107.1 0 0 0 64.93-21.69a108.86 108.86 0 0 0 38.44-54.94a12 12 0 0 0-3-11.97m-49.88 47.74A84 84 0 0 1 68.86 69.51a84.9 84.9 0 0 1 23.41-21.22Q92 52.13 92 56a108.12 108.12 0 0 0 108 108q3.87 0 7.71-.27a84.8 84.8 0 0 1-21.22 23.41\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"currentColor\" d=\"M128 24a104 104 0 1 0 104 104A104.12 104.12 0 0 0 128 24m87.62 96h-39.83c-1.79-36.51-15.85-62.33-27.38-77.6a88.19 88.19 0 0 1 67.22 77.6ZM96.23 136h63.54c-2.31 41.61-22.23 67.11-31.77 77c-9.55-9.9-29.46-35.4-31.77-77m0-16c2.31-41.61 22.23-67.11 31.77-77c9.55 9.93 29.46 35.43 31.77 77Zm11.36-77.6C96.06 57.67 82 83.49 80.21 120H40.37a88.19 88.19 0 0 1 67.22-77.6M40.37 136h39.84c1.82 36.51 15.85 62.33 27.38 77.6A88.19 88.19 0 0 1 40.37 136m108 77.6c11.53-15.27 25.56-41.09 27.38-77.6h39.84a88.19 88.19 0 0 1-67.18 77.6Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"currentColor\" d=\"m213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80a8 8 0 0 1 11.32-11.32L128 164.69l74.34-74.35a8 8 0 0 1 11.32 11.32\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"currentColor\" d=\"M224 128a8 8 0 0 1-8 8H40a8 8 0 0 1 0-16h176a8 8 0 0 1 8 8M40 72h176a8 8 0 0 0 0-16H40a8 8 0 0 0 0 16m176 112H40a8 8 0 0 0 0 16h176a8 8 0 0 0 0-16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cpath fill=\"currentColor\" d=\"M240 102c0 70-103.79 126.66-108.21 129a8 8 0 0 1-7.58 0C119.79 228.66 16 172 16 102a62.07 62.07 0 0 1 62-62c20.65 0 38.73 8.88 50 23.89C139.27 48.88 157.35 40 178 40a62.07 62.07 0 0 1 62 62\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M108 136a16 16 0 1 1-16-16a16 16 0 0 1 16 16m56-16a16 16 0 1 0 16 16a16 16 0 0 0-16-16m76.07 76.56l-67 29.71A20.15 20.15 0 0 1 146 214.9l-8.54-23.13c-3.13.14-6.27.24-9.45.24s-6.32-.1-9.45-.24L110 214.9a20.19 20.19 0 0 1-27.08 11.37l-67-29.71a19.93 19.93 0 0 1-11.3-23.15L34.15 57a20 20 0 0 1 16.22-14.81l36.06-5.93a20.26 20.26 0 0 1 22.79 14.84l4.41 17.41c4.74-.33 9.52-.51 14.37-.51s9.63.18 14.37.51l4.41-17.41a20.25 20.25 0 0 1 22.79-14.84l36.06 5.93A20 20 0 0 1 221.85 57l29.53 116.38a19.93 19.93 0 0 1-11.31 23.18M227.28 176L199.23 65.46l-30.07-4.94l-2.84 11.17c2.9.58 5.78 1.2 8.61 1.92a12 12 0 1 1-5.86 23.27A168.4 168.4 0 0 0 128 92a168.4 168.4 0 0 0-41.07 4.88a12 12 0 0 1-5.86-23.27c2.83-.72 5.71-1.34 8.61-1.92l-2.83-11.17l-30.08 4.94L28.72 176l60.22 26.7l5-13.57c-4.37-.76-8.67-1.65-12.88-2.71a12 12 0 0 1 5.86-23.28A168.4 168.4 0 0 0 128 168a168.4 168.4 0 0 0 41.07-4.88a12 12 0 0 1 5.86 23.28c-4.21 1.06-8.51 1.95-12.88 2.71l5 13.57Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"currentColor\" d=\"M212.62 75.17A63.7 63.7 0 0 0 206.39 26A12 12 0 0 0 196 20a63.71 63.71 0 0 0-50 24h-20a63.71 63.71 0 0 0-50-24a12 12 0 0 0-10.39 6a63.7 63.7 0 0 0-6.23 49.17A61.5 61.5 0 0 0 52 104v8a60.1 60.1 0 0 0 45.76 58.28A43.66 43.66 0 0 0 92 192v4H76a20 20 0 0 1-20-20a44.05 44.05 0 0 0-44-44a12 12 0 0 0 0 24a20 20 0 0 1 20 20a44.05 44.05 0 0 0 44 44h16v12a12 12 0 0 0 24 0v-40a20 20 0 0 1 40 0v40a12 12 0 0 0 24 0v-40a43.66 43.66 0 0 0-5.76-21.72A60.1 60.1 0 0 0 220 112v-8a61.5 61.5 0 0 0-7.38-28.83M196 112a36 36 0 0 1-36 36h-48a36 36 0 0 1-36-36v-8a37.87 37.87 0 0 1 6.13-20.12a11.65 11.65 0 0 0 1.58-11.49a39.9 39.9 0 0 1-.4-27.72a39.87 39.87 0 0 1 26.41 17.8a12 12 0 0 0 10.1 5.53h32.35a12 12 0 0 0 10.11-5.53a39.84 39.84 0 0 1 26.41-17.8a39.9 39.9 0 0 1-.4 27.72a12 12 0 0 0 1.61 11.53A37.85 37.85 0 0 1 196 104Z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cpath fill=\"currentColor\" d=\"M167.31 160.69a16 16 0 1 1-22.62 0a16 16 0 0 1 22.62 0m-86.62-8a16 16 0 1 0 22.62 0a16 16 0 0 0-22.62 0m14.62-33.38a16 16 0 1 0-22.62 0a16 16 0 0 0 22.62 0m48-6.62a16 16 0 1 0 0 22.62a16 16 0 0 0 0-22.62M236 128A108 108 0 1 1 128 20a12 12 0 0 1 12 12a36 36 0 0 0 36 36a12 12 0 0 1 12 12a36 36 0 0 0 36 36a12 12 0 0 1 12 12m-24.67 10.65A60.17 60.17 0 0 1 165 91a60.17 60.17 0 0 1-47.66-46.32a84 84 0 1 0 94 94Z\"\u002F>",{"id":23,"title":24,"body":25,"category":220,"date":221,"description":222,"extension":223,"featureKey":224,"meta":225,"navigation":226,"path":227,"platform":228,"readingTime":229,"seo":230,"stem":231,"__hash__":232},"features_en\u002Ffeatures\u002Ftools\u002Fmobile.md","Built-in Tools on Android",{"type":26,"value":27,"toc":210},"minimark",[28,45,48,64,69,103,107,139,143,164,168,182,186],[29,30,31,32,36,37,40,41,44],"p",{},"PlainApp bundles a handful of single-purpose utilities alongside its bigger features: a ",[33,34,35],"strong",{},"Pomodoro Timer"," for focus sessions, a ",[33,38,39],{},"Sound Meter"," for ambient noise readings, and a ",[33,42,43],{},"Scanner"," for QR codes and barcodes with a persistent history. There's no dedicated \"Tools hub\" screen — Pomodoro and Sound Meter are cards on the Home grid, and the Scanner opens from other entry points (like scanning a pairing code). Each runs entirely on-device: no web round-trip, no account, no cloud dependency.",[29,46,47],{},"They share the same Material 3 scaffolding as the rest of the app, so the navigation and settings patterns are familiar from day one.",[49,50,51,58],"screenshot-row",{},[29,52,53],{},[54,55],"img",{"alt":56,"src":57},"Screenshot: Pomodoro Timer","\u002Ffeatures\u002Ftools\u002Fm\u002Fpomodoro-timer.webp?w=240",[29,59,60],{},[54,61],{"alt":62,"src":63},"Screenshot: Sound Meter","\u002Ffeatures\u002Ftools\u002Fm\u002Fsound-meter.webp?w=240",[65,66,68],"h2",{"id":67},"key-capabilities","Key capabilities",[70,71,72,79,85,91,97],"ul",{},[73,74,75,78],"li",{},[33,76,77],{},"Pomodoro Timer with configurable cycles"," — set work duration, short break, long break, and how many pomodoros run before a long break. A round counter shows progress through the current cycle, and a today-completed strip renders one tomato per finished session.",[73,80,81,84],{},[33,82,83],{},"Pomodoro notifications and completion sound"," — toggle a notification on phase changes and an optional sound on completion. The sound can be a custom audio file picked from your storage.",[73,86,87,90],{},[33,88,89],{},"Sound Meter with live stats"," — the current decibel reading is shown large in the center, with running min, avg, and max values alongside. A reference dialog lists what each decibel range corresponds to in everyday terms.",[73,92,93,96],{},[33,94,95],{},"Scanner with camera and image decode"," — the camera view fills the screen with an animated scan line and corner guides. A gallery button lets you decode a QR code from a saved image instead of the live camera.",[73,98,99,102],{},[33,100,101],{},"Scan history"," — every successful scan is appended to a local history list, deduplicated and newest-first. Open the history from the scanner's top app bar; swipe or tap to delete individual entries.",[65,104,106],{"id":105},"walkthrough","Walkthrough",[108,109,110,116,127,133],"ol",{},[73,111,112,115],{},[33,113,114],{},"Start a Pomodoro session"," — open the Pomodoro Timer card from the Home screen and tap Start. The current phase (work, short break, long break) and round counter update as the session progresses; a tomato is added to the today-completed strip when a work interval finishes.",[73,117,118,121,122,126],{},[33,119,120],{},"Take a Sound Meter reading"," — open the Sound Meter card. The first time, grant the ",[123,124,125],"code",{},"RECORD_AUDIO"," permission when prompted. Tap Start to begin readings; the large number, min\u002Favg\u002Fmax row, and a textual description of the current decibel range update live.",[73,128,129,132],{},[33,130,131],{},"Scan a QR code"," — open the Scanner and point the camera at a code. The scan line animates across the framed area; on detection the result appears in a bottom sheet and is saved to history.",[73,134,135,138],{},[33,136,137],{},"View scan history"," — tap the history icon in the scanner's top app bar to open the history page. Each entry is selectable; delete one by tapping its delete action.",[65,140,142],{"id":141},"tips-tricks","Tips & tricks",[70,144,145,148,151,154,157],{},[73,146,147],{},"Open the Pomodoro settings dialog from the top app bar to tune durations and pick a custom completion sound. Settings persist across sessions.",[73,149,150],{},"In the Sound Meter, tap the info icon to open the decibel reference dialog — a selectable list of ranges from a whisper to a rock concert, useful for context when reading the numbers.",[73,152,153],{},"The Scanner recognizes PlainApp pairing QR codes automatically and routes them to the pairing flow instead of the generic result sheet.",[73,155,156],{},"In the Sound Meter, Reset clears the running min\u002Favg\u002Fmax back to zero without stopping the session, so you can re-baseline a measurement mid-run.",[73,158,159,160,163],{},"Bookmarks are managed entirely from the ",[33,161,162],{},"web dashboard"," — the phone stores and syncs them, but there's no bookmarks screen on Android yet.",[65,165,167],{"id":166},"privacy-security-notes","Privacy & security notes",[70,169,170,176,179],{},[73,171,172,173,175],{},"The Sound Meter uses the ",[123,174,125],{}," permission. Audio is processed in memory to compute a decibel value; no audio is recorded, stored, or transmitted.",[73,177,178],{},"Scan history is stored locally in app preferences. It never leaves the device unless you explicitly copy a result out of a history entry.",[73,180,181],{},"Both tools work fully offline. Neither requires a network connection or an account.",[65,183,185],{"id":184},"related-features","Related features",[70,187,188,196,203],{},[73,189,190,195],{},[191,192,194],"a",{"href":193},"\u002Ffeatures\u002Ftools\u002Fweb","Built-in Tools in the Web Dashboard"," — the Pomodoro Timer again, plus the Bookmarks Manager that's exclusive to the web dashboard.",[73,197,198,202],{},[191,199,201],{"href":200},"\u002Ffeatures\u002Fnotes\u002Fmobile","Markdown Notes on Android"," — capture longer-form notes alongside a scan result.",[73,204,205,209],{},[191,206,208],{"href":207},"\u002Ffeatures\u002Ffiles\u002Fmobile","File Management on Android"," — the on-phone file browser for navigating storage volumes.",{"title":211,"searchDepth":212,"depth":212,"links":213},"",3,[214,216,217,218,219],{"id":67,"depth":215,"text":68},2,{"id":105,"depth":215,"text":106},{"id":141,"depth":215,"text":142},{"id":166,"depth":215,"text":167},{"id":184,"depth":215,"text":185},"Tools","2025-08-01","A focused set of on-device utilities — a Pomodoro timer with customizable cycles, a real-time sound meter, and a QR\u002Fbarcode scanner with history. No accounts, no cloud.","md","tools",{},true,"\u002Ffeatures\u002Ftools\u002Fmobile","mobile","5 min read",{"title":24,"description":222},"features\u002Ftools\u002Fmobile","JAPfBAdPbpebdKNK-4ftKaLV0RNLdaQ_XXmTnKTwC-g",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":234},"\u003Cpath fill=\"currentColor\" d=\"M224 128a8 8 0 0 1-8 8H59.31l58.35 58.34a8 8 0 0 1-11.32 11.32l-72-72a8 8 0 0 1 0-11.32l72-72a8 8 0 0 1 11.32 11.32L59.31 120H216a8 8 0 0 1 8 8\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":236},"\u003Cpath fill=\"currentColor\" d=\"M176 12H80a28 28 0 0 0-28 28v176a28 28 0 0 0 28 28h96a28 28 0 0 0 28-28V40a28 28 0 0 0-28-28M76 76h104v104H76Zm4-40h96a4 4 0 0 1 4 4v12H76V40a4 4 0 0 1 4-4m96 184H80a4 4 0 0 1-4-4v-12h104v12a4 4 0 0 1-4 4\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":238},"\u003Cpath fill=\"currentColor\" d=\"M208 36H48a28 28 0 0 0-28 28v112a28 28 0 0 0 28 28h160a28 28 0 0 0 28-28V64a28 28 0 0 0-28-28m4 140a4 4 0 0 1-4 4H48a4 4 0 0 1-4-4V64a4 4 0 0 1 4-4h160a4 4 0 0 1 4 4Zm-40 52a12 12 0 0 1-12 12H96a12 12 0 0 1 0-24h64a12 12 0 0 1 12 12\"\u002F>",1788009009542]