Mobile Development with Qt for Symbian
Upcoming SlideShare
Loading in...5
×
 

Mobile Development with Qt for Symbian

on

  • 7,160 views

The long awaited port of Qt to the Symbian platform is set to be delivered later this year. In addition to being able to target a new platform, application developers will now be able to take ...

The long awaited port of Qt to the Symbian platform is set to be delivered later this year. In addition to being able to target a new platform, application developers will now be able to take advantage of new functionality in Qt to ensure their application integrates seamlessly with the underlying mobile operating system. This session features a brief introduction to the Symbian/S60 platform with a focus on mobile application development using Qt for the Symbian platform.

Presentation by Alessandro Portale held during Qt Developer Days 2009.

http://qt.nokia.com/developer/learning/elearning

Statistics

Views

Total Views
7,160
Views on SlideShare
7,085
Embed Views
75

Actions

Likes
5
Downloads
221
Comments
0

2 Embeds 75

http://www.slideshare.net 52
http://www.develer.com 23

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Mobile Development with Qt for Symbian Mobile Development with Qt for Symbian Presentation Transcript

    • Mobile Application Development with Qt for Symbian
    • Visit: bit.ly/qtsymbian ...get Qt for your phone Qt for Symbian:  bit.ly/qtsymbian
    • About Me Jason Barron Started Began in Switched to July, 2005 Support Development Qt for Symbian:  bit.ly/qtsymbian 3
    • About Me Alessandro Portale 09/02 – 01/07 02/07 – 03/08 04/08 – today Color management Qt tools Qt port to Symbian Qt for Symbian:  bit.ly/qtsymbian
    • Goal • Why use Qt for Symbian? • Learn what you need to get started. • Learn how to make great apps on Symbian. Qt for Symbian:  bit.ly/qtsymbian
    • Agenda • Getting Started • Application Development • UI Types • New “Mobile-esque” Features in 4.6 • Advanced integration Qt for Symbian:  bit.ly/qtsymbian
    • Why use Qt for Symbian? 1. Symbian is a relevant mobile platform. 2. Qt is an easy way to access Symbian. 3. Many of you already know Qt! Qt for Symbian:  bit.ly/qtsymbian
    • The Symbian Landscape Today S60 3.1, 3.2 S60 5.0 Symbian^1 S^2 S^3 S^4 Qt for Symbian:  bit.ly/qtsymbian
    • The Developer’s Shopping List SDK IDE Open C plugin (POSIX) Qt Qt for Symbian:  bit.ly/qtsymbian
    • Free Available From Binaries Can be used to compile Qt Apps WINSCW Yes Carbide.c++ Win32* Yes Yes GCC-E Yes S60 SDK ARM No** Yes (CodeSourcery) RVCT No ARM Ltd. ARM Yes Yes * Win32 binaries run in the Symbian Emulator ** Technically can compile Qt, but libraries containing WSD will not run Compilers Qt for Symbian:  bit.ly/qtsymbian
    • Agenda • Getting Started • Application Development • UI types • New “Mobile-esque” Features in 4.6 • Advanced integration Qt for Symbian:  bit.ly/qtsymbian
    • Demo Qt for Symbian:  bit.ly/qtsymbian
    • Application Development – From Scratch • Carbide's Qt project wizard • Editing the Ui Form • show(), showMaximized() or showFullScreen()? • Running the application in the emulator • Running the application on the phone Qt for Symbian:  bit.ly/qtsymbian
    • Demonstration Qt for Symbian:  bit.ly/qtsymbian
    • Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
    • Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
    • Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
    • Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
    • Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
    • Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
    • Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
    • Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
    • Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
    • Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
    • Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
    • Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
    • Adjusting the show() call Qt for Symbian:  bit.ly/qtsymbian
    • Adjusting the show() call Qt for Symbian:  bit.ly/qtsymbian
    • Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
    • Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
    • Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
    • Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
    • Building and deploying for the device Qt for Symbian:  bit.ly/qtsymbian
    • Command Line C:qt...analogclock> qmake C:qt...analogclock> make debug-winscw C:qt...analogclock> make release-gcce C:qt...analogclock> make release-armv5 C:qt...analogclock> make sis Qt for Symbian:  bit.ly/qtsymbian
    • Port an existing application • Original application on the Desktop • Carbide's Qt .pro file import • Running the application in the emulator • Desktop Ui vs. Mobile Ui Qt for Symbian:  bit.ly/qtsymbian
    • Carbide's Qt .pro file import Qt for Symbian:  bit.ly/qtsymbian
    • Carbide's Qt .pro file import Qt for Symbian:  bit.ly/qtsymbian
    • Carbide's Qt .pro file import Qt for Symbian:  bit.ly/qtsymbian
    • Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
    • Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
    • Desktop Ui vs. Mobile Ui Successful port? Qt for Symbian:  bit.ly/qtsymbian
    • Desktop Ui vs. Mobile Ui Mobile friendly Ui Qt for Symbian:  bit.ly/qtsymbian
    • Desktop Ui vs. Mobile Ui Including different Ui headers Qt for Symbian:  bit.ly/qtsymbian
    • Desktop Ui vs. Mobile Ui Instantiating and showing different Uis Qt for Symbian:  bit.ly/qtsymbian
    • Desktop Ui vs. Mobile Ui AppController knows the view as QObject that emits colorChanged() Qt for Symbian:  bit.ly/qtsymbian
    • Desktop Ui vs. Mobile Ui Both Uis emit a colorChanged() signal Qt for Symbian:  bit.ly/qtsymbian
    • Agenda • Getting Started • Application Development • UI Types • New “Mobile-esque” Features in 4.6 • Advanced integration Qt for Symbian:  bit.ly/qtsymbian
    • UI Types Qt for Symbian:  bit.ly/qtsymbian
    • Agenda • Getting Started • Application Development • UI Types • New “Mobile-esque” Features in 4.6 • Advanced integration Qt for Symbian:  bit.ly/qtsymbian
    • qmake Keywords • MMP_RULES • DEPLOYMENT • BLD_INF_RULES • ICON • TARGET • QMAKE_CXXFLAGS – .UID3 – .ARMCC – .EPOCHEAPSIZE – .WINSCW – .CAPABILITY Qt for Symbian:  bit.ly/qtsymbian
    • Input Method Hints … QWidget::inputMethodHints() const; void QWidget::setInputMethodHints(…); Qt for Symbian:  bit.ly/qtsymbian
    • Input Method Hints • Change Behavior: • Restrict Input: – Qt::ImhHiddenText – Qt::ImhDigitsOnly – Qt::ImhNoAutoUppercase – Qt::ImhFormattedNumbersOnly – Qt::ImhPreferNumbers – Qt::ImhUppercaseOnly – Qt::ImhPreferUppercase – Qt::ImhLowercaseOnly – Qt::ImhPreferLowercase – Qt::ImhDialableCharactersOnly – Qt::ImhNoPredictiveText – Qt::ImhEmailCharactersOnly • Masks: – Qt::ImhExclusiveInputMask Qt for Symbian:  bit.ly/qtsymbian
    • Soft keys QAction::setSoftKeyRole(…); …QAction::softKeyRole() const; enum SoftKeyRole { QAction::NoSoftKey, //(default) QAction::PositiveSoftKey, QAction::NegativeSoftKey, QAction::SelectSoftKey, } Qt for Symbian:  bit.ly/qtsymbian
    • Navigation Modes void QApplication::setNavigationMode(...); ... QApplication::navigationMode(); enum NavigationMode { NavigationModeNone, NavigationModeKeypadTabOrder, NavigationModeKeypadDirectional, NavigationModeCursorAuto, NavigationModeCursorForceVisible }; Qt for Symbian:  bit.ly/qtsymbian
    • Exceptions What happens if ‘new’ on line 4 throws std::bad_alloc? MyWidget::MyWidget(QWidget *parent) : QDialog(parent), label(new QLabel("Name?", this)), edit(new QLineEdit(this)), button(new QPushButton("Ok")) { setLayout(new QVBoxLayout); layout()->addWidget(label); layout()->addWidget(edit); layout()->addWidget(button); } Qt for Symbian:  bit.ly/qtsymbian
    • QScopedPointer Deletes it’s object when the scope terminates. class MyWidget: public QDialog { Q_OBJECT public: MyWidget(QWidget *parent = 0); private: #ifdef USE_SCOPED_POINTER QScopedPointer<QLabel> label; QScopedPointer<QLineEdit> edit; QScopedPointer<QPushButton> button; #else QLabel *label; QLineEdit *edit; QPushButton *button; #endif }; Qt for Symbian:  bit.ly/qtsymbian
    • Agenda • Getting Started • Application Development • UI Types • New “Mobile-esque” Features in 4.6 • Advanced integration Qt for Symbian:  bit.ly/qtsymbian
    • Event Dispatcher – Active Scheduler • Active objects can be used as normal ActiveScheduler Qt Qt for Symbian:  bit.ly/qtsymbian
    • Handling Symbian Leaves • QT_TRAP_THROWING – Converts leaves to exceptions • QT_TRYCATCH_ERROR – Converts exceptions to errors • QT_TRYCATCH_LEAVING – Converts exceptions to leaves Qt for Symbian:  bit.ly/qtsymbian
    • RWindow, CCoeControl and QWidget • QWidget::winId() – Returns a CCoeControl • Always window owning: CCoeControl *c = widget->effectiveWinId(); RWindow *rw = static_cast<RWindow*>(c->DrawableWindow()); Qt for Symbian:  bit.ly/qtsymbian
    • Thank You! Questions? Qt for Symbian:  bit.ly/qtsymbian
    • Reference • Download an SDK from: – Forum Nokia (http://forum.nokia.com) – Samsung Mobile Innovator (http://innovator.samsungmobile.com) – Symbian Foundation (http://developer.symbian.com) Qt for Symbian:  bit.ly/qtsymbian 62