# Running on devices

> Try the native components on a real iPhone or Android phone with Expo Go, from Windows, macOS or Linux, and test them with Maestro.

GramproKit for React Native · Get started · Beta · Source: https://kit.gramproindia.com/native/docs/devices

> **Beta:** React Native support is in beta. APIs may change or break between prereleases (npm tag `native`).

The previews on these pages run the real components in your browser through
react-native-web. Shadows, fonts, the keyboard and the feel of a sheet differ
on a phone, so try them on one.

## Download the demo app (Android)

**[Download GramproKit Demo (APK)](https://github.com/gramproindia/kit/releases/latest/download/GramproKit-Demo.apk)**:
a sample business app built only from Kit, with a dashboard, an invoice form,
every component, and a live theme editor that exports a `gbs.theme.ts`.

- Android 7.0 or later, 64-bit (arm64). About 21 MB.
- Android asks you to allow installs from your browser the first time.
- It is debug-signed, for trying Kit, not for production. Older builds are on
  [GitHub Releases](https://github.com/gramproindia/kit/releases).

There is no iPhone build; on iOS, run the playground app below in Expo Go.

## The playground app

The repository has `native-playground/`, an Expo app that renders every demo
on these pages from Kit's source:

```bash
cd native-playground
npm install
npx expo start
```

Scan the QR code with **Expo Go** (Android or iOS). Because Kit has no native
modules, no build is needed, and that includes iPhones from a Windows machine.

## Android over USB

With USB debugging on, the phone can reach the dev server over the cable,
without sharing Wi-Fi:

```bash
adb reverse tcp:8081 tcp:8081
npx expo start --localhost
```

Then press `a`, or open `exp://127.0.0.1:8081` in Expo Go.

## Automated tests

For your own app, React Native Testing Library covers the components, and
[Maestro](https://maestro.dev) covers flows on a device. Maestro runs natively
on Windows (no WSL or Docker) against an emulator or a phone plugged in over
USB. iOS flows need the iOS simulator, which CI can provide on macOS runners.
