Skip to content

aboard-io/emojica

Repository files navigation

emojica

Emojica – a Swift framework for using custom emoji in strings.

gif

What does it do?

Emojica allows you to replace the standard emoji in your iOS apps with twemojis. Works on UILabel and UITextView.

Just follow the instructions below, import your custom image set, and you're ready to go.

Features

  • Compatible with all iOS 14 emoji
  • Convert input directly on textViewDidChange(_:)
  • Revert converted strings to their original representation
1. The original emoji are used as fallback.

Requirements

  • Xcode 11
  • iOS 13.0+
    • Lower versions haven't been tested, although the framework may run without issues on a lower version.
  • Swift 5
    • Using the framework in an Objective-C project may require some modifications to the source. Support for Objective-C will possibly be added at some point in the future.

Installation

  1. Add the pod to your Podfile:
target '...' do
   pod 'Emojica', :git => 'https://github.com/aboard-io/emojica.git'
end
  1. Navigate into your project directory and install/update:
$ cd /Path/To/Your/Project/ && pod install

Manual installation

  1. Clone the repository, and drag Emojica.xcodeproj into your project hierarchy in Xcode.
  2. Select your project, then select your application's target under Targets.
  3. Under the General tab, click the + under Embedded Binaries.
  4. Select Emojica.frameworkiOS and finish by pressing Add.

If Xcode gives you a No such module 'Emojica' compiler error at your import statement, just build your application (or the framework) once. Also, each time you Clean (⇧⌘K) the project Xcode will give you the same error, and the solution is the same.

Usage

import Emojica

Instantiation

let emojica = Emojica()

// Creates an instance with a font.
let emojica = Emojica(font: UIFont.systemFont(ofSize: 17.0))

Configure instance

  • Set font:

    emojica.font = UIFont.systemFont(ofSize: 17.0)

If no font is set, the system font is used.

  • Set size:

    emojica.pointSize = 17.0

If you're satisfied with the default font, you can just set the size. The value for pointSize is 17.0 by default.

  • Enable emoji to be reverted:

NOTE: Keep the instance non-revertible if the original strings aren't needed after conversion.

emojica.revertible = true

Enables strings with custom emoji to be reverted to original state.

Convert string

let sample: String = "Sample text 😎"

let converted: NSAttributedString = emojica.convert(string: sample)

Revert string

NOTE: The instance must have revertible set to true.

let reverted: String = emojica.revert(attributedString: converted)

Using converted strings

let textView = UITextView()

...

let flag: String = "🇫🇮 "

textView.attributedText = emojica.convert(string: flag)

Directly converting text input

You can directly convert text input by implementing the UITextViewDelegate method textViewDidChange(_:) and passing the changed UITextView to the Emojica method by the same name:

func textViewDidChange(_ textView: UITextView) {
    emojica.textViewDidChange(textView)
}

Example Project

The example EmojicaExample.xcodeproj is set up but does not contain images. To test the project, add your emoji images to the Images group and Run.

License

Emojica is released under the Apache License 2.0.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published