Sviluppare applicazione Qt su iOS.

qt-logoIl Framework Qt è il più interessante di sempre. La versione 5.1 BETA si porta con se, in preview, il porting delle applicazioni su piattaforma iOS e Android. L’opportunità è decisamente allettante anche perchè ho trovato un po’ ostico l’apprendimento di Objective-C (estensione Pure Object Oriented della programmazione C). Ho l’impressione che il C++ (estensione Hybrid Object Oriented) risulti essere un’estensione molto più naturale.

La compilazione delle Qt per iOS la predisporrei, comunque, su un sistema già in grado di effettuare l’installazione delle applicazioni sul dispositivo iOS (vedi post precedente) .

Nel sistema ho già installato Qt SDK (cartella $HOME/Developer/Qt5.1b) al quale affiancherò le versione di sviluppo per iOS; una verisione compilata per il simulatore (compatibilità binaria i386) ed una versione compilata per il dispositivo (compatibilià binaria ARM v7). La guida di JuttingBytes è estata essenziale per raggiungere l’obiettivo di veder girare una mia applicazione Qt su iOS.

1) Compilazione Qt per il simulatore iOS (i386)

$ cd ~/Developer
$ git clone git://gitorious.org/qt/qt5.git qt-ios-simulator
$ cd qt-ios-simulator/
$ perl init-repository
$ cd qtbase
$ git checkout dev
$ ./configure -xplatform unsupported/macx-ios-clang -developer-build -opensource -confirm-license -nomake examples -nomake tests -release -sdk iphonesimulator
$ make -j24
$ cd ../qtscript
$ ../qtbase/bin/qmake
$ make -j24
$ cd ../qtquick1
$ ../qtbase/bin/qmake
$ make -j24

2) Compilazione Qt per il device iOS (ARMv7)

$ cd ~/Developer
$ git clone git://gitorious.org/qt/qt5.git qt-ios-device
$ cd qt-ios-device/
$ perl init-repository
$ cd qtbase
$ git checkout dev
$ ./configure -xplatform unsupported/macx-ios-clang -developer-build -opensource -confirm-license -nomake examples -nomake tests -release
$ make -j24
$ cd ../qtscript
$ ../qtbase/bin/qmake
$ make -j24
$ cd ../qtquick1
$ ../qtbase/bin/qmake
$ make -j24

Ora ho tre framework pronti per la compilazione delle applicazioni Qt; l’originale che produce applicativi per Mac OS X, ed i due appena compilati in grado di compilare applicativi rispettivamente per il simulatore iOS (i386) e per i device iOS (ARMv7). Ognuno dei tre framework si porta in dote un proprio qmake. Il primo è quello di riferimento per il quale ho impostato i percorsi (PATH$) e le variabili d’ambiente necessarie per l’utilizzo da linea di comando (terminale, BASH). Viene quindi spontaneo creare degli alias agli altri qmake all’interno della cartella BIN del framework di riferimento chiamandoli, appunto, qmake-ios-simulator e qmake-ios-device. La sequenza logica per sviluppare sarebbe:

  1. utilizzare  QtCreator per lo sviluppo della propria App
  2. esportare il progetto, nel formato XCode, da linea di comando, tramite il tool qmake-ios-xxxx.
  3. compilare l’applicazione in XCode, testarla sul simulatore o creare il pacchetto (payload) di installazione (.IPA)
  4. caricare il pacchetto di installazione sul dispositivo tramite iTunes o iFunBox.

Un esempio pronto all’uso ( copia locale di qt-ios-demo.zip):

$ cd ~/Developer/Code
$ git clone git://github.com/msorvig/qt-ios-demo.git
$ cd qt-ios-demo
$ qmake-ios-simulator
$ open qt-ios-demo.xcodeproj

L’utilizzo di qmake-ios-simulator comporta che l’applicativo verrà fatto girare sul simulatore altrimenti avrei dovuto utilizzare il qmake-ios-device.