Written entirely in Swift. Uses autolayout to deal with all the different keyboard layouts and orientations on the various iPhone and iPad sizes.
I used Paintcode to draw the beziers for all the accent keys (è é ê ë ę etc) and then it converts them to code. It has basic autocorrect (needs a lot of improvement if anyone has any ideas on how to improve that).
The emoji suggest happens via a big list of candidate terms that are then mapped to the unicode for each emoji.