5.0.0 • Published 3 years ago

@rebox/android v5.0.0

Weekly downloads
131
License
MIT
Repository
github
Last release
3 years ago

@rebox/android npm

Set of helpers to deal with React Native applications on Android.

Install

$ yarn add @rebox/android

Setup

macOS

brew update
brew tap homebrew/cask-versions
brew install --cask adoptopenjdk8
brew install --cask android-sdk
brew install --cask intel-haxm
export ANDROID_HOME=$(brew --prefix)/share/android-sdk
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/emulator:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
exec $SHELL -l
mkdir $HOME/.android/
touch $HOME/.android/repositories.cfg
yes | sdkmanager --licenses
sdkmanager "platform-tools" "platforms;android-29" "build-tools;29.0.3" "emulator" "extras;android;m2repository" "system-images;android-29;google_apis;x86"

API

type TLinkAndroidDependencyOptions = {
  projectPath: string,
  dependencyName: string
}

const linkAndroidDependency: (options: TLinkAndroidDependencyOptions) => Promise<void>
type TBuildAndroidAppDebugOptions = {
  projectPath: string,
  appName: string,
  appId: string
}

const buildAndroidAppDebug: (options: TBuildAndroidAppDebugOptions) => Promise<void>
type TInstallAndroidAppOptions = {
  appPath: string,
  deviceId?: string
}

const installAndroidApp: (options: TInstallAndroidAppOptions) => Promise<void>
type TUninstallAndroidAppOptions = {
  appId: string,
  deviceId?: string // booted one by default
}

const uninstallAndroidApp: (options: TUninstallAndroidAppOptions) => Promise<void>
type TRunAndroidEmulatorOptions = {
  portsToForward: number[],
  isHeadless?: boolean // false by default
}

const runAndroidEmulator: (options: TRunAndroidEmulatorOptions) => Promise<() => void>
type TLaunchAndroidAppOptions = {
  appId: string,
  deviceId?: string // booted one by default
}

const launchAndroidApp: (options: TLaunchAndroidAppOptions) => Promise<void>
type TRunAndroidAppOptions = {
  appName: string,
  appId: string,
  entryPointPath: string,
  portsToForward?: number[], // additional ports to forward from host to emulator's VM
  fontsDir?: string, // directory with `.ttf` or `.otf` files
  dependencyNames?: string[], // installed NPM package names
  isHeadless?: boolean, // false by default
  logMessage?: (msg: string) => void
}

const runAndroidApp: (options: TRunAndroidAppOptions) => Promise<() => void

Usage

// App.tsx
import { FC } from 'react'
import { Svg, Circle } from 'react-native-svg'

export const App: FC<{}> = () => (
  <Svg height={100} width={100} viewBox="0 0 100 100">
    <Circle
      cx="50"
      cy="50"
      r="45"
      stroke="blue"
      strokeWidth="2.5"
      fill="green"
    />
  </Svg>
)
// run.ts
import { runAndroidApp } from '@rebox/android'

await runAndroidApp({
  appName: 'Test',
  appId: 'org.nextools.test',
  entryPointPath: './App.tsx',
  dependencyNames: ['react-native-svg'],
  logMessage: console.log
})
5.0.0

3 years ago

4.0.5

4 years ago

4.0.4

4 years ago

4.0.3

4 years ago

4.0.2

4 years ago

4.0.1

4 years ago

4.0.0

4 years ago

3.1.0

4 years ago

3.0.0

4 years ago

2.0.6

4 years ago

2.0.5

4 years ago

2.0.4

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.8.1

4 years ago

0.8.0

4 years ago

0.7.0

5 years ago

0.6.3

5 years ago

0.6.2

5 years ago

0.6.1

5 years ago

0.6.0

5 years ago

0.5.0

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago