View
85
Download
0
Category
Tags:
Preview:
DESCRIPTION
Qt for Android (and Symbian). Tam Hanna tamhan@tamoggemon.com @tamhanna. About /me. Tam HANNA CEO, Tamoggemon Ltd. Runs web sites about mobile computing Writes scientific books. Overview. Qt for Android (focus) Qt for Symbian MeeGo TiZen webOS Wrap-up. What is Android. - PowerPoint PPT Presentation
Citation preview
Qt for Android (and Symbian)
Tam Hanna
tamhan@tamoggemon.com
@tamhanna
About /me
• Tam HANNA– CEO, Tamoggemon
Ltd.– Runs web sites about
mobile computing– Writes scientific books
Overview
• Qt for Android (focus)
• Qt for– Symbian– MeeGo– TiZen– webOS
• Wrap-up
What is AndroidWhat is Android
Largest mobile OS by share
Android
iOS
BB
Symbian
Windows
Linux
Data: IDC 2012, Market Share Q3
Android is open
• Runs ANY app– If user enables it– 50 000 app stores
• No permission model– User is NOT root
Android is Java
• Apps run in special VM called DALVIK– Pretty high performance
• But: NDK is available– Allows use of C++ code
Android is „fragmented“
• Many vendors– Different form factors
• Many stores– Many back-ends
• Analyst buzzword– Low practical relevance – like PalmOS
Qt for Android
Community-driven port
• Started by Bogdan Vatra– 2011
• „Aquired“ by KDE– Provides server infrastructure, etc
• No support from Nokia– Digia mentioned in press release
LightHouse
Getting startedGetting started
Supported platforms
• Linux (Ubuntu 10.4 +)
• Mac OS
• Windows
• Speaker recommends: Linux
Getting started
• Install Ant 1.8 and OpenJDK
• sudo apt-get install ant
• sudo apt-get install openjdk-6-jdk
Graphical set-up
• http://necessitas.kde.org/necessitas/necessitas_sdk_installer.php
• chmod +x linux-online-necessitas-alpha4.1-sdk-installer
• sudo ./linux-online-necessitas-alpha4.1-sdk-installer
Automatic deployment
• Tool fetches SDK• „One Click Install“
Starting Necessitas
• tamhan@ubuntu:~$ cd NecessitasQtSDK/
• tamhan@ubuntu:~/NecessitasQtSDK$ cd QtCreator/
• tamhan@ubuntu:~/NecessitasQtSDK/QtCreator$ cd bin
• tamhan@ubuntu:~/NecessitasQtSDK/QtCreator/bin$ sudo ./necessitas
Internal architecture
Library versioning
• Qt is updated frequently– Legal reasons– Downward compatibility is pretty good
• Qt is large– 7MB binary, or more– Memory is limited
Solution: Ministro
• Sits in app stores
• Auto-downloads libraries to device
Overview
GUI sniffing
GUI sniffing - II
Input
Project-speficic settings
Configure baseline
Application optics
Permissions
Permissions - II
• Signify what app does
• Help user decide
Libraries
Signing
Signing - II
• Android Signing verifies producer
• This binary is from workstation A
• NO rights / trust transfer except for update
Library management
Porting gotchasPorting gotchas
Definitions
File includes
• All include paths are based on /.pro
Includes
• #include <qDebug>
• #include <QDebug>
gcc gotchas
Specific eekers
• Native code bits?
• Platform-specific files
• .pro.user files
• Soft keys?
Why develop for Symbian
• Symbian is DEAD
• But: devices still in circulation– Top especially in Latin America
Development options
• Carbide– Eclipse-based– Mature IDE– Limited to 4.6.3– Can not debug well
• Qt Creator– Decent integration– Debugs well– Qt SDK auto-deploys
toolkit
Ovi Store - I
• Ovi Store can drive huge volume– 1 million downloads => no issue
• VERY low conversion rates– 1:1000 or less
Ovi Store - II
• Limited device reach for Qt content
• Not every Qt-capable device is enabled
• Forget Ovi for China– 3 cents / Dollar
Ovi Store - III
• DL/t for game
Ovi Store - III
• DL/t for app
MeeGo
Dead platform
• N900 and N9 sold decently well– Few thousand technically savvy users
• Jolla plans Chinese device
• But: good tooling
TiZen
What is it?
Will it be in v1?
• SDK for V1 is said to be web-only
• However, Qt is used internally
• C/C++ runtime might be around (bada)
webOSwebOS
Why develop for it?
• Not dead yet– GRAM– Cooperation with LG planned
• Unofficial Qt port
• http://www.webos-internals.org/wiki/HowtoQt
ConclusionConclusion
Mobile is fragmented
• Multiple platforms– Battle for mindshare and – Winner is yet undecided
• C++ is common base line– C++ is everywhere– Even on iOS and Windows Phone 8
Mindshare is everything
Qt saves time
• Develop once, deploy multiple times– Increase mindshare– Increase market presence– More revenue
• Worst case: redo GUI with QML
Recommended