a
a_vlasov25 декабря 2022 г. 6:34

Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework

Распространена ли практика создания таких проектов: Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework?

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

11
Evgenii Legotckoi
  • 25 декабря 2022 г. 7:14
  • (ред.)

Не так сильно, как того хотелось бы.
Я попробовал некоторое время назад, но мне не понравилось.

Из затруднений было:

  • openapi generator не генерировал клиента, что попросту прибавляет много бесполезной работы
  • недостаточная поддержка функционала обращений к API мобильной платформы. При нативной разработке подобные вещи делаются в разы проще и быстрее.

В итоге на данный момент я остановился на Kotlin при изучении этого вопроса.

    a
    • 25 декабря 2022 г. 23:59
    • (ред.)

    Спасибо большое! Очень жаль. Какой тогда смысл мобильного направления в Qt, если поддержка связи с сервером через REST API такая неудобная? И такой вопрос вдогонку. Qt ведь ушел из России и когда вернется и вернется ли вообще неизвестно. Стоит ли тратить время на его изучение, ведь Qt это огромный целый мир?

      Evgenii Legotckoi
      • 26 декабря 2022 г. 11:14
      • (ред.)

      Какой тогда смысл мобильного направления в Qt, если поддержка связи с сервером через REST API такая неудобная?

      Вы меня об этом спрашиваете? Лучше этот вопрос задать разработчикам Qt.

      Но моё личное мнение такое. Само по себе мобильное направление жизнеспособно, но входной порог значительно выше. А бизнесу обычно нужно быстрое развитие и быстрая разработка. Бизнесу мало интересно на чём будет разрабатываться приложение, которое приносит деньги.
      Я сейчас занимаюсь изучением Kotlin и разработка движется значительно быстрее, несмотря на то, что там для меня вообще всё в новинку, а с QML у меня есть достаточно большой опыт работы. И тем не менее на Kotlin некоторые задачи удаётся решить быстрее.

      И такой вопрос вдогонку. Qt ведь ушел из России и когда вернется и вернется ли вообще неизвестно.

      А как же импортозамещение, которое будет банальным воровством с переклеиванием шильдиков? Все поделки на основе линукса будут упираться в быструю разработку, а только Qt позволяет делать это действительно быстро. В общем, стало труднее, но может иметь смысл изучать, особенно если будете искать работу за рубежом. Разработчики медицинского оборудования например сидят на Qt.

      Опять же, если вы интересуетесь именно финансовой стороной вопроса для обеспечения своего личного благополучия, то тогда лучше выбирать Kotlin/Java. Если интересен полный фулстек по мобильной разработке, то Kotlin/Java/Django/Python. И Kotlin движется в сторону кроссплатформенной разработки, но пока за удобство работсы с iOS я ничего не скажу, не пробовал ещё.

        a
        • 26 декабря 2022 г. 13:42
        • (ред.)

        Спасибо за развернутый ответ! Ну да, на счет поделок на основе линукса Вы точно сказали. Наша мобильная платформа OS Аврора - яркий пример такой поделки и там как раз C++Qt основная технология для создания приложений.

          a
          • 4 января 2023 г. 12:40
          • (ред.)

          Добрый вечер, Евгений! Такой вопрос. Возникла задача: написать пользовательский интерфейс на С++Qt к базе данных PostgreSQL (создание, чтение, обновление, удаление, фильтрация и поиск записей). В Qt есть классы для работы с базой данных, но не хотелось бы делать прямые запросы к ней, т.к. предполагается использовать этот пользовательский интерфейс за пределами локальной сети, в которой находится сервер. Возможно ли использовать для этого REST API Django, чтобы данные от БД к C++Qt-приложению передавались по http/https-протоколу?

            Evgenii Legotckoi
            • 4 января 2023 г. 15:23

            Добрый день. Если у вас изначально проект на Django с PostgreSQL, то особых проблем составить не должно.
            Со стороны Django используйте Django Rest Framework, делайте нормальное Rest API. Со стороны Qt/C++ можете воспользоваться QNetworkAccessManager и распарсить ответы с помощью QJsonDocument.
            Также можете попробовать сгенерировать клиента для Qt5 с помощью openapi generator . Для этого нужно будет настроить генерирование swagger документации из вашего API, и скормить полученный yaml файл генератору. Но успех не ясно какой будет, я махнул рукой на Qt в этом случае. Но Swagger всё равно полезен. Используйте для его генерирования батарейку drf-yasg

              a
              • 4 января 2023 г. 23:56

              Спасибо за ответ! Да, проект на Django/PostgreSQL, потому что в кратчайшие сроки нужно было создать программу для пользователей, чтобы они могли заносить данные. Конечно, логичнее всего было бы создать фронт-энд к проекту Django на JS с его реактами или ангулярами, но к JS у меня как-то не лежит душа. Хотелось бы развиваться в технологиях C++/Python, потому что рано или поздно захочется чего-то такого, "настоящего", "С/C++-ного".

                a
                • 9 апреля 2023 г. 5:11

                Евгений добрый день! Такой вопрос. Имеется клиентская часть приложения на C++Qt и серверная часть на Django. Django может осуществлять Email-рассылки, а также генерировать Excel-файлы. Возможно ли сделать так, чтобы давая в клиентской части команду, Django делал рассылку и генерировал Excel-файлы?

                  Evgenii Legotckoi
                  • 16 апреля 2023 г. 4:07

                  Да, это возможно. Но подобные вещи лучше запускать через celery. То есть drf принимает команду, и после этого регистрирует задачу в celery, котроый уже асинхронно всё это выполняет. В противном случае при очень длительной задаче сервер может выдать ошибку по таймауту

                    a
                    • 14 апреля 2024 г. 6:41

                    Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C++Qt/QML?

                      Evgenii Legotckoi
                      • 2 мая 2024 г. 14:07

                      Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.

                        Комментарии

                        Только авторизованные пользователи могут публиковать комментарии.
                        Пожалуйста, авторизуйтесь или зарегистрируйтесь
                        1
                        • 12333
                        • 18 июля 2024 г. 15:34

                        Qt - Тест 001. Сигналы и слоты

                        • Результат:63баллов,
                        • Очки рейтинга-1
                        1
                        • 12333
                        • 18 июля 2024 г. 15:25

                        C++ - Тест 005. Структуры и Классы

                        • Результат:50баллов,
                        • Очки рейтинга-4
                        AM

                        C++ - Тест 005. Структуры и Классы

                        • Результат:33баллов,
                        • Очки рейтинга-10
                        Последние комментарии
                        d
                        dblas55 июля 2024 г. 21:02
                        QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                        k
                        kmssr9 февраля 2024 г. 5:43
                        Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                        АК
                        Анатолий Кононенко5 февраля 2024 г. 12:50
                        Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                        EVA
                        EVA25 декабря 2023 г. 21:30
                        Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                        J
                        JonnyJo25 декабря 2023 г. 19:38
                        Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                        Сейчас обсуждают на форуме
                        F
                        Fynjy22 июля 2024 г. 14:15
                        при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
                        BlinCT
                        BlinCT25 июня 2024 г. 11:00
                        Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
                        Evgenii Legotckoi
                        Evgenii Legotckoi25 июня 2024 г. 1:11
                        добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                        BlinCT
                        BlinCT5 мая 2024 г. 15:46
                        Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
                        Evgenii Legotckoi
                        Evgenii Legotckoi3 мая 2024 г. 0:07
                        Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.

                        Следите за нами в социальных сетях