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.
EmojiKit can be installed with the Swift Package Manager:
https://github.com/danielsaidi/EmojiKit.git
I love building tools for the Swift & SwiftUI community. By becoming a sponsor on GitHub, you directly support the continued development and improvement of my various open-source projects projects.
Your sponsorship helps me dedicate more time to building new features, providing thorough documentation and examples, maintaining high code quality and reliability, etc. You can also reach out for support and paid projects.
Every sponsor makes a real difference. Thank you for considering becoming a sponsor and supporting my work!
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 for more information.
EmojiKit is localized in the following languages:
- 🇨🇳 Chinese (Simplified)
- 🇬🇧 English
- 🇫🇷 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.
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.
The online documentation has more information, articles, code examples, etc.
The Demo folder has a demo app that lets you explore the library and its components.
Feel free to reach out if you have questions or want to contribute in any way:
- Website: danielsaidi.com
- E-mail: [email protected]
- Bluesky: @[email protected]
- Mastodon: @[email protected]
EmojiKit is available under the MIT license. See the LICENSE file for more info.