🏡 Self-paced family project · 6 missions
Family App Studio: Web to iPhone
Make an activity helper for an imaginary family: choose weather and time, explain matching cards and remember one browser-local favorite.
No installation, payment, child account, or AI key to begin in the browser. Later authored missions use guardian access. Full project extensions may need additional tools.
What you will make
An activity helper for an imaginary family
- Turn a family request into fields and explicit selection rules.
- Build and test a browser app with empty states and a saved favorite.
- Translate HTML events and controls into React Native components.
- Explain what was actually tested on browser, iOS, or Android.
Settle in together
Laptop or desktop for editing; phones can read and try the browser interaction. This is a browser rehearsal. Native iOS or Android work needs separate adult-prepared tools and actual device testing.
Allow about 5 minutes to get ready. Six missions in order. Try one or two 5–12 minute activities, take a break, and resume at the next activity. Plan several short sittings per mission; the full 75–90 minute lesson remains the detailed reference. End each sitting with a saved copy and one sentence: next time we will… Times are estimates awaiting family pilots.
- For ages 9–12, work beside a parent on a computer with a keyboard. A phone can read the guide and watch; use a computer for editing. Older learners may try the full lesson's stretch task after the core checks.
- Open the first mission's browser workspace and press Run before installing anything. No payment, child account, or AI key is needed for that introduction. If the runtime reports unavailable, keep your files, read its error, and use the course-specific fallback below with adult help.
- The initial browser starter lists all three activities regardless of weather/time. Mission 1 adds origami; mission 2 adds matching; mission 3 adds reasons; mission 4 adds browser-local memory. A Save favorite button initially means temporary memory only.
- Parent-guided same-version local handoff: keep the current workspace tab open and record one exact edited line/value from File index.html (such as your chosen heading or installed matchingActivities). Use Export backup, then the trusted parent-page Download index.html. Keep both downloads; JSON is a backup, not an executable app. Download /lab-starters/family-apps.zip, extract a fresh family-apps folder, and replace only its root index.html with the downloaded current source. Confirm its actual name is index.html, not index.html.txt, and open it as plain text to find the recorded edited line before claiming local evidence. No packages are needed. Open the replaced file in a separate LOCAL app tab and verify the known source edit and its expected behavior. Record/recreate fictional weather, minutes and chosen favorite locally: workspace appStorage does not automatically populate this tab's local app memory. Open DevTools Console for the LOCAL app tab, not the guardian page or opaque preview. If file-origin storage is blocked, a parent runs python3 -m http.server 8080 --bind 127.0.0.1 from that extracted folder and opens http://127.0.0.1:8080/index.html; re-enter the fixture because this is another origin. Keep the workspace/JSON backup if checks fail and mark them pending or failed. A pristine download is baseline evidence only; repeat transfer/verification after code edits. The optional mobile folder is a separate Expo project with its own README/tooling and this-visit memory.
- Full lesson replacements target named functions in index.html's script. Replace each whole function once, preserve render/event handlers and restore standard records before shared checks. The optional mobile folder is a separate Expo project: parent follows mobile/README.txt, npm install, npm run web and prepared npm run ios/android. Its favorite is this-visit React state, not browser localStorage.
- Keep the original starter unchanged as a reference. Export a working copy before a risky edit or reset. Work and the optional progress checklist stay on this device; an export is your portable backup. A checked box records your own report, not a verified assessment.
- Use invented names, notes and records. The parent handles accounts, optional AI and sharing. Predict together, let the child make one choice, change one thing, test it, then explain what happened. An assistant is optional; the supplied code and a partner work too.
Two people, different jobs
- Child · driver & designer
- Choose an activity record, predict the cards, run the filter and explain why a recommendation fits. Test empty results and memory too.
- Parent · thinking partner
- Read function replacements with the child, help protect a working copy and prepare optional native tools. Ask which record supports each claim.
A path you can pause
These are complete missions, not one-sitting deadlines. Each family guide breaks the work into small activities. Return to the last activity you chose to remember.
MISSION 1 · PUBLIC FIRST MISSION
A small problem deserves a small app
Turn “What can we do together?” into a screen with a clear input and an observable result.
Full mission plan: 75 minutes · split across activities
MISSION 2 · GUARDIAN ACCESS
Teach the app clear matching rules
Show only activities that fit the time and weather, then put shorter activities first.
Full mission plan: 75 minutes · split across activities
MISSION 3 · GUARDIAN ACCESS
Explain each recommendation
Make every suggested activity explain why it fits, and improve one confusing message.
Full mission plan: 75 minutes · split across activities
MISSION 4 · GUARDIAN ACCESS
Remember a favorite responsibly
Keep one favorite after reload and make it easy to clear on a shared device.
Full mission plan: 75 minutes · split across activities
MISSION 5 · GUARDIAN ACCESS
Translate the interaction to iPhone
Run a small React Native screen with the same activity rule in an adult-prepared Expo workspace.
Full mission plan: 75 minutes · split across activities
MISSION 6 · GUARDIAN ACCESS
Ship a tested family demo
Demonstrate a useful app and prove one improvement with evidence.
Full mission plan: 75 minutes · split across activities
Leave a trail for next time
The optional mission checklist remembers your place in this browser. Workspace files have their own save controls; export them for a portable backup. Write down one change, one test observation, and the activity you want to try next.
Download the original starter for the full local project ↓About this family pilot
Authored draft for educator review and pilot teaching. Starter files are original, self-contained classroom adaptations; classroom timing and age fit have not been learner-tested.
Complete course plan · extended setup, camp & project evidence
Begin in the browser workspace with no installation. The original tools and prerequisites below apply to the full downloaded project and its extensions. Native mobile tools and physical hardware are separate adult-prepared steps. Portfolio themes describe your project; no credential is automatically awarded.
Build an activity-choice helper, explain its rules, save a favorite, and translate the core interaction into an adult-prepared Expo iOS app.
Full course platforms: Browser · iOS with adult-prepared Expo tooling · Android extension with Expo · Ages 9-10, 11-13, 14-16
Your project
An activity helper for an imaginary family
- Turn a family request into fields and explicit selection rules.
- Build and test a browser app with empty states and a saved favorite.
- Translate HTML events and controls into React Native components.
- Explain what was actually tested on browser, iOS, or Android.
Before you begin
- Can edit and save a text file with adult support.
- Can open a local HTML file or a school-hosted copy in a browser.
- No previous AI account, backend service, or paid API is required.
Materials
- Computer with a browser and text editor.
- Download /lab-starters/family-apps/index.html.
- Lesson 5 uses the included mobile/ Expo project. An adult installs its pinned dependencies with npm ci and prepares Xcode/iOS Simulator on a Mac or a school-approved iPhone runtime. The included README.txt gives exact commands. Browser-only learners can complete a translation rehearsal while the facilitator demonstrates iOS.
Your tools
- Browser and text editor
- Build, inspect, and revise one small app.
- An adult downloads /lab-starters/family-apps/index.html, saves a working copy named index.html, and opens it in a browser. Reopen or reload after saving edits. If local-file storage is blocked, use an adult-hosted local server; the app itself needs no network.
- JR Playground or adult-operated approved assistant
- Ask for explanations or compare a suggested revision with observable behavior.
- Use only fictional lesson inputs. An adult operates the approved assistant. Every required build has supplied code and works without an AI service.
- Adult-prepared Expo workspace
- Run the same activity decision as a native iOS interaction in lesson 5.
- Use the included mobile/ directory and README.txt. The adult runs npm ci inside mobile/, then npm run ios on a Mac with Xcode/iOS Simulator. npm run web provides an Expo browser preview; npm run android requires an Android SDK/emulator or USB device. Native tooling is separate from index.html; account-free simulator operation is sufficient and store distribution is outside this lab.
Learn online
Six 75-minute sessions: 10 minutes predict/design, 40 minutes build, 15 minutes test with evidence, 10 minutes explain and save. One numbered lesson per session.
Plan around 75 minutes per session; pause and revisit at your own pace.
Adult support: Prepare files and tools, operate any AI service, support reading and debugging, and require the learner to explain and test each adopted change.
Build at camp
Five days with 180 planned minutes per day, including project work and group activities. The course outline does not reserve a camp place.
Day 1: Day 1 — Discover and build
- Run lesson 1, interview a partner using the fictional scenario, and sketch a clearer screen.
- Use the remaining lab time for pair programming, movement breaks, and saving a checkpoint.
Day 2: Day 2 — Make rules visible
- Complete lessons 2 and 3 in two 75-minute blocks.
- Use 30 minutes for a paper prediction game, break, and comparing actual results.
Day 3: Day 3 — Make it useful
- Complete lesson 4 and swap devices or roles for a usability test.
- Spend the remaining time on the lesson camp activity, improvement, and a screen-reader or keyboard check.
Day 4: Day 4 — Connect the pieces
- Complete lesson 5 with facilitator setup ready before the session.
- Run a challenge station, peer debugging, and capstone preparation.
Day 5: Day 5 — Test and demonstrate
- Complete lesson 6 and collect rubric evidence.
- Use the remaining time for rehearsal, a family-facing demo using fictional data, and individual reflection.
Facilitator preparation
- The three-hour day includes short movement breaks; do not require uninterrupted screen time.
- Use driver/navigator pairs and rotate every 15 minutes. Keep an individual prediction and explanation from each learner.
- Bring a known-working teacher copy and preserve a learner checkpoint before replacing functions. The second camp day contains two complete lesson blocks.
Show what you built
Deliver the browser activity helper with a truthful decision explanation and persistent favorite, plus the included mobile/ Expo project adapted and run on iOS. Record native platform execution separately; unavailable native tooling leaves that requirement explicitly pending.
- Useful decision
- Rain/20, sun/20, rain/5, and exact-duration cases match the documented rule.
- Understandable interface
- A partner completes a request and explains a card reason without coaching.
- Reliable browser memory
- Save/reload, clear/reload, and removed-record checks are recorded.
- Native translation
- App.js runs on an adult-prepared iOS simulator/device and matches the three stated input cases; platform and temporary-favorite limitation are recorded.
- Architect explanation
- Learner explains data, rule, UI, storage, and one evidence-backed revision.
Portfolio theme: Family App Architect
Use the rubric with a guardian or mentor and record your evidence in your builder notebook.
Build with care
- Use fictional people, tasks, places, and records. Do not import family repositories, private photos, health information, or real junior-player records.
- Store only classroom sample data. Demonstrate the clear-data control before using a shared computer.
- Any assistant is adult-operated through JR Playground or an approved classroom setup; keep provider credentials out of browser files.
- The source app includes food suggestions, but this adaptation makes activity choices. No lesson evaluates allergies, nutrition, or medical suitability.
Inspired by our projects
- Food Decider
- Preference quiz, rule-based matching, favorites, and persistent lists in an Expo web/iOS/Android codebase. This course uses non-food activity data and original classroom code.