I was thinking misspelling was a really hard feature to implement, but it’s far more easy to do once you have the Lenvenshtein distance algorithm ready.
I wrote a Swift extension on String to compute this distance, the algorithm is simply translated from Wikipedia pseudo code.