Find online courses made by experts from around the world.
Take your courses with you and learn anywhere, anytime.
Learn and practice real-world skills and achieve your goals.
The course will span a total of 6 weeks with 12 different modules. Check the course syllabus below for details.
Karthik Duggirala (From CBTec Oy) is a seasoned software developer with over 8 years experience in developing applications for hand held devices ranging from the Nokia 770 internet tablet to the N9 (MeeGo).
Not for you? No problem.
30 day money back guarantee.
Learn on the go.
Desktop, iOS and Android.
Certificate of completion.
|Section 1: Overview of Qt|
This course spans for 6 weeks so basic idea is to complete two modules every week .
For Week 1 , we will be covering
So lets get started with the first module
he Qt SDK installer can be downloaded from here.(choose appropriate installer for your OS) This video is a step by step tutorial to help you set up the Qt development environment and to try and run your first Qt application
Now your development environment should be up and running , now you are all set to start by writing your first application in Qt.
This video is a short tutorial to write a simple Qt program and then try to walk through the code to understand as to what actually goes in the background.It also covers some information about the qmake utility tool.
My first Qt application
In this we will start with very basics of layouts we will use a horizontal layout and a vertical layout and will pack the UI widgets inside these layouts. We will then try out the Qt signals and slots feature.
At the end of this module you would have setup your development environment and would have written your first Qt application. You would have also understood the basic concepts of layouts and would have some idea about Qt's signal and slots feature.
If you are interested i would recommend that you follow the Qt Blog , as it's one place where you will find all Qt development posts from Qt Experts.
|Section 2: Object Models in Qt|
In this video we will try to look into Qt Basic Types and how Qt handles strings.
In this module we have learnt the internals of Qt Object model , how to create custom Qt signals and slots and how to have our custom type to integrate with Qt Object model such that it can be used as a parameter in signals and slots. We have looked into the moc tool and how Qt supports these features.
If you have any questions, please ask via the the forum.
Coding Task 1
|Section 3: Core Classes|
In this video we will try to look into Qt Basic Types and how Qt handles strings.
Qt Core Classes
Qt Container Classes
We will take a look at Algorithmic Complexity of Qt Containers in this video.
Know Thy Complexities! : Covers the space and time Big-O complexities of common algorithms used in Computer Science.
|Section 4: Qt UI - Widgets and Layouts|
Short introduction to Qt GUI
Introduction to Qt Widgets
Built In Qt Widgets - Lets go through the built in widgets provided by Qt
Qt Layouts - Intro on available layouts provided by Qt
Coding Task 2
|Section 5: Qt Application|
This tutorial explains how to use forms to build your graphical user interface using Qt Designer
This short tutorial on Model View Architecture
|Section 6: Qt IPC|
This short tutorial will explain the Qt IPC methods
Coding task 3
|Section 7: QML and Qt Quick|
Introduction to QML & QtQuick
QML - Basic Example
QML- Positioning of Items
QML - States & Transitions
QML - Key Input
QML - Model View Example
Coding task 4
|Section 8: Multithreading in Qt|
Short introduction to Threads in Qt
How to use threads in Qt
Qt - Move Object to Thread
|Section 9: Qt Network Programming|
Basic Introduction to Qt Network
Example - Qt program to shorten/expand url
Coding Task 5
|Section 10: Qt Webkit - Basic Intro|
Introduction to Qt WebKit
Example : A simple application to show Qt Webkit in action
Coding task 6
|Section 11: Mobile development using Qt|
In order to start development applications for Android , you first need to install the Android SDK along with some other packages. To begin with
These instructions are also available at Qt for Android - Getting Started
Once you have installed the Android SDK , you need to updated the SDK to install the API and tools packages.
In linux OS , you can launch the eclipse IDE that comes with the SDK and go to Window->Android SDK Manager
It should launch the UI and you should be able to install the required API and tools packages. Basically you need to choose
Android SDK Build Tools
Android 4.4.2 (API 19) (latest ) or other available options
Extras - You can choose your packages here
* If not with Eclipse , you can use the command line tool e.g in Ubuntu : ./android update sdk (android - can be found inside
After this the SDK manager install your packages and you should be ready to start development for Android ,
some more instructions you can find in the video below, these are to set the android SDK paths in QtCreator.
To install Qt libraries required by your Qt application you can either bundle the same with your apk or you can use Ministro (you can read about it here)
Please follow these instructions of How to install Ministro , on your device .
Qt and QML technologies are used by Jolla . If you want to work with Jolla , you can download the Jolla SDK and follow the instructions here to get started. The installations will be very much similar to QT SDK install , so it should go fine . If any questions please post to forum.
With permissions from the course creator of 'Become a Developer of SailFish OS' have attached a video which explains a example 'Hello World' application.
Dissecting Hello World - Jolla
|Section 12: Qt Graphics|
Final course project
CBTec is a company located in Finland, global leader in education, founded by Ex-Nokia and Meego veterans, offering high quality learning solutions and training courses. Under the vision on providing the best learning materials and strategies, we aim to democratize education with technology, applied to your business, studies and personal life.
8+ years of experience in conceptualizing , designing, prototyping, testing and development of products for mobile platforms .
Experience in working cross functionally with development, testing, build systems & product management teams for delivering products.
Expertise in the areas of data synchronization , PIM (Calendar & Contacts), Backup & Restore, E-Mail.
Experience in android applications development.
Experienced in different testing levels, Unit, Module, System Testing, Test Automation and Error Management.
Have the passion , commitment and motivation to take independent responsibility as well as ability to contribute and be a productive team member.
Possess good interpersonal and communication skills.
* Gdb/ddd, Eclipse, Svn, Git
* Certified on Scrum master role
September 2012 - Current (1 year and 8months)
Development of Eliademy (https://eliademy.com/ )
Integration with social networking sites (Facebook/Google+/LinkedIn) and third party applications.
Development of android client for eliademy.com.
August 2005 - December 2009 (4 years and 5 months)
Involved in developing of applications for Nokia devices.
Development of a music streaming client for the Nokia tablet.
Involved in development of the Camera application .
Development of Calendar and Synchronization application for N900.
Development of a utility tool for reporting bugs. Tool had the ability to take snapshots and video's and also collect the relevant system information to help analyze the bug.
Development of a automation test framework for UI test automation.
Development of utility applications for the N800 like email notifier, Tasks reminder, RC application for controlling the music player from phone etc
Worked with Clients to get a clear understanding of the requirements , co-ordinated requests between client and off site development team.
January 2010 - August 2012 (2 years and 8 months)
Development of Sync application for N9 . Was involved in the development of the sync framework , syncML stack and UI.
Involved in the development of the plugins for the sync framework which faciliated the syncing of device contacts, calendar , bookmarks and messages.
Development of account and custom sync plugins for syncing data with online services.
Development of Obex plugin to backup data with Nokia Desktop client.
Actively participated in resolving issues related to interoperability, data formats, UI flow & design.
Involved in maintainence of Backup & Restore client for the N9 device
Involved in development and bug fixing in QMF (Qt Messaging Framework).
Involved in the development of the test automation framework and automation of test cases
for the QMF.
Analyzing issues with power consumption for the applications and backend services which prevented device to go to low power mode.
Contributed to continuous SW quality improvement activities. Analyzing issues related to power consumption, memory management and benchmarking with other available solutions (sync).Provided visibility by reports and metrics.