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

https://github.com/danielsaidi/EmojiKit

A Swift library that lets you use emoji features on all major Apple platforms.
https://github.com/danielsaidi/EmojiKit

emoji emoji-categories emoji-picker emoji-versions emojis ios macos swift swiftui tvos visionos watchos

Last synced: about 1 month ago
JSON representation

A Swift library that lets you use emoji features on all major Apple platforms.

Awesome Lists containing this project

README

          


Project Icon


Version
Swift 6.0
Swift UI
Documentation
MIT License
Sponsor my work

# EmojiKit

EmojiKit lets you use emoji-based features on all major Apple platforms (iOS, macOS, tvOS, watchOS & visionOS).



EmojiKit supports emojis, categories, unicode versions, localization, skin tones, etc. and has convenient SwiftUI components like ``EmojiGrid`` and ``EmojiScrollGrid``.

## Installation

EmojiKit can be installed with the Swift Package Manager:

```
https://github.com/danielsaidi/EmojiKit.git
```

## Support My Work

You can [become a sponsor][Sponsors] to help me dedicate more time on my various [open-source tools][OpenSource]. Every contribution, no matter the size, makes a real difference in keeping these tools free and actively developed.

## Features

EmojiKit provides a bunch of emoji-specific features:

* 😀 Emojis - An emoji model with many features.
* 🐻 Emoji Categories - Standard and custom emoji categories.
* 📦 Emoji Versions - All available emoji versions and their emojis.
* 🧩 Extensions - Emoji-related native type extensions.
* 👍🏾 Skin Tones - Skin tone information for supported emojis.
* 🖼️ Views - Emoji-specific views, like grids and pickers.

See the online [documentation][Documentation] for more information.

## Localization

EmojiKit is localized in the following languages:

* 🇨🇳 Chinese (Simplified)
* 🇬🇧 English
* 🇳🇱 Dutch
* 🇫🇷 French
* 🇩🇪 German
* 🇮🇹 Italian
* 🇯🇵 Japanese
* 🇰🇷 Korean
* 🇧🇷 Portuguese (Brazil)
* 🇷🇺 Russian
* 🇪🇸 Spanish
* 🇸🇪 Swedish

You can contribute by copying `Sources/Resources/en.lproj` and localizing it in another language.

## Getting started

The `Emoji` model can be used to parse a bunch of emoji-specific information, for instance:

```swift
Emoji("👍").unicodeIdentifier // \\N{THUMBS UP SIGN}
Emoji("🚀").unicodeIdentifier // \\N{ROCKET}
Emoji("👍").unicodeName // Thumbs Up Sign
Emoji("👍🏿").unicodeName // Thumbs Up Sign
Emoji("🚀").unicodeName // Rocket
Emoji("😀").localizedName // Grinning Face
Emoji("😀").localizedName(in: .swedish) // Leende Ansikte
Emoji("👍").hasSkinToneVariants // true
Emoji("🚀").hasSkinToneVariants // false
Emoji("👍🏿").neutralSkinToneVariant // 👍
Emoji("👍").skinToneVariants // 👍👍🏻👍🏼👍🏽👍🏾👍🏿
```

The `EmojiCategory` enum defines standard and custom categories and their emojis, for instance:

```swift
EmojiCategory.smileysAndPeopleChars.emojis // 😀😃😄...
EmojiCategory.animalsAndNatureChars.emojis // 🐶🐱🐭...
EmojiCategory.foodAndDrinkChars.emojis // 🍏🍎🍐...
```

The `EmojiVersion` enum defines Emoji versions and the emojis they introduced, for instance:

```swift
EmojiVersion.v15_1.emojis // 🙂‍↕️🙂‍↔️👩‍🦽‍➡️...
EmojiVersion.v15.emojis // 🫨🫸🫷
EmojiVersion.v14.emojis // 🫠🫢🫣
```

See the online [documentation][Documentation] for more information.

## Documentation

The online [documentation][Documentation] has more information, articles, code examples, etc.

## Demo Application

The `Demo` folder has a demo app that lets you explore the library and its components.

## Contact

Feel free to reach out if you have questions or want to contribute in any way:

* Website: [danielsaidi.com][Website]
* E-mail: [daniel.saidi@gmail.com][Email]
* Bluesky: [@danielsaidi@bsky.social][Bluesky]
* Mastodon: [@danielsaidi@mastodon.social][Mastodon]

## License

EmojiKit is available under the MIT license. See the [LICENSE][License] file for more info.

[Email]: mailto:daniel.saidi@gmail.com
[Website]: https://danielsaidi.com
[GitHub]: https://github.com/danielsaidi
[OpenSource]: https://danielsaidi.com/opensource
[Sponsors]: https://github.com/sponsors/danielsaidi

[Bluesky]: https://bsky.app/profile/danielsaidi.bsky.social
[Mastodon]: https://mastodon.social/@danielsaidi
[Twitter]: https://twitter.com/danielsaidi

[Documentation]: https://danielsaidi.github.io/EmojiKit
[License]: https://github.com/danielsaidi/EmojiKit/blob/main/LICENSE