diff options
Diffstat (limited to 'doc/src/platforms/blackberry.qdoc')
-rw-r--r-- | doc/src/platforms/blackberry.qdoc | 514 |
1 files changed, 0 insertions, 514 deletions
diff --git a/doc/src/platforms/blackberry.qdoc b/doc/src/platforms/blackberry.qdoc deleted file mode 100644 index 53a1d86c0..000000000 --- a/doc/src/platforms/blackberry.qdoc +++ /dev/null @@ -1,514 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 BlackBerry Limited. All rights reserved. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page blackberry_support.html - \title Qt for BlackBerry 10 - \brief Provides information about BlackBerry support in Qt. - - Qt for BlackBerry allows to run Qt 5 applications on devices with BlackBerry - 10 or later. BlackBerry 10 uses QNX as base OS, so Qt on BlackBerry 10 and Qt - on QNX share the same code base. - - Development of Qt applications for the BlackBerry 10 platform is possible using - the BlackBerry Native Development Kit. It contains the Momentics IDE along with - a cross compiler toolchain and packaging and deployment tools. - After setup you can opt for development with Qt Creator, command line tools or the - Momentics IDE. - - The following topics provide more details about how to use Qt for BlackBerry: - \list - \li \l{Getting Started with Qt for BlackBerry 10}{Getting Started} - \li \l{Qt 5 on BlackBerry 10} - \li \l{Building Qt 5 for BlackBerry 10} - \li \l{Deployment on BlackBerry 10} - \li \l{Platform and Compiler Notes - BlackBerry}{Platform Notes} - \endlist -*/ - -/*! - \page blackberrygs.html - \title Getting Started with Qt for BlackBerry 10 - \brief Provides instructions to install and configure your development environment. - - \section1 Development with Qt for BlackBerry 10 - Development of Qt applications for the BlackBerry 10 platform is possible using the - \l{https://developer.blackberry.com/native/}{BlackBerry Native Development Kit}. - First versions of NDK contained both, the Momentics IDE as well as the NDK itself. - In recent releases, developers have to download the - \l{https://developer.blackberry.com/native/downloads/}{Momentics IDE} - first, which then installs the NDK and simulator packages. Every NDK package includes - a cross compiler toolchain, plus packaging and deployment tools, basically all you - need for development. - - \section1 Initial Preparation - \section2 Get a BlackBerry ID - - The BlackBerry ID is used as an identity reference and is necessary to register as a - developer and use the device in developer mode. You can - \l{https://blackberryid.blackberry.com}{create a BlackBerry ID online}. - If you already use a BlackBerry device, you should have a BlackBerry ID, as well. It is - the same ID used in BBM or to download apps from BlackBerry World. If you have such - an ID you can use it to get a BlackBerry ID token for development. - - \section2 Get the Momentics IDE - - First - \l{https://developer.blackberry.com/native/downloads/}{download the Momentics IDE}, - set it up and download an NDK with appropriate API level, see this - \l{https://developer.blackberry.com/native/documentation/cascades/getting_started/setting_up.html} - {article} - for more details. - - \section1 Setup - - \section2 Enable the Development Mode on the Device - Make sure your device is connected to your computer. - Switch on \b{Development Mode} in \e{Settings -> Security and Privacy -> - Development Mode}. - - \section2 Install Momentics - - Install the Momentics IDE by executing - \badcode - cd ~/Downloads/ - chmod +x momentics-<your-version>.bin - ./momentics-<your-version>.bin - \endcode - - Install the suggested API level. Other API levels can be added - \l{http://developer.blackberry.com/native/documentation/core/com.qnx.doc.ide.userguide/topic/update_ndk_ide.html} - {later}. - Select \e{Manage Devices} from the \e{Devices} drop-down menu. Create and Download the - BlackBerry ID token needed for deployment and testing. Enter your company name and choose a - password. Log in with your Black Berry ID and password in the pop-up window. Click \e{Next} - and \e{Finish} to generate a debug token and deploy it to your device. - - Qt Creator 3.0 and later support the BlackBerry ID token and debug token management as well. - - \section1 Verify Your Setup with a Sample App - \section2 In the Momentics IDE - Select a sample application in the Momentics IDE and click Download and Import. This will - download the sample and create a new project. Hit the green play button in Momentics to - run the application on your BlackBerry 10 device. The application will now start on your - BlackBerry 10 device. - - \section2 In Qt Creator - See the - \l{http://wiki.qt.io/Qt_Creator_with_BlackBerry_10}{article} - Qt Creator with BlackBerry 10. Qt Creator 2.7 and later contain a plug-in which integrates - the BlackBerry 10 NDK and its tools into the development process as it is know to Qt - Creator users. - - \section1 Simulator - You can download the Simulator from the Momentics IDE via the \gui{Devices} menu. Select - \gui{Manage devices} from the main toolbar in Momentics and switch to the Simulator tab. - The Simulator is available as separate download. For more details, see the this - \l{https://developer.blackberry.com/devzone/develop/simulator/}{article} - on the developer page. Installing the Simulator is optional. You most probably will test - and deploy applications on a BlackBerry 10 device directly, but sometimes using the Simulator - is more convenient. It also allows testing of your app on a configuration of a device which - you do not have. - - If you work on the command line and use Qt 5.2 or later you have change the CPUVARDIR - environment variable to switch to Simulator as target: - \badcode - export CPUVARDIR=x86 - \endcode - - Going back to the device target: - \badcode - export CPUVARDIR=armle-v7 - \endcode - - Certainly you have to re-run qmake each time you change CPUVARDIR. - - Note: You need to have VMware Player installed on your machine to run BlackBerry 10 Simulator. -*/ - -/*! - \page blackberryqt5.html - \title Qt 5 on BlackBerry 10 - \brief Provides instructions how to use Qt 5 on BlackBerry. - - Currently, Qt 5 is neither included in the BlackBerry 10 device software nor in the - BlackBerry 10 SDK. Nevertheless, Qt 5 on BlackBerry 10 can be used for developing - and publishing applications to BlackBerry World. - - There are currently two options how you can use Qt 5 on BlackBerry 10: - \list - \li Use a binary overlay to add Qt 5 to an NDK installation - \li Make and use a custom Qt 5 build - \endlist - - See sections below for more details. - - \section1 Using a Binary Overlay to Add Qt 5 to an NDK Installation - Pre-built Qt 5 for BlackBerry is provided as a Qt Project delivery. The packages are available - \l{http://qtlab.blackberry.com/downloads/ndk_10.2.0_overlay/qt521_20140317/} - {here}. - The overlay gives you a prebuilt and tested package and saves the time for building - Qt 5 from scratch. - - Please go through the README to learn how to install and use the packages. The provided - packages require the 10.2 Gold version of the BlackBerry 10 Native SDK. After the - installation, Qt 5 is automatically recognized and configured in Qt Creator 3.0 (and later) - and can be immediately used for application development. - Even though you do not need an own build, you still need to pay attention to a few details - described on this page. - - Note: The overlay packages are not a part of the official NDK distributions by BlackBerry, - but as an add-on provided by the Qt Project. Be aware that you cannot mix Qt 5 code with - Cascades application framework APIs based on Qt 4.8. The Momentics IDE currently does not - support Qt 5 development. - - \section1 Make Custom Qt 5 Builds - - \list - \li Please make sure your working environment is set up: - \l{Getting Started with Qt for BlackBerry 10}{Setup for BlackBerry 10 development} - \li Build Qt 5 for BlackBerry 10: \l{Building Qt 5 for Blackberry 10} - \endlist -*/ - -/*! - \page blackberrybuild.html - \title Building Qt 5 for BlackBerry 10 - \brief Provides instructions how to build Qt 5 for BlackBerry. - - \section1 Setting up the Environment - - See \l{Getting Started with Qt for BlackBerry 10}{Setup for BlackBerry 10 development} - for the introduction and further instructions. - - \section1 Getting the Source - - The approach we will take is to do an in-source build of the Qt 5 repositories that are - needed but to install them to a custom directory (\e{$HOME/development/qnx/qt5} in the - following example). Please also note that we clone and build git submodules separately. - This procedure is different to the builds for desktop platforms and allows to include - only those submodules which are relevant. Please adjust the paths to suit your setup as - needed. - - First create a directory to hold the source code: - \badcode - cd $HOME/development - mkdir qt5 - cd qt5 - \endcode - - The following repositories are used in regular builds for BlackBerry 10 in - \l{http://qtlab.blackberry.com/}{BlackBerry’s public CI}: - \list - \li qtbase - \li qtxmlpatterns - \li qtsensors - \li qtdeclarative - \li qtmultimedia - \li qtgraphicaleffects - \li qtconnectivity - \li qtquickcontrols - \endlist - - This matches all essential modules, plus several add-on modules. QtWebKit is currently not - a part of the regular builds. Still, it is possible to build it, see - \l{http://wiki.qt.io/Building_QtWebKit_for_Blackberry} - {Building QtWebKit for Blackberry} - - Other repositories known to build: - \list - \li qt3d (optional, provides 3D scenes using QML) - \li qtscript (optional, only needed when using the qtquick1 submodule) - \li qtlocation - \endlist - - Then clone: - \badcode - git clone git://gitorious.org/qt/qtbase.git - git clone git://gitorious.org/qt/qtxmlpatterns.git - git clone git://gitorious.org/qt/qtsensors.git - git clone git://gitorious.org/qt/qtdeclarative.git - git clone git://gitorious.org/qt/qtmultimedia.git - git clone git://gitorious.org/qt/qtgraphicaleffects.git - git clone git://gitorious.org/qt/qtconnectivity.git - git clone git://gitorious.org/qt/qtquickcontrols.git - \endcode - - \section1 Building qtbase - - The process of building Qt 5 for BlackBerry devices is very similar to building it for any - other platform so it is worth having a quick read through the generic instructions for - building Qt 5 before proceeding. - - Be sure that you have configured your environment to use the BlackBerry 10 NDK - (source the bbndk script on Linux for instance). This especially concerns setting - the right values in $PATH to pickup tools and the cross-compile tool-chain - provided in the NDK. - - \section2 Linux and OS X - - First we need to configure Qt. - - The examples below show a minimal set of configure options. You can see the full set of - configure options used in the \l{http://qtlab.blackberry.com/}{BlackBerry’s public CI} - in the raw console output of the \c qtbase build. - See this \l{http://qtlab.blackberry.com/job/qt-5-qtbase-stable/}{link} and then open the - raw \e{Console Output} for the last successful build for ARM or for x86. - \badcode - cd qtbase - ./configure -prefix $HOME/development/qnx/qt5 -xplatform blackberry-armle-v7-qcc -opengl es2 -nomake examples -nomake tests -opensource -confirm-license -release - \endcode - - Afterwards we simply build it by calling make and make install. - \badcode - make -j<N> - make install - \endcode - - where \c{<N>} is the number of parallel make jobs to run. This is often set to \c{<No. of CPU cores + 1>}. - - \section2 Windows - \badcode - C:\dev> cd qtbase - C:\dev\qtbase> configure -prefix C:\dev\qt5install -xplatform blackberry-armle-v7-qcc -opengl es2 -nomake examples -nomake tests -opensource -confirm-license -release - \endcode - - If you want to work with the HTTPS protocol, add the \c{-openssl} option. - - \section2 OS X - - This is almost the same as on Linux: - \badcode - $ cd qtbase - $ ./configure -prefix $HOME/development/qnx/qt5 -xplatform blackberry-armle-v7-qcc -opengl es2 -nomake examples -nomake tests -opensource -confirm-license -release -no-neon - \endcode - - After this process, you should have a basic Qt 5 installation located in \c{$HOME/development/qnx/qt5} - or in \c{C:\dev\qt5install}, depending on your operating system. - - You may now either move on to building your applications or continue here to install - some additional git submodules to gain access to additional features of Qt 5. - - \section1 Building Other Modules - - If you want to build additional git submodules, make sure to do this in the right order, - because some git submodules depend on each other. - - To build additional git submodules we need to use the qmake from our new Qt 5 installation - so we adjust the PATH environment variable accordingly: - - \b{Linux and OS X}: \c{export PATH=$HOME/development/qnx/qt5/bin:$PATH} - - \b Windows: \c{C:\dev> set PATH=C:\dev\qt5install\bin;%PATH%} - - Now for each of the additional git submodules that you wish to build, do the following: - - \section2 Linux and OS X - \badcode - cd <sub_module_name> - qmake - make -j<N> - make install - \endcode - - \section2 Windows - \badcode - C:\dev> cd <sub_module_name> - C:\dev\submodule> qmake - C:\dev\submodule> mingw32-make -j - C:\dev\submodule> mingw32-make -j install - \endcode -*/ - -/*! - \page blackberryappdeploy.html - \title Deployment on BlackBerry 10 - \brief Provides instructions how and deploy applications on BlackBerry. - - Generally, this topic is well explained in the BlackBerry 10 documentation for native - application development. - - \section1 Application Packaging - The page - \l{https://developer.blackberry.com/native/documentation/core/qt_package_deploy.html} - {Packaging, deployment and distribution} - is a good introduction to the tools and how to use them. In short, applications are packaged - in so called BAR files which are zip archives that contain additional meta-information. - - \section1 Blackberry Application aRchive (BAR) Descriptor File - A part of this meta information is the content of the - \l{https://developer.blackberry.com/native/documentation/core/com.qnx.doc.native_sdk.devguide/topic/c_about_bar_app_descriptor_file.html} - {BAR application descriptor file} - which is an XML file. This file describes the content of the package and where this content - can be found. Other important meta-information is defined in this file, as well. - - Qt Creator has an editor for the BAR application descriptor files which simplifies quite - some manual editing. - - The content of the package may also include images, sounds and any other data files used by - the application in addition the the binary. - - See - \l{https://developer.blackberry.com/native/documentation/core/com.qnx.doc.native_sdk.devguide/topic/r_blackberry_tablet_dtd_intro.html} - {full list of all elements in a BAR application descriptor file} - - \section1 blackberry-nativepackager - Application packages are created by the command line tool \b{blackberry-nativepackager} - provided in the BlackBerry 10 NDK. This tool reads a BAR application descriptor file passed - as an argument and builds the application package accordingly. - - Application packages can be built in development mode or can be built as signed packages. - Development mode applications require a \b{debug token} and can be installed and run on any - device with the same debug token as they were build with. - - Signed packaged are usually used for publishing in BlackBerry World. They can also be - installed from the command line on any device in development mode and do not need a debug - token. - - \section1 Where do the App Resources Land on the Device - - \section2 Handling the Sand Box - Each application is installed in its own home folder on a dedicated partition. Shared folders - (those which contain data to be shared between apps) are mapped according to permissions - requested so that the app can access them under the standard paths. An important thing to - keep in mind is that all applications can access files only within the boundaries of - their \e sandboxes. When the app asks to access shared data, according folders become - available in app’s sandbox as well. See - \l{https://developer.blackberry.com/native/documentation/cascades/device_platform/data_access/file_system.html} - {Working with the file system} - for an overview of all sub-folders for different purposes in app’s home folder. - - Applications cannot directly access any files outside their sandboxes. Even though it is - possible to package and deploy libraries with the application, it is not possible to deploy - any libraries into the system folders. Applications cannot share their libraries with other - applications either. - - \section2 Packaging and Accessing the Files - Even though the article - \l{https://developer.blackberry.com/native/documentation/cascades/device_platform/data_access/file_system.html} - {Working with the file system} - explains how the sandbox model influences file access, it might not be clear from the - beginning how paths can actually be referred in the application code. - - This line is the universal way to add any other content to the app package: - \badcode - <asset path="<local_path_to_files>/<local_file_name>"><on_device_path_to_files>/<on_device_file_name></asset> - \endcode - - or even shorter: - \badcode - <asset path="<SOURCE>"><TARGET></asset> - \endcode - - Lets assume you have an app which loads an image with Qt Quick . The application code is - located in the subfolder \e test_assets in your \e projects folder. The following line - adds this image to the BAR application descriptor file: - \badcode - <asset path="/Users/johndoe/projects/test_assets/qt-logo.png">qt-logo.png</asset> - \endcode - - You also have to add QML files: - \badcode - <asset path="/Users/johndoe/projects/test_assets/qml">qml</asset> - \endcode - - Note that we used absolute paths in the above examples, though relative paths - work, as well. - - The key thing to know here is that the app installation folder is mapped to the folder - \e app/native in the application working directory (referred by QDir::currentPath(), - for example a \c . folder in the BAR application descriptor file maps to the \e{app/native/}. - folder. Our app would be installed for example in: - \badcode - /accounts/1000/appdata/com.example.test_assets.testDev_test_assetscd80795f - \endcode - - The \e qt-logo.png lands here: - \badcode - /accounts/1000/appdata/com.example.test_assets.testDev_test_assetscd80795f/app/native/qt-logo.png - \endcode - - The \e qml folder will be recursively copied to - \badcode - /accounts/1000/appdata/com.example.test_assets.testDev_test_assetscd80795f/app/native/qml/ - \endcode - - Our app has only one QML file which lands here: - \badcode - /accounts/1000/appdata/com.example.test_assets.testDev_test_assetscd80795f/app/native/qml/main.qml - \endcode - - This QML code loads the image in \e main.qml as: - \code - Image { - source: "../qt-logo.png" - anchors.centerIn: parent - } - \endcode - - Notice the \c ../ in the front of the file name. This is because the current folder of a Qt - Quick element is where its file was loaded from. We load \e main.qml this way: - \code - int main(int argc, char *argv[]) - { - QGuiApplication app(argc, argv); - QQmlApplicationEngine engine; - engine.load(QUrl(QStringLiteral("app/native/qml/main.qml"))); - return app.exec(); - } - \endcode - - \c Image assumes it is located in \c{app/native/qml/} and so needs to get one level up to get - to \c app/native/qt-logo.png. - - One more thing to notice: the article - \l{https://developer.blackberry.com/native/documentation/cascades/device_platform/data_access/file_system.html} - {Working with the file system} - also talks about a dedicated \e{assets directory}. This is a bit confusing, since the \e asset - XML element in the BAR application descriptor file can refer to any file, but the - \e assets directory refers to the asset URI scheme in the Cascades framework. - Using Cascades UI components you can load image as: - \code - ImageView { - imageSource: "asset:///image.png" - } - \endcode - - \section2 Prefer Using the Qt Resources - Using Qt resources (via the \c{qrc://} scheme) for all small read-only files and especially - for QML code files is a more preferred and convenient way! Accessing assets as files makes - only sense for large read-only files or files which will be changed/created by the app. - - \section2 Viewing the Folders on the Device - In some cases, it might be needed to inspect the actual content of the folders directly on - the device. You can do this in an SSH shell in the File Inspector in the Momentics IDE. - The article - \l{http://wiki.qt.io/BlackBerry_Hints_n_Tips}{BlackBerry Hints and Tips} - shows how to use SSH with BlackBerry 10 along with - a few other hints and tips. - -*/ |