В процессе разработки нашего Enterprise-ready продукта HyperHive — http://eigenmethod.com/products/hh/ (бренд EigenMethod создан для продвижения продукта на Запад, не удивляйтесь другому домену) мы столкнулись с необходимостью реализации ряда задач на нескольких платформах: iOS, Android, Cordova (Android и iOS), а в перспективе и под Windows для мобильных устройств. Был вариант реализации под каждую платформу на родных языках, но мы выбрали путь создания кроссплатформенного фреймворка на C++ с последующим его портированием под все целевые платформы. Функционал фреймворка: 1. Параллельные потоки загрузки данных с сервера и записи в базу (sqlite) и передачи на сервер в рабочих потоках (без блокирования UI). 2. Поддержка Дельта-обновлений при передаче данных (пересылается только разность между двумя версиями данных). 3. Шифрование трафика и базы данных алгоритмами ГОСТ и RSA. 4. Сжатие трафика. 5. Аутентификация и авторизация на сервере, поддержка сессий. 6. Обработка push-уведомлений (MQTT). 7. API для мобильных приложений для предоставления данных, в том числе в оффлайн-режиме. 8. Логирование действий мобильного клиента на сервере. С задачей успешно справились, но, так как задача нетривиальна и мало освещена в сети, были сложности — как технические, так и в подходе к разработке.