{"id":2575,"url":"https://github.com/isaced/ISEmojiView","last_synced_at":"2025-08-06T13:32:46.165Z","repository":{"id":25053598,"uuid":"28473581","full_name":"isaced/ISEmojiView","owner":"isaced","description":"Emoji Keyboard for iOS","archived":false,"fork":false,"pushed_at":"2024-08-20T07:33:36.000Z","size":1051,"stargazers_count":523,"open_issues_count":15,"forks_count":119,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-12-06T14:03:28.687Z","etag":null,"topics":["emoji","emoji-keyboard","swift"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isaced.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"isaced"}},"created_at":"2014-12-25T06:42:40.000Z","updated_at":"2024-11-02T14:39:00.000Z","dependencies_parsed_at":"2022-08-07T11:15:16.001Z","dependency_job_id":"37b9fe4d-6482-4da5-bc96-7484404e07f2","html_url":"https://github.com/isaced/ISEmojiView","commit_stats":{"total_commits":129,"total_committers":14,"mean_commits":9.214285714285714,"dds":0.2713178294573644,"last_synced_commit":"3bec47d74462886f320b384c0c4e2ad7e28736e1"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaced%2FISEmojiView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaced%2FISEmojiView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaced%2FISEmojiView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaced%2FISEmojiView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isaced","download_url":"https://codeload.github.com/isaced/ISEmojiView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228905501,"owners_count":17989778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emoji","emoji-keyboard","swift"],"created_at":"2024-01-05T20:16:17.312Z","updated_at":"2025-08-06T13:32:46.134Z","avatar_url":"https://github.com/isaced.png","language":"Swift","readme":"![ISEmojiView logo](/logo@2x.jpg)\n[![Version](https://img.shields.io/cocoapods/v/ISEmojiView.svg?style=flat)](http://cocoapods.org/pods/ISEmojiView)\n[![License](https://img.shields.io/cocoapods/l/ISEmojiView.svg?style=flat)](http://cocoapods.org/pods/ISEmojiView)\n[![Platform](https://img.shields.io/cocoapods/p/ISEmojiView.svg?style=flat)](http://cocoapods.org/pods/ISEmojiView)\n[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n[![SPM supported](https://img.shields.io/badge/SPM-supported-DE5C43.svg?style=flat\")](https://swift.org/package-manager/)\n\n\nEnglish | [中文](/README_zh.md)\n\nAn easy to use Emoji keyboard for iOS.\n\nHas been rewritten with swift, the old *Objective-C* version on branch [oc](https://github.com/isaced/ISEmojiView/tree/oc).\n\n\u003cimg src=\"/screenshot1.png\" width=\"375\" height=\"667\"\u003e \u003cimg src=\"/screenshot2.png\" width=\"375\" height=\"667\"\u003e\n\n## Features\n\n- [x] Written in Swift\n- [x] Custom emojis\n- [x] Multiple skin tone support (  🏻 🏼 🏽 🏾 🏿 )\n- [x] Categories bottom bar (like iOS system emoji Keyboard)\n- [x] Recently used emoji\n- [x] Dark Mode ([#58](https://github.com/isaced/ISEmojiView/issues/58))\n- [x] SwiftUI support.\n\n## Example\n\nTo run the example project, clone the repo, and run `pod install` from the Example directory first.\n\n## Requirements\n\n- Swift 5\n- iOS8+\n- Xcode 10\n\n## Usage\n\n### Installation\n\n#### Swift Package Manager\n\nvia [Swift Package Manager](https://swift.org/package-manager/) Install to your project，Add in Package.swift：\n\n```swift\n.package(name: \"ISEmojiView\", url: \"https://github.com/isaced/ISEmojiView.git\", .upToNextMinor(from: \"0.3.0\")),\n```\n\nIn Xcode：\n\n- File \u003e Swift Packages \u003e Add Package Dependency\n- Add https://github.com/isaced/ISEmojiView.git\n- Select \"Up to Next Major\" with \"0.3.0\"\n\n#### Cocoapods\n\n```Ruby\n# Swift\npod 'ISEmojiView'\n\n# Objective-C (Deprecated)\npod 'ISEmojiView', '0.0.1'\n```\n\n#### Carthage\n\n```Ruby\ngithub \"isaced/ISEmojiView\"\n```\n\n### Import\n\n```Swift\nimport ISEmojiView\n```\n\n### Initialization\n\n```Swift\nlet keyboardSettings = KeyboardSettings(bottomType: .categories)\nlet emojiView = EmojiView(keyboardSettings: keyboardSettings)\nemojiView.translatesAutoresizingMaskIntoConstraints = false\nemojiView.delegate = self\ntextView.inputView = emojiView\n```\n\n### Delegate\n\nImplement `\u003cEmojiViewDelegate\u003e`\n\n```Swift\n// callback when tap a emoji on keyboard\nfunc emojiViewDidSelectEmoji(_ emoji: String, emojiView: EmojiView) {\n    textView.insertText(emoji)\n}\n\n// callback when tap change keyboard button on keyboard\nfunc emojiViewDidPressChangeKeyboardButton(_ emojiView: EmojiView) {\n    textView.inputView = nil\n    textView.keyboardType = .default\n    textView.reloadInputViews()\n}\n    \n// callback when tap delete button on keyboard\nfunc emojiViewDidPressDeleteBackwardButton(_ emojiView: EmojiView) {\n    textView.deleteBackward()\n}\n\n// callback when tap dismiss button on keyboard\nfunc emojiViewDidPressDismissKeyboardButton(_ emojiView: EmojiView) {\n    textView.resignFirstResponder()\n}\n```\n\n### Customize\n\n#### KeyboardSettings\n\nThis is a class to describe keyboard settings. Available properties:\n\n- `bottomType` - type of bottom view. Available variants: `.pageControl`, `.categories`. See `BottomType` enum. Default `.pageControl`.\n- `customEmojis` - array of custom emojis. To describe emojis you have to use `EmojiCategory` class.\n- `isShowPopPreview` - long press to pop preview effect like iOS10 system emoji keyboard. Default is true.\n- `countOfRecentsEmojis` - the max number of recent emojis, if set 0, nothing will be shown. Default is 50.\n- `needToShowAbcButton` - need to show change keyboard button. This button is located in `Categories` bottom view.\n\n### SwiftUI\nDoesn't work on macOS SwiftUI natively.\n\n```Swift\nimport ISEmojiView\n\nEmojiView_SwiftUI()\n    .frame(width: 300, height: 500)\n    .padding()\n```\n\n`countOfRecentsEmojis`, `needToShowAbcButton`, `needToShowDeleteButton`, `updateRecentEmojiImmediately` can be passed to EmojiView_SwiftUI as parameters.\n\n## Others\n\nIf you are looking for a React Native solution, take a look at this [brendan-rius/react-native-emoji-keyboard](https://github.com/brendan-rius/react-native-emoji-keyboard)\n\n## License\n\nMIT\n","funding_links":["https://github.com/sponsors/isaced"],"categories":["UI","Libs"],"sub_categories":["Keyboard"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaced%2FISEmojiView","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisaced%2FISEmojiView","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaced%2FISEmojiView/lists"}