Siberian Programmers Qt Libs
sp_qt_libs
- это C++11/Qt/QML библиотека, предназначенная для разработки мобильных приложенией под Android и iOS.
В её состав входит:
- Базовый класс приложения
SpApplicationPrototype
; - Набор QML-компонентов для создания и отладки интерфейса;
- Простая и чистая система логирования (особенно полезно в Android и для профилирования)
- Сетевой стек для обращения к интернету в условиях нестабильной мобильной сети (пересылка запроса после разрыва связи, докачка файлов и др.)
- Базовая Activity для Android.
- Набор примеров для демонстрации библиотечных QML-компонентов.
Требования для сборки
Библиотеку тестировали на Apple OS X и Linux с Qt 5.8, но должна работать и с более ранними версиями Qt (нужно поменять версию import'а QML-компонетов).
Логирование и отладка
В рамках библиотеки была расширена технология логирования Qt классом sp::Log
и QML-синглетоном Debug
.
Во-первых, для каждого программиста предусматривается отдельная функция для вывода в лог. Эта техника позволяет сохранить лог чистым от отладочного вывода других программистов, работающих над проектом. В файле Programmer.pri
должно быть определение лога программиста, к примеру:
DEFINES += SP_ALEUS
А в файле LogSp.h
находится следующее определение
#ifdef SP_ALEUS
#define LOG_ALEUS(str) qDebug() << str
#else
#define LOG_ALEUS(str) ;
#endif
Рекомендую по аналогии добавить собственную функцию и флаг логирования.
Во-вторых, изменился формат логов на для Android:
####### : 9999 : Текст лога
, а для Desktop и iOS:
9999 : Текст лога
Здесь 9999
- это время в милисекундах от начала работы программы, а #######
- это метка для вырезания лога приложения в Android (по-умолчанию, Qt продуцирует несколько меток, что неудобно)
adb logcat | grep "#######"
В-третьих, для в Qt Quick иногда требуется узнать содержимое объекта, для этого можно использовать команду
Debug.printObject (object, "Пояснение")