Skip to content

Commit

Permalink
feat: add @capacitor-mlkit/selfie-segmentation package (#66)
Browse files Browse the repository at this point in the history
Co-authored-by: Robin Genz <[email protected]>
Co-authored-by: Philipp Grosswiler <[email protected]>
  • Loading branch information
robingenz and trancee authored Sep 11, 2023
1 parent 1bf8290 commit 2e33530
Show file tree
Hide file tree
Showing 60 changed files with 2,859 additions and 11 deletions.
1 change: 1 addition & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
[
"@capacitor-mlkit/barcode-scanning",
"@capacitor-mlkit/face-detection",
"@capacitor-mlkit/selfie-segmentation",
"@capacitor-mlkit/translation"
]
],
Expand Down
5 changes: 5 additions & 0 deletions .changeset/fifty-mirrors-teach.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@capacitor-mlkit/selfie-segmentation': minor
---

Initial release 🎉
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,12 @@ Click on the name of the desired plugin under the [`Plugins`](#plugins) section

## Plugins

| Name | Package | Version | Downloads |
| ----------------------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Barcode Scanning](./packages/barcode-scanning) | `@capacitor-mlkit/barcode-scanning` | [![npm badge](https://img.shields.io/npm/v/@capacitor-mlkit/barcode-scanning?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/barcode-scanning) | [![npm downloads](https://img.shields.io/npm/dw/@capacitor-mlkit/barcode-scanning?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/barcode-scanning) |
| [Face Detection](./packages/face-detection) | `@capacitor-mlkit/face-detection` | [![npm badge](https://img.shields.io/npm/v/@capacitor-mlkit/face-detection?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/face-detection) | [![npm downloads](https://img.shields.io/npm/dw/@capacitor-mlkit/face-detection?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/face-detection) |
| [Translation](./packages/translation) | `@capacitor-mlkit/translation` | [![npm badge](https://img.shields.io/npm/v/@capacitor-mlkit/translation?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/translation) | [![npm downloads](https://img.shields.io/npm/dw/@capacitor-mlkit/translation?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/translation) |
| Name | Package | Version | Downloads |
| ----------------------------------------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Barcode Scanning](./packages/barcode-scanning) | `@capacitor-mlkit/barcode-scanning` | [![npm badge](https://img.shields.io/npm/v/@capacitor-mlkit/barcode-scanning?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/barcode-scanning) | [![npm downloads](https://img.shields.io/npm/dw/@capacitor-mlkit/barcode-scanning?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/barcode-scanning) |
| [Face Detection](./packages/face-detection) | `@capacitor-mlkit/face-detection` | [![npm badge](https://img.shields.io/npm/v/@capacitor-mlkit/face-detection?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/face-detection) | [![npm downloads](https://img.shields.io/npm/dw/@capacitor-mlkit/face-detection?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/face-detection) |
| [Selfie Segmentation](./packages/selfie-segmentation) | `@capacitor-mlkit/selfie-segmentation` | [![npm badge](https://img.shields.io/npm/v/@capacitor-mlkit/selfie-segmentation?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/selfie-segmentation) | [![npm downloads](https://img.shields.io/npm/dw/@capacitor-mlkit/selfie-segmentation?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/selfie-segmentation) |
| [Translation](./packages/translation) | `@capacitor-mlkit/translation` | [![npm badge](https://img.shields.io/npm/v/@capacitor-mlkit/translation?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/translation) | [![npm downloads](https://img.shields.io/npm/dw/@capacitor-mlkit/translation?style=flat-square)](https://www.npmjs.com/package/@capacitor-mlkit/translation) |

## Changelogs

Expand Down
50 changes: 50 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/barcode-scanning/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# @capacitor-mlkit/barcode-scanning

Unofficial Capacitor plugin for [ML Kit Barcode scanning](https://developers.google.com/ml-kit/vision/barcode-scanning).[^1][^2]
Unofficial Capacitor plugin for [ML Kit Barcode Scanning](https://developers.google.com/ml-kit/vision/barcode-scanning).[^1][^2]

## Features

Expand Down
4 changes: 2 additions & 2 deletions packages/barcode-scanning/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@capacitor-mlkit/barcode-scanning",
"version": "5.1.0",
"description": "Capacitor plugin for ML Kit Barcode scanning.",
"description": "Capacitor plugin for ML Kit Barcode Scanning.",
"main": "dist/plugin.cjs.js",
"module": "dist/esm/index.js",
"types": "dist/esm/index.d.ts",
Expand All @@ -21,7 +21,7 @@
"url": "git+https://github.com/capawesome-team/capacitor-mlkit.git"
},
"bugs": {
"url": "https://github.com/capawesome-team/capacitor-mlkit.git/issues"
"url": "https://github.com/capawesome-team/capacitor-mlkit/issues"
},
"funding": [
{
Expand Down
3 changes: 2 additions & 1 deletion packages/face-detection/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ A working example can be found here: [robingenz/capacitor-mlkit-plugin-demo](htt
import { FaceDetection, PerformanceMode, LandmarkMode, ContourMode, ClassificationMode } from '@capacitor-mlkit/face-detection';

const processImage = async () => {
await FaceDetection.processImage({
const { faces } = await FaceDetection.processImage({
path: 'path/to/image.jpg',
performanceMode: PerformanceMode.Fast,
landmarkMode: LandmarkMode.All,
Expand All @@ -48,6 +48,7 @@ const processImage = async () => {
minFaceSize: 0.1,
enableTracking: false,
});
return faces;
};
```

Expand Down
2 changes: 1 addition & 1 deletion packages/face-detection/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"url": "git+https://github.com/capawesome-team/capacitor-mlkit.git"
},
"bugs": {
"url": "https://github.com/capawesome-team/capacitor-mlkit.git/issues"
"url": "https://github.com/capawesome-team/capacitor-mlkit/issues"
},
"funding": [
{
Expand Down
2 changes: 2 additions & 0 deletions packages/selfie-segmentation/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
build
dist
61 changes: 61 additions & 0 deletions packages/selfie-segmentation/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# node files
dist
node_modules

# iOS files
Pods
Podfile.lock
Build
xcuserdata

# macOS files
.DS_Store



# Based on Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin
gen
out

# Gradle files
.gradle
build

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation

# Android Studio captures folder
captures

# IntelliJ
*.iml
.idea

# Keystore files
# Uncomment the following line if you do not want to check your keystore files in.
#*.jks

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild
2 changes: 2 additions & 0 deletions packages/selfie-segmentation/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
build
dist
2 changes: 2 additions & 0 deletions packages/selfie-segmentation/.prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
const config = require('../../.prettierrc.js');
module.exports = config;
3 changes: 3 additions & 0 deletions packages/selfie-segmentation/BREAKING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Breaking Changes

This is a comprehensive list of the breaking changes introduced in the major version releases of Capacitor ML Kit Selfie Segmentation plugin.
1 change: 1 addition & 0 deletions packages/selfie-segmentation/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Changelog
52 changes: 52 additions & 0 deletions packages/selfie-segmentation/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Contributing

This guide provides instructions for contributing to this Capacitor plugin.

## Developing

### Local Setup

1. Fork and clone the repo.
1. Install the dependencies.

```shell
npm install
```

1. Install SwiftLint if you're on macOS.
```shell
brew install swiftlint
```
### Scripts
#### `npm run build`
Build the plugin web assets and generate plugin API documentation using [`@capacitor/docgen`](https://github.com/ionic-team/capacitor-docgen).
It will compile the TypeScript code from `src/` into ESM JavaScript in `dist/esm/`. These files are used in apps with bundlers when your plugin is imported.
Then, Rollup will bundle the code into a single file at `dist/plugin.js`. This file is used in apps without bundlers by including it as a script in `index.html`.
#### `npm run verify`
Build and validate the web and native projects.
This is useful to run in CI to verify that the plugin builds for all platforms.
#### `npm run lint` / `npm run fmt`
Check formatting and code quality, autoformat/autofix if possible.
This template is integrated with ESLint, Prettier, and SwiftLint. Using these tools is completely optional, but the [Capacitor Community](https://github.com/capacitor-community/) strives to have consistent code style and structure for easier cooperation.
## Publishing
There is a `prepublishOnly` hook in `package.json` which prepares the plugin before publishing, so all you need to do is run:
```shell
npm publish
```
> **Note**: The [`files`](https://docs.npmjs.com/cli/v7/configuring-npm/package-json#files) array in `package.json` specifies which files get published. If you rename files/directories or add files elsewhere, you may need to update it.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
require 'json'

package = JSON.parse(File.read(File.join(__dir__, 'package.json')))

Pod::Spec.new do |s|
s.name = 'CapacitorMlkitSelfieSegmentation'
s.version = package['version']
s.summary = package['description']
s.license = package['license']
s.homepage = package['repository']['url']
s.author = package['author']
s.source = { :git => package['repository']['url'], :tag => s.version.to_s }
s.source_files = 'ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}'
s.ios.deployment_target = '13.0'
s.dependency 'Capacitor'
s.dependency 'GoogleMLKit/SegmentationSelfie', '4.0.0'
s.swift_version = '5.1'
s.static_framework = true
end
Loading

0 comments on commit 2e33530

Please sign in to comment.