Qt для мобильной кросс-платформенной разработки

Original author: Ekkehard Gentz
  • Translation
Хотелось бы представить размышления Ekke Gentz по применению Qt 5.6 в кросс-платформенной мобильной разработке. Также можно будет посмотреть видео с выступлением Ekke на MobileTechCon (на английском). Ниже идёт перевод заметки.

Возможно вы знаете, что моя основная деятельность это разработка бизнес приложений для BlackBerry 10. Но так как BlackBerry PRIV работает под управлением Android 5.1.1 (и ожидается 6.0), то пользователи просили меня выпустить кросс-платформенные приложения, работающие под BlackBerry 10, Android и iOS (а позже и Windows 10). Я не любитель веб- или гибридных приложений и предпочитаю разработку нативных программ. С другой стороны я не очень то хочу разрабатывать приложения для всех платформ нативным, но различным способом при помощи разных языков программирования, сред разработки и т.д.

Моя разработка для BlackBerry 10 ведётся в Cascades UI Framework с использованием QML для описания UI и C++/Qt 4.8 для программного кода, работы с сетью и т.д. Мне на самом деле очень нравится этот подход для разработки сложных графических интерфейсов с QML.

Qt 5.6 вышел буквально на прошлой неделе и я провёл несколько тестов. Qt 5.6 содержит ознакомительную версию qt.labs.controls предоставляющую все необходимые средства управления UI, которые требуются для мобильных приложений. Также там есть Google Material и Microsoft Universal Style позволяющие изящно управлять внешним видом. Новые средства управления устраняют все сложности предыдущего Qt Quick Controls 1 и обработка событий теперь выполняется в C++ (в Cascades всегда так было). Начиная с Qt 5.6 HDPI поддерживается для всех доступных платформ. Все эти технические новинки, а также новое Startup / Indie Dev предложение побудило меня начать кросс-платформенную разработку с Qt. Но использование коммерческой лицензии не обязательно — существуют варианты использования Open Source лицензии даже не делая своё собственное приложение открытым. Qt существует более 20 лет и это свободное и открытое ПО.

Qt позволяет повторно использовать код для кросс-платформенной разработки:



Моё выступление на MobileTechCon прошло удачно, и позже стала доступна запись. Выступление было на немецком, и я получил обращения с просьбами о выпуске английской версии, поэтому я подготовил перевод слайдов и сделал английский вебкаст онлайн:



Также автор оригинального поста обещает опубликовать серию заметок с более подробным описанием деталей и советами по началу работы с Qt.
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 20

    +2
    Видео на английском на полтора часа — это прекрасно, но что оно делает на Хабре с плашкой "перевод"?
    В самом тексте ничего нового не увидел, чейнжлог по 5.6 и то содержит гораздо больше полезной информации.
      0
      Видео же переведено с немецкого на английский. Кому-то и changelog достаточно почитать, а для кому-то интересно мнение профессиональных разработчиков почитать. Тем более, что в заметке говорится о BlackBerry Cascades, чего в changelog Qt нету.
        +1
        Видео же переведено с немецкого на английский.
        Английский, конечно, доступнее немецкого, но Хабр все-таки русскоязычный ресурс, и формат статьи-перевода предполагает подачу информации именно на русском.

        Кому-то и changelog достаточно почитать, а для кому-то интересно мнение профессиональных разработчиков почитать.
        Почитать мнение профессиональных разработчиков, да еще и на русском — интересно, потратить полтора часа с сомнительной перспективой — не очень.

        Если бы вы посмотрели видео, вытащили самое ценное и записали, проиллюстрировали слайдами из оригинальной презентации — была бы действительно статья.
      0
      Огромное спасибо! А где можно посмотреть больше примеров с Qt.labs.controls?
        0
        Вот тут можно пару примеров найти
          +2
          Извиняюсь теги пропали вот "сырая" ссылка: https://doc-snapshots.qt.io/qt5-5.7/qtlabscontrols-examples.html
            0
            Спасибо! Выглядят новые контролы отлично, но многого, как я понимаю, еще нет. Например, не нашел главного меню и компонента для отображения таблиц.
          +1
          "Но использование коммерческой лицензии не обязательно — существуют варианты использования Open Source лицензии даже не делая своё собственное приложение открытым."
          Расскажите плиз кто знает, что для этого надо? когда разбирался в лицензиях вроде понял что можно, если линковать так, чтобы сама qt лежала отдельно. так ли это? как использовать qt без комерческой лицензии не открывая код? (и можно ли)
            0
            Я всегда считал, что использование Qt под LGPL позволяет выбрать любую лицензию на своё собственное приложение (т.е. не открывать исходный код).
              0
              а какие тогда ограничения накладывает LGPL вообще?
                0
                Насколько я понимаю, LGPL требует открытия исходного самого Qt. Это в случае, если вы Qt модифицировали. Коммерческая лицензия позволяет не открывать исходный код как вашего приложения, так и Qt.
                  0
                  Т.е. в среднестатистическом случае, если я не изменяю код QT я могу линковать как угодно, не указывать что это сделано на qt, не открывать исходники и распространять платную версию своего софта? как-то слишком хорошо, чтобы быть правдой..=)
                    0
                    Я этого не говорил. Я сказал, что можно не открывать код своего собственного приложения в случае использования Qt LGPL. Вопрос платности/бесплатности софта GNU LGPL не закрывает, главное чтобы исходники GPL/LGPL были доступны. Можно ли не указывать, что софт сделан на Qt — не знаю, да и, на мой взгляд, нет особого смысла это скрывать. На счёт линковаться как угодно тоже не скажу, раньше считалось, что можно линковаться только с разделяемыми LGPL библиотеками, но есть мнение, что и со статическими можно. Возможно есть нюансы при использовании LGPL 3. Кстати, можно задать вопрос в техническую поддержку Qt, они в т.ч. и на русском общаются.
                      0
                      Да, надо будет на выходных поресерчить этот вопрос)
                      Спасибо за комментарии
                        0
                        Обязательно по результатам оставьте коммент, буду искренне благодарен
                        0
                        Со статическими можно, да. При условии, что вы предоставляете свою программу в виде объектных файлов, которые можно будет самостоятельно слинковать с LGPL-библиотекой.
                          0
                          Из чего это следует? GNU *GPL местами неочевидная. Если дадите ссылочку, где объясняется именно этот момент, то было бы полезно для общего развития.
            –2
            Шуфутинский Белый!
              –2
              Да ну, что никто "Властелин колец" не смотрел и никто сходства не замечает? Пятница же!

            Only users with full accounts can post comments. Log in, please.