Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-76014

Maintaining large scale QML projects​ is hard

    XMLWordPrintable

Details

    Description

      • Weak typing makes refactoring difficult​. "var" properties and variables can contain objects of any type at runtime. In order to figure out if such a property would be affected by a refactoring, the program itself would have to be run.
      • Each component imports its own version of all its dependencies. This makes it hard to centrally upgrade to a new version of some dependency. Furthermore, it's easy to introduce incompatibilities by importing different versions of the same component.
      • QML scoping rules can lead to unexpected side effects​. Names are implicitly looked up in certain parent scopes (but not all) if not found locally. The rules governing this are rather confusing. It's easy to accidentally use a property of the wrong object.
      • Integration with the C++ type system can be cumbersome​. You need to manually register all your types via qmlRegister* calls in some initialization routine. Optimally the registration parameters should be derived from the class declaration and the registration done in generated code.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              qt.team.quick.subscriptions Qt Quick and Widgets Team
              ulherman Ulf Hermann
              Votes:
              1 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes