I just started to use Swiftkey, and I love it, but the fact how the letters ß, ä, ö, and ü are handled when typing in German are a complete deal-breaker for me. It's such a simple thing, and I honestly don't understand why it's not implemented in a smart way.
In order to type an 'ä', you have to long press the letter 'a', then the '@' appears beneath your finger, and you have to move to the letter 'ä'. In German, the letter 'ä' is just a normal character, and it is used a lot more often than the letter '@', so it should be the other way round. After the long press, the 'ä' should automatically appear beneath your finger, so you just have to long press it, without the extra move.
The same thing applies to ß (after long pressing the 's', the ß should be standard, instead of the '#'), for o (where the 9 is standard instead of ö), and the 'ü' as well.
Gboard, and any other keyboard (to my knowledge) implement it in that way. So you just have to long press the u, in order to get a ü, and so on. It's fine if you have to move your finger for characters that you don't need that often, but ä, ü, ö and ß should be the first choice when long pressing.