JR FAMILY ACTIVITY HELPER — NATIVE TRANSLATION

This is a complete Expo project for lesson family-05. App.js matches the lesson's
reference screen. It is separate from the browser index.html in the parent folder.
All examples use invented activities. No backend, keys, or real family data are needed.

ADULT SETUP BEFORE THE LESSON
1. Install a current supported Node.js LTS toolchain (Node 22.13+ or a newer LTS),
   including npm. On a Mac for iOS, install Xcode with its iOS Simulator runtime,
   open Xcode once to finish setup, and install its command-line tools.
2. Extract the full course ZIP. In a terminal, change into this mobile directory:
     cd /path/to/extracted/family-apps/mobile
   Replace the example path with your actual extracted folder.
3. Install the pinned package versions:
     npm ci
   Dependency installation needs internet access. The supplied package-lock.json
   records the versions verified for this starter. No cloud build is required.
4. For iOS, on the prepared Mac:
     npm run ios
   Expo creates the native ios project locally and compiles it. Select/open the
   simulator if prompted. A local iOS simulator is enough; App Store publication,
   a paid developer subscription, and a child's consumer account are not required.
5. Confirm Rain + 20 shows Fold a paper star and Draw a comic before class starts.

ALTERNATE SURFACES
  npm run web
Starts an Expo browser preview. Use it to rehearse the React Native translation if
native tools are unavailable, but label the result browser-tested, iOS pending.
  npm run android
Requires an adult-prepared Android SDK, Java toolchain, and running emulator or
approved USB device. Treat Android behavior as a separate platform test.
  npm start
Starts Metro. A school-approved compatible Expo Go/device workflow may be used if
already prepared by the adult; SDK compatibility and local networking must be checked.
A generated QR code alone does not prove an app ran on a phone.

BUNDLE CHECKS (DO NOT PROVE NATIVE DEVICE EXECUTION)
  npm run export:web
  npm run export:ios
These produce build artifacts in dist/. An iOS JavaScript bundle is a build check,
not an Xcode compile, device launch, touch test, or store release.

LEARNER TASK
Open App.js, change the heading, and observe the runtime update. Compare the decision
rule to your browser matchingActivities function. Record Rain/20, Sun/20, and Rain/5
on the actual surface you use. Native favorites say "this visit" and intentionally
reset on a full reload; they do not use browser localStorage.

IF SETUP FAILS
The adult checks Node, package installation, native tools, and simulator state.
Keep the functioning browser project and complete the translation comparison;
record native execution as pending and return to it when tooling is ready.
Do not paste credentials into App.js or replace pinned dependencies without adult review.

INSTRUCTOR TOOLING REVIEW (2026-10-01)
This starter shares Pocket Arcade's Expo toolchain. Its dependency tree includes
the high-severity node-forge signature-verification advisory GHSA-86w9-cpqp-85rv
and moderate uuid buffer advisory GHSA-w5hq-g745-h8pq. No compatible node-forge
patch was available at verification. These are transitive development/signing
dependencies; passing a bundle export does not validate native signing. Review
current advisories before classroom or distribution builds. Do not apply
npm audit fix --force blindly: its proposed Expo downgrade is incompatible.
Use the verified web export for rehearsal; native/signing approval is pending.
