Разработка кроссплатформенного фреймворка на С++ для мобильных платформКросс-платформенная разработка
Имеет более 8 лет опыта коммерческой разработки на C++. Еще со студенческих времен увлекался FreeBSD, raw socket'ами и тем, какой байт надо перезаписать чтобы вместо segfault увидеть uid=0 :)
Учавствовал в разработке клиентской части кроссплатформенного EA Sports IGNITE Online C++ SDK, используемого для реализации онлайн возможностей FIFA 14, FIFA 15, FIFA 16, Madden 15 и других тайтлов EA Sports.
В компании САПРАН Владимир занимается разработкой кроссплатформенного C++ фреймворка, упрощающего жизнь разработчикам корпоративных мобильных приложений, взаимодействующих с SAP и другими источниками данных.
В процессе разработки нашего 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. Логирование действий мобильного клиента на сервере.
С задачей успешно справились, но, так как задача нетривиальна и мало освещена в сети, были сложности — как технические, так и в подходе к разработке.