An open API service indexing awesome lists of open source software.

https://github.com/lolocomotive/stickers

Simple android sticker maker for WhatsApp without ads.
https://github.com/lolocomotive/stickers

android flutter sticker-maker whatsapp whatsapp-stickers

Last synced: 6 months ago
JSON representation

Simple android sticker maker for WhatsApp without ads.

Awesome Lists containing this project

README

          

# Stickers

Simple android sticker maker for WhatsApp without ads.

[![](https://upload.wikimedia.org/wikipedia/commons/7/78/Google_Play_Store_badge_EN.svg)](https://play.google.com/store/apps/details?id=de.loicezt.stickers)

Or download from the latest [GitHub Release](https://github.com/lolocomotive/stickers/releases)

## Features

- Quick mode: sharing an image to the app automatically adds it to whatsapp
- Editor
- Crop your sticker to your heart's content
- Add texts with different sizes, fonts and colors
- Draw with different colors and brush sizes, with undo/redo support
- Every element has its own layer unde the hood, so you can draw above and below texts
- Import/Export
- Export to `.zip` to share or backup your packs
- Import from various formats (own `.zip` format, `.wastickers`, `.stickify`, shouldn't be too
hard to add more because most of them are just a ZIP file with pictures and a simple manifest)
- Create, edit and delete multiple packs and their metadata (author, title, tray icon and more)

## Screenshots

| Home | Pack view | Editor |
|-----------------------------------|-----------------------------------|---------------------------------------|
| ![home.png](screenshots/home.png) | ![pack.png](screenshots/pack.png) | ![editor.png](screenshots/editor.png) |

## Building

`flutter run` should work just fine, however if you want to build the release version of the app,
you'll need to either:

Use your own signing key

In `android/` create `key.properties` with

```properties
storeFile=path/to/keystore.jks
keyAlias=your key alias
storePassword=your store password
keyPassword=your key password
```

More details: https://docs.flutter.dev/deployment/android#sign-the-app

or

Use the debug signing config

In `android/app/build.gradle` around line 29

```
buildTypes {
release {
signingConfig signingConfigs.release
}
}
```

replace `signingConfigs.release` with `signingConfigs.debug` and remove

```
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file("key.properties")
if (keystorePropertiesFile.exists()) {
keystorePropertiesFile.withReader('UTF-8') { reader ->
keystoreProperties.load(reader)
}
}
```

and

```
signingConfigs {
create("release") {
keyAlias = keystoreProperties["keyAlias"]
keyPassword = keystoreProperties["keyPassword"]
storeFile = new File(keystoreProperties["storeFile"])
storePassword = keystoreProperties["storePassword"]
}
}
```

And it *should* work, only use for testing.

And the you just need to

```
flutter build apk
```

## Contributing

Any contributions (Pull requests, feature requests and bug reports) are very welcome!
Be aware that I set my line width to 120 instead of 80, so be careful before reformatting entire
files. If you're using vscode put the following in `.vscode/settings.json` .

```json
{
"dart.lineLength": 120,
"[dart]": {
"editor.rulers": [
120
]
}
}
```

Also the code is not very well documented yet so sorry in advance to anyone trying to read it.

## TODO

Some features I plan to work on in the future

- [ ] Selecting multiple packs at once in the home screen
- [ ] Add option to add a background to texts
- [ ] Image layers on stickers
- [ ] Start with an existing sticker
- [ ] Create animated stickers from gifs
- [ ] Crop and rotate videos

## iOS Support

I don't own any Apple devices, therefore I can't build for iOS nor test the iOS app. It's a flutter
app so it should more or less work.
If you want to add iOS support, you're welcome! Here's some things to look out for:

- `image_editor` would have to be modified to support WEBP on iOS (I only added support for WEBP on
Android)
- `whatsapp_stickers_plus` package might not work (it didn't on Android).
- Many widgets would have to be replaced with their `.adaptive` equivalent if you want it to look
like an iOS app