/EmojiKit

EmojiKit is a Swift SDK that lets you use emojis and other emoji-based features on all major Apple platforms.

Primary LanguageSwiftMIT LicenseMIT

EmojiKit Logo

Version Swift 6.0 Swift UI MIT License Twitter: @danielsaidi Mastodon: @danielsaidi@mastodon.social

About EmojiKit

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

EmojiKit has all you need to work with emojis, including categories, support for localization & skin tones, unicode & version information, as well as convenient EmojiGrid and EmojiScrollGrid components for SwiftUI.

Installation

EmojiKit can be installed with the Swift Package Manager:

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

Features

EmojiKit provides a bunch of emoji-specific features:

  • πŸ˜€ Emojis - EmojiKit defines a structured emoji model.
  • 🐻 Emoji Categories - EmojiKit defines all standard emoji categories.
  • πŸ“¦ Emoji Versions - EmojiKit defines all emoji versions and their emojis.
  • 🧩 Extensions - EmojiKit extends native types with emoji support.
  • πŸ‡ΈπŸ‡ͺ Localization - EmojiKit supports localizing all emojis and categories.
  • πŸ‘πŸΎ Skin Tones - EmojiKit provides emoji skin tone information.
  • πŸ–ΌοΈ Views - EmojiKit has emoji-specific views, like grids and pickers.

See the online documentation for more information.

Getting started

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

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(for: .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:

EmojiCategory.smileysAndPeopleChars.emojis // πŸ˜€πŸ˜ƒπŸ˜„...
EmojiCategory.animalsAndNatureChars.emojis // 🐢🐱🐭...
EmojiCategory.foodAndDrinkChars.emojis     // 🍏🍎🍐...

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

EmojiVersion.v15_1.emojis // πŸ™‚β€β†•οΈπŸ™‚β€β†”οΈπŸ‘©β€πŸ¦½β€βž‘οΈ...
EmojiVersion.v15.emojis   // 🫨🫸🫷
EmojiVersion.v14.emojis   // 🫠🫒🫣

See the online documentation for more information.

Documentation

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

Demo Application

The Demo folder has an app that lets you explore the library.

Support my work

You can sponsor me on GitHub Sponsors or reach out for paid support, to help support my open-source projects.

Your support makes it possible for me to put more work into these projects and make them the best they can be.

Contact

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

License

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