Expert blueprint for mobile platforms (Android/iOS) covering touch controls, virtual joysticks, responsive UI, safe areas (notches), battery optimization, and app store guidelines. Use when targeting mobile releases or implementing touch input. Keywords mobile, Android, iOS, touch, InputEventScreenTouch, virtual joystick, safe area, battery, app store, orientation.
npx skills add https://github.com/thedivergentai/GD-Agentic-Skills --skill godot-platform-mobile
Touch-first input, safe area handling, and battery optimization define mobile development.
InputEventMouseButton on mobile is unreliable. Always use InputEventScreenTouch and InputEventScreenDrag for high-fidelity multi-touch support.DisplayServer.get_display_safe_area() and offset critical UI accordingly.size_changed signal leads to broken layouts on foldable devices or tablet orientation shifts.NOTIFICATION_APPLICATION_PAUSED to drop Engine.max_fps to 1.OS.request_permission() and verify with OS.get_granted_permissions().VIBRATE permission is enabled in the export preset.> MANDATORY: Pick the golden-path branch, then load only the matching scripts.
mobile_gesture_recognizer.gd (+ input skill for action maps). Built-in virtual joystick when sufficient.adaptive_safe_area_inset.gd + orientation_layout_adaptor.gd.thermal_throttle_monitor.gd (pause FPS + heat).android_runtime_permissions.gd, native_share_invoker.gd, mobile_iap_flow_boilerplate.gd as needed.mobile_vram_optimizer.gd.Expert multi-touch logic for pinch-to-zoom and two-finger rotation.
Dynamic safe-area (notch) handling using DisplayServer insets.
Battery and heat management via NOTIFICATION_APPLICATION_PAUSED.
Unified boilerplate for Android/iOS In-App Purchases (IAP).
Advanced vibration patterns for mobile haptic feedback.
Expert Android permission requesting and verification logic.
Stable motion controls using Accelerometer and Gravity fusion.
Adaptive UI swapping for Landscape/Portrait transitions.
VRAM monitoring and texture compression enforcement rules.
OS-level native share sheet integration for social features.
Additional patterns / legacy safe-area helper — load only if golden-path scripts insufficient.
| Axis | Choose | Implies |
|------|--------|---------|
| Control scheme | Tap/gesture vs virtual stick vs tilt | Gestures → mobile_gesture_recognizer.gd; stick → built-in joystick / Control stick; tilt → mobile_sensor_fusion.gd |
| Orientation | Locked landscape / portrait / adaptive | Adaptive → MANDATORY orientation_layout_adaptor.gd + size_changed |
| Renderer | Mobile vs Compatibility | Never Forward+ on phone GPUs; ETC2/ASTC on; precompile shaders on load screens |
Touch input uses InputEventScreenTouch / InputEventScreenDrag — not mouse emulation.
[rendering]
renderer/rendering_method="mobile"
textures/vram_compression/import_etc2_astc=true
[display]
window/handheld/orientation="landscape"
WorkerThreadPool for disk I/O.NOTIFICATION_APPLICATION_PAUSED must drop Engine.max_fps (see thermal_throttle_monitor.gd).OS.get_granted_permissions() via android_runtime_permissions.gd.quit_on_go_back, handle NOTIFICATION_WM_GO_BACK_REQUEST in mobile_navigation_manager.gd.VIBRATE permission.godot-shaders-basics for deep precompile recipes.> Progressive disclosure: open Official Documentation links only when researching a specific API;
> load Related Skills when routing work to a peer domain — do not preload the whole lattice.
InputEventScreenTouch / InputEventScreenDrag the correct mobile path instead of mouse-button emulation.NOTIFICATION_APPLICATION_PAUSED / resume and Android back (WM_GO_BACK_REQUEST) lifecycle that replaces desktop quit assumptions.get_display_safe_area(), orientation, and virtual keyboard APIs for notches, foldables, and OSK occlusion.request_permission() / get_granted_permissions(), feature tags, and memory queries used by Android runtime gates and VRAM watchdogs.vibrate_handheld(), accelerometer/gravity/gyroscope fusion, and touch↔mouse emulation toggles.VIBRATE), APK/AAB, and store packaging constraints after platform code is ready.mobile / android / ios branching for permissions, share sheets, and platform-only singletons.APPLICATION_PAUSED so background audio does not keep the device warm.A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
Extracts and analyzes competitors' ads from ad libraries (Facebook, LinkedIn, etc.) to understand what messaging, problems, and creative approaches are working. Helps inspire and improve your own ad campaigns.
Identifies high-quality leads for your product or service by analyzing your business, searching for target companies, and providing actionable contact strategies. Perfect for sales, business development, and marketing professionals.
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store
NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.
Materials science toolkit. Crystal structures (CIF, POSCAR), phase diagrams, band structure, DOS, Materials Project integration, format conversion, for computational materials science.
Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.
Take thedivergentai/godot-platform-mobile from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.