badger-app-creator

Create MicroPython apps for Universe 2025 Badge with MonaOS integration.

8|1|Updated Oct 30, 2025
One-click install
npx skills add https://github.com/johnlindquist/badger-2350-plugin --skill badger-app-creator
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: badger-app-creator
Source: https://github.com/johnlindquist/badger-2350-plugin/tree/main/badger-2350-dev/skills/badger-app-creator
Command: npx skills add https://github.com/johnlindquist/badger-2350-plugin --skill badger-app-creator

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires urequests.

What problem does it solves? Developing interactive applications for embedded devices requires a deep understanding of display APIs, input handling, and state management within resource constraints. This skill provides a comprehensive guide to building robust MonaOS apps, covering graphics, buttons, and best practices for the Badger 2350.

Core Features & Use Cases

  • Display Graphics: Master badgeware API for drawing shapes, text, images, and animations on the 160x120 display.
  • Button Handling: Implement responsive user interfaces using io.pressed, io.held, and io.released states for all badge buttons.
  • State Management & Persistence: Learn to manage app states, save data to persistent storage, and integrate WiFi for dynamic content.
  • Use Case: Create a custom game with animated sprites, a dynamic weather display fetching data over WiFi, or an interactive menu system that saves user preferences.

Quick Start

To create a basic counter app, define counter = 0 globally, then in update(), draw screen.text(f"Count: {counter}", 10, 30) and increment counter if io.BUTTON_A in io.pressed.

Frequently Asked Questions about badger-app-creator

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build interactive apps for the Badger 2350 badge?

Build Badger 2350 apps by creating MicroPython applications with MonaOS integration. Structure your app with icon.png, __init__.py, and optional assets in /system/apps/, define a mandatory update() function called each frame, and use the badgeware API to render graphics and handle button input via io.pressed, io.held, and io.released states.

What's the best way to handle button input and state management in badge apps?

Implement button handling using io.pressed, io.held, and io.released to detect user interactions. Manage app state by maintaining global variables and persisting data to storage; use the update() loop to check button states each frame and respond accordingly, enabling responsive interfaces and preference saving.

How do I draw graphics and animations on a 160x120 display?

Master the badgeware API to draw shapes, text, images, and animations on the 160x120 display. Call rendering functions within your update() loop to refresh the display each frame, enabling custom games, dynamic weather displays, and interactive menu systems.

Can I fetch data over WiFi in a Badger 2350 app?

Yes, integrate WiFi for dynamic content by using urequests to fetch data within your MonaOS app. Combine network requests with state management and persistent storage to build applications like weather displays that update with live data.

What MonaOS hooks and structure do I need for a functioning badge app?

A functional MonaOS app requires a mandatory update() function called every frame, optional init() and on_exit() hooks for setup and cleanup, and adherence to the MonaOS template directory layout. This structure ensures your app integrates properly with the badge ecosystem.

Do I need prior MicroPython experience to build badge apps?

While familiarity with MicroPython helps, the badgeware API and MonaOS structure guide app development. Understanding display APIs, input handling, and state management within resource constraints is essential for building robust badge applications.