a
a_vlasovDec. 25, 2022, 6:34 a.m.

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

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

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

11
Evgenii Legotckoi
  • Dec. 25, 2022, 7:14 a.m.
  • (edited)

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

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

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

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

    a
    • Dec. 25, 2022, 11:59 p.m.
    • (edited)

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

      Evgenii Legotckoi
      • Dec. 26, 2022, 11:14 a.m.
      • (edited)

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

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

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

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

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

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

        a
        • Dec. 26, 2022, 1:42 p.m.
        • (edited)

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

          a
          • Jan. 4, 2023, 12:40 p.m.
          • (edited)

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

            Evgenii Legotckoi
            • Jan. 4, 2023, 3:23 p.m.

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

              a
              • Jan. 4, 2023, 11:56 p.m.

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

                a
                • April 9, 2023, 5:11 a.m.

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

                  Evgenii Legotckoi
                  • April 16, 2023, 4:07 a.m.

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

                    a
                    • April 14, 2024, 6:41 a.m.

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

                      Evgenii Legotckoi
                      • May 2, 2024, 2:07 p.m.

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

                        Comments

                        Only authorized users can post comments.
                        Please, Log in or Sign up
                        Дмитрий

                        C ++ - Test 004. Pointers, Arrays and Loops

                        • Result:60points,
                        • Rating points-1
                        Дмитрий

                        C++ - Тест 003. Условия и циклы

                        • Result:92points,
                        • Rating points8
                        d
                        • dsfs
                        • April 26, 2024, 2:56 p.m.

                        C ++ - Test 004. Pointers, Arrays and Loops

                        • Result:80points,
                        • Rating points4
                        Last comments
                        k
                        kmssrFeb. 9, 2024, 5:43 a.m.
                        Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                        Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                        EVA
                        EVADec. 25, 2023, 9:30 p.m.
                        Boost - static linking in CMake project under Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                        J
                        JonnyJoDec. 25, 2023, 7:38 p.m.
                        Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                        G
                        GvozdikDec. 19, 2023, 8:01 a.m.
                        Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                        Now discuss on the forum
                        G
                        George13May 7, 2024, 10:27 a.m.
                        добавить qlineseries в функции в функции: "GPlotter::addSeries(QString title, QVector &arr)" я вызываю метод setChart(...), я в конструктор передал адрес на QChartView элемент
                        BlinCT
                        BlinCTMay 5, 2024, 3:46 p.m.
                        Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
                        PS
                        Peter SonMay 4, 2024, 3:57 a.m.
                        Best Indian Food Restaurant In Cincinnati OH Ready to embark on a gastronomic journey like no other? Join us at App india restaurant and discover why we're renowned as the Best Indian Food Restaurant In Cincinnati OH . Whether y…
                        Evgenii Legotckoi
                        Evgenii LegotckoiMay 3, 2024, 12:07 a.m.
                        Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.
                        IscanderChe
                        IscanderCheApril 30, 2024, 2:22 p.m.
                        Во Flask рендер шаблона не передаётся в браузер Доброе утро! Имеется вот такой шаблон: <!doctype html><html> <head> <title>{{ title }}</title> <link rel="stylesheet" href="{{ url_…

                        Follow us in social networks