Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
John Kern
Member of Technical Staff
Symbian Foundation
A brief history of Symbian
The People
Technology Management
Release and deployment
Marketing
Governance
Resources - http://developer.symbian.org
source
documentation
Symbian OS - state of the art
kernel
real time
multithreading
SMP-ready kernel
security
server architecture
http://developer.symbian.org/wiki/index.php/Symbian_OS_Internals
Qt Evolution
Qt
Web runtime
Flash
python
J2ME
Good time to develop for Symbian
Pain points go away.
Custom widgets
Learning curve
Focus on innovation, not infrastructure
Pain Points?
Qt
descriptors => QString
TRAP/Leave => C++ exceptions
Active Object => signals/slot
sqlite3
webkit
Open C - provides a posix layer.
Example - Hello World
menu bar
list widget
menu item on Options
double click on list item.
Signals/Slots
list of birds
Double click?
List
birds << "Avocet" << "Sparrow" << "Crow" << "Sea gull" << "Kookaburra";
birdList = new QListWidget;
setCentralWidget(birdList);
birdList->addItems(birds);
connect(birdList, SIGNAL(itemDoubleClicked ( QListWidgetItem * )),
this, SLOT(displayBird(QListWidgetItem *)));
three lists
best
ok
worst
Tab Widget - construct
//best choice
this->bestList = new QListWidget;
this->bestList->addItems(this->fishDb->getBest());
this->tabWidget->addTab(this->bestList, "best");
// ... omitted ok and worst lists.
QWebView
html
drive by SQLite
SQLite - connecting to the DB
QSqlDatabase db;
QString dbFile=QDesktopServices::storageLocation(QDesktopServices::DataLocation)
+ '/' // Qt Universal file separator
+ "seafood.db";
dbFile.replace("/","\\");
QFile f(dbFile);
db.setDatabaseName(dbFile);
// Open databasee
if(!db.open())
SQLite - query
QString detailsInHtml;
QSqlQuery query;
if (!query.exec()) {
QString errCode = "failed to get eco details " + query.lastError().text();
qWarning(errCode.toStdString().c_str());
} else {
detailsInHtml.append("<html> <title>name</title> <body> <h2>Eco Details</h2> <ul> ");
while (query.next()){
detailsInHtml.append( " <li>");
detailsInHtml.append( query.value(0).toString());
detailsInHtml.append( "</li> " );
}
detailsInHtml.append("</ul> </body> </html> ");
...
QTableView
....
Where to go from here?
Download Qt Creator
http://qt.nokia.com/