Qt-contributors-summit-2014-Qs2014Android

From Qt Wiki
Jump to: navigation, search
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Android: Qt 5.4 and beyond

Qt 5.4.0

Major feature #1: Intents

  • «Intent» is the main IPC mechanism on Android.
  • One app can start another and pass data to it…
  • Either directly by specifying the package name
  • Or by URI to launch the default app for the type
  • Similar to iOS 8’s «extensions».
  • We want a cross-platform API in Qt.
  • Requires platform coordination.
  • Similar concepts on other platforms?

Discussion points

  1. There are two separate parts: outgoing intents and incoming intents
  2. Declaring that an app handles incoming intents is specified at build time
  3. The big unknown is how to do the data bundling – maybe we should use the MIME support that’s already there
  4. We need to create a cross-platform API
  5. What about WinRT?

Major feature #2: Native look and feel in Qt Widgets

  • Bring the Qt Widgets style to non-Ministro apps
  • New Qt Quick Controls style
  • Well underway already

Major feature #3: Native WebView

  • QWebEngine not possible on iOS
  • Even on Android, would make the app unfeasibly large
  • Make a small API on top of native APIs
  • Safari on iOS
  • Chrome on Android
  • Safari on OSX?
  • Explorer on Windows?
  • Fallback on other platforms: QWebEngine
  • Work done for Android
  • API still pending further discussion

Discussion points

We do it for iOS and Android first. Desktop platforms and WinRT later.

Some minor things:

  • Support qmlimportscanner in androiddeployqt
  • Finalize bearer management
  • Maybe: Notification on SD card removal
  • Some other things on our list have already been done:
  • Pregenerate assets cache
  • Refactor input methods API

Beyond 5.4…

  • Support listing used plugins in .pro file
  • Public Java APIs (must be stabile first)
  • Tool buttons in Action Bar
  • Support remaining sensors
  • Generic view container
  • Non-textured video
  • Configurable soft keyboard resize behavior
  • Multiple default fonts
  • Proper text selection support
  • Finger panning abstract scroll area
  • OBB Support

Similarly, for Qt Creator…

  • Expand AndroidManifest editor
  • Setting splash screen
  • Support for diagnostics tools (Valgrind, Gprof)
  • Easy integration of third-party libraries
  • Better support for editing Java code in an external Java IDE
  • OBB tooling

Discussion points

Generic, cross-platform configuration for AndroidManifest/info.plist? – spun off into separate session

Open Discussion

  • Openness and visibility of the development process
    • Most of the discussions happen on the #necessitas IRC channel
    • We should probably send out regular update reports
    • The Qt android development list was mainly for the initial Necessitas integration to Qt 5. We should try to use the Qt development list, since many of the issues are relevant for other platforms
  • Concerns about features exclusive to the commercial version of Qt