в какую сторону двигаться что изучать для создания кросс платформенного приложения?
Зачем? Если у вас проблема с тем, чтобы просто написать мессенджер, зачем вы усложняете себе задачу?
Бекенд мессенджера может крутиться на конкретной ОС, а для кроссплатформенности просто пишут разные клиенты на разные платформы. Совершенно незачем мучаться и писать ОДИН клиент сразу для всех платформ, тем более что это не то, чтобы невозможно, но это будет просто три разных клиента в одном наборе исходников, поддерживать будет неудобно.
Поэтому не заморачивайтесь кроссплатформенностью. Просто реализуйте удобный и надежный API для бекенда, к которому можно будет дописать сколько угодно клиентов.