{"id":16684767,"url":"https://github.com/vincentneo/vnemojikit","last_synced_at":"2025-07-06T03:40:00.917Z","repository":{"id":113893311,"uuid":"454120918","full_name":"vincentneo/VNEmojiKit","owner":"vincentneo","description":"Autocomplete, list and search Emojis on Swift, via Enums.","archived":false,"fork":false,"pushed_at":"2024-03-29T11:34:40.000Z","size":621,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T01:35:25.976Z","etag":null,"topics":["autocomplete","emojis","enum","ios","macos","swift","swift5","tvos","unicode","watchos","xcode"],"latest_commit_sha":null,"homepage":"","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/vincentneo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2022-01-31T18:23:02.000Z","updated_at":"2024-10-21T23:44:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef99a4eb-dd96-4d12-a3c7-5cf32b59fed4","html_url":"https://github.com/vincentneo/VNEmojiKit","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincentneo%2FVNEmojiKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincentneo%2FVNEmojiKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincentneo%2FVNEmojiKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vincentneo%2FVNEmojiKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vincentneo","download_url":"https://codeload.github.com/vincentneo/VNEmojiKit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248131470,"owners_count":21052819,"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":["autocomplete","emojis","enum","ios","macos","swift","swift5","tvos","unicode","watchos","xcode"],"created_at":"2024-10-12T14:44:59.485Z","updated_at":"2025-04-09T23:42:08.882Z","avatar_url":"https://github.com/vincentneo.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VNEmojiKit\n\nA simple library that serves Emojis as enums and arrays according to Emoji version.\n\nCurrently, [Iconic app](https://apps.apple.com/sg/app/iconic/id1582751983?mt=12) uses this project.\n\n## How to use\nAll enum case names is of the CLDR Short Name provided by Unicode, in lowerCamelCase, in most cases.\n\nFor example, for emoji 😃, it's CLDR Short Name of `grinning face with big eyes` would become `AllEmojis.grinningFaceWithBigEyes`.\n\n### Obtain emoji string\n\n```Swift\nAllEmojis.faceWithTearsOfJoy.rawValue       // 😂\nAllEmojis.smilingFaceWithHeartEyes.rawValue // 😍\n```\n\n### For emojis with names that includes keywords, it is prefix with _.\n```Swift\nAllEmojis._guard.rawValue // 💂\n```\n\n### For emojis with names that includes symbols, it is specially handled.\n```Swift\n// keycap: #\nAllEmojis.keyCapNumberSign.rawValue // #️⃣\n// keycap: *\nAllEmojis.keyCapAsterisk.rawValue   // *️⃣\n// keycap: 0\nAllEmojis.keycap0.rawValue          // 0️⃣\n```\n### Obtain keywords of an emoji\nReturns keywords as an unsorted `Set\u003cString\u003e`\n\n```\nAllEmojis.faceSavoringFood.keywords \n// [\"food\", \"yum\", \"smile\", \"face savoring food\", \"delicious\", \"savouring\", \"savoring\", \"face\"]\n```\n\n### Obtain emoji's first available version\nReturns version in `Double`\n\n```Swift\nAllEmojis.faceHoldingBackTears.version // 14.0\n```\n\n### Obtain official CLDR Short Name of an emoji\nReturns a `String`\n\n```Swift\nAllEmojis.rollingOnTheFloorLaughing.title // rolling on the floor laughing\nAllEmojis.keyCapNumberSign.title          // keycap: #\n```\n### Obtain all emojis supported for a specific unicode emoji version\nDecimal point `.` is substituted with underscore `_`.\n\nReturns array of `AllEmojis`\n\n```Swift\n// 0.6\nAllEmojis.allCasesForUnicode0_6\n// 14.0\nAllEmojis.allCasesForUnicode14_0\n```\n### All emojis, up to maximum supported unicode version of VNEmojiKit \nIt should be sorted according to official [Emoji Ordering](https://unicode.org/emoji/charts-14.0/emoji-ordering.html).\n\nReturns array of `AllEmojis`\n\n```Swift\nAllEmojis.allCases\n```\n\n### All emojis, up to maximum supported unicode version of user's system\nIt should be sorted by unicode version.\n\nReturns array of `AllEmojis`\n\n```Swift\nAllEmojis.bestFitSetForOS\n```\n\n## Progress Checklist\n\n- [x] Enums with all emojis (name in lowerCamelCase), up to Emoji v14.0.\n- [x] Default names\n- [x] Keywords\n- [x] Introduction Unicode version (in `Double`)\n- [ ] Group\n- [ ] Subgroup\n- [ ] Status of character (i.e. the fully-qualified, unqualified, etc. stuff)\n- [x] Emoji v14 support\n- [x] `#available` filtering based on Unicode \u0026 OS support to get best fit set of emojis\n\n## Installation\nThe package can be used via Swift Package Manager, or by copying all files from the `Sources/VNEmojiKit` into your project.\n\n## Further Notes\n\n### Compatibility\n`.bestFitSetForOS` is only suitable for use for these OS and above:\n- iOS 10.2\n- tvOS 10.1\n- watchOS 3.1.1\n- macOS 10.12.2\n\nAnything below may work, but emoji support will not be checked. Otherwise, it should work on any version as long as Swift (5) is supported.\n\n### Warnings from Xcode\nIt is normal to see \"Default will never be executed warning\" thrown by Xcode. \n\nThis is an intentional side-effect of trying to prevent `the compiler is unable to type-check this expression in reasonable time` error, which results in failure to build. \n\nXcode throws this error because there is simply way too many emojis, and since each emoji is a case of the enum, Xcode fails checking. Adding a `default` clause prevents Xcode from checking at all, which is what we want in this case.\n\n### License\nAll codes committed to this project as well as published versions are licensed under the MIT License. \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvincentneo%2Fvnemojikit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvincentneo%2Fvnemojikit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvincentneo%2Fvnemojikit/lists"}