Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 37 additions & 1 deletion modules/camera/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,27 @@ Ensemble Camera is a Flutter package that extends the capabilities of the [Ensem
- **Flutter SDK:** >= 3.24.0
- **Dart SDK:** >= 3.5.0

### Enable from Starter (recommended)

From the `starter` app, run the module enable script to add the dependency,
register `CameraManagerImpl`, set `useCamera` in `lib/generated/ensemble_modules.dart`,
and apply platform permissions:

```bash
cd starter
npm run hasCamera
flutter pub get
```

For specific platforms (for example Android, iOS, and web):

```bash
dart scripts/modules/enable_camera.dart platform=android,ios,web
```

On web, the script also adds the required script tag for
`assets/packages/ensemble_camera/web/image_worker.js` in `web/index.html`.

### Installation

Add the following dependency to your `pubspec.yaml`:
Expand All @@ -53,7 +74,22 @@ flutter pub get

### Permissions

Make sure to configure the necessary permissions for camera, microphone, and location access in your project for Android and iOS.
When enabled via the starter script, the following are added automatically:

**Android** (`AndroidManifest.xml`):

```xml
<uses-permission android:name="android.permission.CAMERA" />
```

**iOS** (`Info.plist` usage descriptions):

- `NSCameraUsageDescription`
- `NSPhotoLibraryUsageDescription`
- `NSMicrophoneUsageDescription`

For manual setup, configure camera, microphone, photo library, and location
access in your host app as required by your capture options.

## Usage

Expand Down
20 changes: 20 additions & 0 deletions modules/device_preview/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
## Ensemble monorepo

This directory (`modules/device_preview`) is a fork of
[device_preview](https://pub.dev/packages/device_preview) (v1.1.0) maintained in
the Ensemble monorepo.

For Ensemble apps, prefer [`packages/ensemble_device_preview`](../../packages/ensemble_device_preview)
(v1.1.3), which the core `ensemble` module depends on.

Within this repository:

```bash
melos bootstrap
```

The usage documentation below reflects the upstream `device_preview` package API
in this fork.

---

<p align="center">
<img src="https://github.com/aloisdeniel/flutter_device_preview/raw/master/logo.png" alt="Device Preview for Flutter" />
</p>
Expand Down
2 changes: 1 addition & 1 deletion modules/ensemble_icons/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Add this to your `pubspec.yaml`:

```yaml
dependencies:
ensemble_icons: ^1.0.1
ensemble_icons: ^1.0.2
```

Then run:
Expand Down
24 changes: 24 additions & 0 deletions modules/face_camera/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,30 @@ The `ensemble_face_camera` module provides face detection capabilities to the En

## Installation

### Enable from Starter (recommended)

From the `starter` app, run the module enable script to add the dependency,
register `FaceCameraManagerImpl`, set `useFaceCamera` in
`lib/generated/ensemble_modules.dart`, and apply platform permissions:

```bash
cd starter
npm run hasFaceCamera
flutter pub get
```

For specific platforms (for example Android, iOS, and web):

```bash
dart scripts/modules/enable_face_camera.dart platform=android,ios,web
```

On web, the script also adds script tags for
`assets/packages/ensemble_face_camera/web/face_api.js` and
`assets/packages/ensemble_face_camera/web/face_detection.js` in `web/index.html`.

### Manual setup

Add the following to your `pubspec.yaml`:

```yaml
Expand Down
22 changes: 13 additions & 9 deletions modules/qr_scanner/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,14 +100,16 @@ QRCodeScanner:

## Module Comparison

| Feature | qr_scanner | camera |
|---------|-----------|--------|
| QR/Barcode | ✅ | ✅ |
| Photo/Video | ❌ | ✅ |
| Face detection | ❌ | ✅ |
| Size | ~4KB | ~400KB+ |
| Permissions | Camera only | Camera, Location, Mic |
| Dependencies | mobile_scanner | geolocator, sensors, ML kit |
| Feature | qr_scanner | camera | face_camera |
|---------|-----------|--------|-------------|
| QR/Barcode | ✅ | ✅ | ❌ |
| Photo/Video | ❌ | ✅ | ❌ |
| Face detection | ❌ | ❌ | ✅ |
| Size | ~4KB | ~400KB+ | varies |
| Permissions | Camera only | Camera, Location, Mic | Camera, Mic |
| Dependencies | mobile_scanner | geolocator, sensors | face detection models |

> Face detection was moved out of `ensemble_camera` into the standalone `ensemble_face_camera` module. Using `faceDetection: enabled: true` in `openCamera` now logs a warning and falls back to the standard camera.

## When to Use

Expand All @@ -118,10 +120,12 @@ QRCodeScanner:

**Use `ensemble_camera`:**
- Need photo/video capture
- Need face detection
- Need sensor/location features
- (includes QR via re-export)

**Use `ensemble_face_camera`:**
- Need real-time face detection and `openFaceCamera`

## Migration from Camera Module

**Before:**
Expand Down
2 changes: 1 addition & 1 deletion packages/ensemble_walletconnect/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Add this to your `pubspec.yaml`:

```yaml
dependencies:
ensemble_walletconnect: ^1.0.4
ensemble_walletconnect: ^1.0.5
```

Then run:
Expand Down
8 changes: 6 additions & 2 deletions packages/flutter_share_receiver/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,19 @@ dependencies:

## Android

Add the following filters to your [android/app/src/main/AndroidManifest.xml](./example/android/app/src/main/AndroidManifest.xml):
Add the following filters to your [android/app/src/main/AndroidManifest.xml](./example/android/app/src/main/AndroidManifest.xml).

Use `android:name="${applicationName}"` on the `<application>` element (as in the
package example) for current Flutter embedding; do not use the deprecated
`io.flutter.app.FlutterApplication` class.

```xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
.....
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

<application
android:name="io.flutter.app.FlutterApplication"
android:name="${applicationName}"
...
>
<!--Set activity launchMode to singleTask, if you want to prevent creating new activity instance everytime there is a new intent.-->
Expand Down
Loading