Сорок(и более) штрихов о прочитанных(переведённых) книгах.

Штрих тридцать первый. 2019 год.

Марко Пикколино. Qt 5-проекты. Разработка межплатформенных приложений с современными пользовательскими интерфейсами с помощью мощного фреймворка Qt.

(Marco Piccolino. Qt 5 Projects. Develop cross-platform applications with modern UIs using the powerful Qt framework. ISBN 978-1-78829-388-4, Copyright © 2018 Packt Publishing)

p.s.

Выдержка из книги:

Предисловие

Большой силе должна сопутствовать большая ответственность!" – Друг Человека-паука Проекты, которые предоставляю вам, предназначены только для показа Вам, как с помощью пакета Qt можно мощно и просто построить полно-комплектные приложения и богатые пользовательские интерфейсы(о них вы могли бы узнать самостоятельно, я полагаю, что вы умны), но прежде всего, предназначены для показа того, как сделать это написание кода, удобного для сопровождения, с которым вы столкнетесь при жизни программы и подробно начнете изучать технологию сопровождения без сожаления о затраченном времени. И технология сопровождения требует небольшого опыта. В конце это описание является тем, что я предлагаю вам сверх других знаний: мой опыт как разработчика программного обеспечения, который «использует пакет Qt ежедневно для выполнения потребностей моих клиентов и мои собственных. Каждый опытный рассказчик скажет вам, что люди пересказывают истории, потому что они помогают нам выживать. Это я собираюсь сделать в этой книге, также. Я расскажу историю двух запусков проектов(start-ups), которые, надеюсь, помогут разрабатывать свои продукты. Я уверен, что вы пройдете всю книгу и завершите проекты, потому что у вас есть четкая цель, и потому что эта книга предоставит вам дорожные карты, чтобы добраться до цели. Планируете ли вы ориентированный на потребителя цифровой продукт или экосистему продукта, предназначенную для компаний, вы узнаете, какие стандартные Qt-блоки лучше всего подходят для ваших усилий, и какие Qt API-интерфейсы приложения для разработки (application programming interfaces; APIs) могли бы использовать для достижения ваших целей способом с эффективными затратами времени и соответствующим требованиям завтрашнего дня. Каждый проект мы начнем с требований пользователя, извлекая знания из принципов: разработки по принципу управляемого поведения(Behavior-Driven Development; BDD), разработки по принципу управляемого тестирования(TDD-разработка; test-driven-development; TDD), разработки по принципу чистого кодирования(clean coding) и очистки архитектуры от ненадежных элементов(потенциалов краха; clean crchitecture). Вы могли бы сначала посчитать этот подход упрощенным и многословным. Однако, я обещаю, ваши впечатления все более и более изменятся в сторону полезности подхода, и оправдают наш процесс. Чтобы убедиться в полезности ваших будущих стараний изо всех сил, прочтите следующие разделы. Счастливого путешествия!

Для кого предназначена эта книга?

Эта книга предназначена для разработчиков, которые хотят проектировать многофункциональные приложения, ориентированные на клиентов и бизнес, и разрабатывать динамические графические интерфейсы пользователя, и развертывать их беспрепятственно на встроенном, мобильном, серверном и настольных устройствах. Кроме того, она предназначена для разработчиков, которые хотят быть в состоянии выпустить готовые приложения и поддержать их. Книга является книгой, ориентированной на цель и на проект, и требует некоторого практического опыта программирования на языках C++11 и JavaScript, и готовности исследовать и охватить разработку по принципу управляемого тестирования(test-driven-development; TDD) и текущие наиболее успешные практики в проектировании программного обеспечения и реализации.

Что рассматривает эта книга?

Глава 1 «Написание приемочных тестов и построение визуального прототипа» описывает проект простого персонального приложения(Что имеется в моем холодильнике?) и с точки зрения решаемых проблем и с точки зрения придумывания решений, которые позволят состояться приложению. Мы пишем приемочные тесты(acceptance tests) с использованием Qt-фреймворка тестирования Qt Test, чтобы гарантировать, что основные сценарии использования выполнены. Мы представляем проектировщик Qt Quick Designer, интегрированный в IDE-среду разработки Qt Creator, и компоненты Qt Quick Controls(UI controls; визуальные компоненты интерфейса; контролы) для Qt Quick-модуля, используемые в качестве эффективного инструмента изготовления прототипов и реализаций пользовательских интерфейсов.

Глава 2 «Определение устойчивого и тестируемого ядра приложения» показывает, как мощная модель Qt-объектов(особенно сигналы(signals), слоты(slots) и свойства(properties)) упрощает проектирование архитектуры приложения посредством четко определенных слоев(модулей; well-defined layers), и также упрощает написание краткого и повторно используемого кода(reusable code). В этой главе мы реализуем сценарии и бизнес-объекты, которые мы придумали в предыдущей главе, и узнаете об относительных достоинствах QML API- и C++ API-интерфейсов приложения для разработки из пакета Qt.

Глава 3 «Коммутация взаимодействия с пользователем и развертывание готового приложения» показывает, как добавить пользовательский интерфейс(UI-интерфейс; UI), поверх бизнес-логики, реализованной в предыдущей главе. «Мы показываем, как просто изменить технологию UI-интерфейса пользователя в зависимости от целевой платформы, не изменяя лежащую в нижнем слое логику. Мы также представляем платформа-специфичные инструкции, чтобы развернуть приложение на универсальных настольных ПЭВМ и мобильных устройствах.

Глава 4 «Изучение разметки компонентов с помощью инструмента макетов страниц» раскрывает гибкость фреймворка Qt Quick путем построения приложения, широко применяющего различные и динамичные методы расположения элементов. Мы исследуем модуль Qt Quick, рассматриваем QML Camera API-интерфейс приложения для разработчика и изучаем способ загрузки изображения из файловой системы в UI-интерфейс пользователя.

Глава 5 «Создание компоновщика сцены для исследования 3D-возможностей» погружает в Qt 3D, один из последних Qt UI API-интерфейсов приложения для разработчика для построения UI-интерфейсов пользователя. Мы строим UI-интерфейс пользователя, смешивая 2D- и 3D-объекты сцены и устанавливая и настраивая 3D-сцену, параметрами которой можно управлять через 2D-элементы(контролы) UI-интерфейса пользователя. Мы видим, как добавить и удалить 3D-модели из сцены, и как сохранить картинку текущей сцены с помощью всего нескольких строк кода.

Глава 6 «Создание осведомленного об объекте текстового редактора для записи диалогов» рассматривает создание нацеленного на производительность приложения с использованием виджетов Qt Widgets, набора мощных, ПЭВМ-ориентированных компонентов UI-интерфейса пользователя, покрывающих широкий диапазон потребностей. Мы пишем специализированный текстовый редактор с пользовательским выделением, подлежащего изменению контента, который может быть изменен и вводом текста и виджетами-контролами. Затем мы экспортируем форматированный текст в файл PDF-формата. В этой главе мы также представляем Qt-парадигму модель/вид(model/view).

Глава 7 «Отправление считанных данных датчика в устройство с приложением без графического UI-интерфейса пользователя» повествует, как создать приложение на базе командной строки, которое собирает универсальные считанные данные датчика и делает их доступными для других устройств через Bluetooth-соединение от устройства к устройству.

Глава 8 «Построение мобильной приборной панели для отображения в реальном времени считанных данных датчиков» повествует о разработке приложения, получающего считанные данные датчика, переданные в предыдущей главе и отображает их в привлекательных диаграммах посредством реализации QML UI-интерфейса пользователя с использованием модуля диаграмм Qt Charts.

Глава 9 «Запуск веб-сервиса и приборной HTML5-панели» показывает, как создать приложение, генерирующее псевдо-данные(fake data) датчика в течение долгого времени и предоставляет их через REST-веб-сервис. Мы разрабатываем расширенную версию приложения из предыдущей главы, с использованием модуля Qt WebEngine(Qt веб-движок), для отображения контента через веб-сокеты. Мы модернизируем его с помощью существующих JavaScript-библиотек диаграмм для отображения данных, чтобы гарантировать, что тот же HTML5 UI-интерфейс пользователя мог быть в будущем предоставлен через стандартный веб-браузер.

Приложение «Добавленные и предстоящие Qt-возможности» кратко представляет дополнительные важные функциональные возможности пакета Qt, которые не были упомянуты в проектах, а также недавние добавленные и предстоящие функциональные возможности, которые были представлены после пакета Qt 5.9 Long Term Support.

Что потребуется для работы с книгой?

Для чтения этой книги, я предполагаю, у вас уже есть базовое понимание структур распространённых данных и алгоритмов. Вы должны также быть знакомыми с принципами объектно-ориентированного программирования (object-oriented programming; OOP). Практическое знание языка C++11 требуется для всех проектов. Язык JavaScript 5 требуется для проектов, включающих код на языке QML. Эта книга явно не касается всех шагов, требуемых для Qt-дистрибуции и установки и работы IDE-среды разработки Qt Creator. Вы найдете много ресурсов, раскрывающих информацию о них в официальной документации на «пакет Qt, в других книгах издательства Packt, и во многих учебных руководствах доступный онлайн. Я просто покажу вам, где загрузить пакет Qt в нужное время. Книга базируется на пакете Qt 5.9 Long Term Support, так как на момент написания книги эта версия пакета поддерживается в течение самого долгого времени, как предполагает его имя. Однако любая более поздняя минорная версия пакета (5.x) будет совместима с кодом, показанным здесь.

Книга:

https://www.packtpub.com/product/qt-5-projects/9781788293884

Загрузка кода примеров для этой книги:

https://github.com/PacktPublishing/Qt-5-Projects

Загрузка цветных изображений для этой книги:

https://static.packt-cdn.com/downloads/Qt5Projects_ColorImages.pdf