Archive for the ‘Programming’ Category

Tip of the day – Make Qt Creator to compile QML files to resource file on every build

Thursday, August 4th, 2011

I like to distribute my QML application so that everything comes with a single binary executable. In practice this means that I have defined that all my QML files are compiled into binary using Qt’s resource compiler. Resource system in Qt is quite nice, but there is annoying bug in Qt creator. Sometimes it doesn’t recompile resources even though I have modified a QML file. This means that you need to select “Clean” and “Build” from Qt creator in order to get modifications compiled. This takes time.

Some time ago, I figured out a workaround for this. You can add a custom build step to your Qt Creator’s project. This build step modifies e.g. an image that is included the project and then resources are recompiled. Here’s a screenshot how you can do it.

Custom build step to make rcc run every time you compile.

I added the custom build step to the first (touch quickflickr.png) and when my project is being compiled it notices that some of the resources have changed and it runs resource compiler too. This is far from an elegant solution, but at least it works for me and I don’t need to run “Clean & Build” which takes for ever. At least, it feels so after you have recompiled your project for the 10th time.

UPDATE: I thought, that there would have been a bug about this but couldn’t find a onet from Qt’s issue tracker so I created a new one: QTCREATORBUG-5743.

I hope this trick will help some one else too. Thanks for reading my blog and thanks for Bale to encourage me to write this “tip of the day” post. Cheers!

FoodGarden – My First iOS Application

Monday, July 11th, 2011

My last post about iOS application development was based on my experiments of developing FoodGarden – a shopping list and recipe application. I will release FoodGarden via d-pointer in Apple’s AppStore, hopefully quite soon. This blog post is a short introduction for the application. Let’s watch the video first.

I wanted to keep the video short and present the most of the functionality what you can do with the app. I left the boring section out i.e. adding bunch of recipes, items and sections, which you can use when creating shopping lists and recipes.

I’ve been using FoodGarden as my shopping list application lately and it seems to work pretty well. At least I haven’t found any critical bugs or annoying features.

(more…)

iOS Development from Qt Developer’s Point of View

Saturday, July 9th, 2011

I’ve been a lazy blogger lately, but it doesn’t mean that I haven’t been doing anything. Actually, I’ve done quite a lot lately. I’ve started to educate myself to iOS development. Don’t get me wrong. I haven’t changed the camp from Qt development to the iOS development, but I think it’s just a sane move to do something completely different to keep mind open and to learn new things.

As I’ve mentioned in my earlier posts, I also own Mac and iPhone, so I thought that I should try code something for iPhone. This blog post is about my thoughts what it takes to start coding on iOS operating system and what it requires if you are coming from Qt world.

DISCLAIMER: This blog post might contain errors related to iOS and Objective-C because I’m really newbie in that area. Please feel free to comment if you notice any errors in the text.

The First Challenge – Objective-C

Actually the first challenge is that if you don’t own Mac, you need to buy a new computer first because iOS development can only be done on  Mac. If you happen to own Mac, then you just need to install XCode with iOS SDK which can be downloaded from http://developer.apple.com.

The real first challenge is the Objective-C programming language. I’ve coded only using C, C++, QML, Java, Python, but never using Objective-C. The syntax looks really weird like [myObject doesSomething: parameter1 andDoesSomethingMore: parameter2]. I am also lazy in a sense that, if I need to learn new things, I get bored quite fast if I can’t try things in practice soon. Instead of starting to read Objective C manuals from Apple site, I googled a bit and found this useful document: From C++ to Objective-C written by Pierre Chatelier. That piece of paper was really useful to get fast into a Objective-C world and to understand that weird syntax.

(more…)

Unit Testing, a Blessing or a Curse?

Sunday, October 3rd, 2010

At first I want to say, that I truly believe that it’s really important to understand unit testing and how to implement a good unit test. I’m not a unit test puritan or a professional in that area, but I think it’s very unprofessional to be a software developer without any knowledge of unit testing and how to implement a unit test.

What is this article about?

I decided to write this article because unit testing is important part of a software process. Sometimes it’s clear for a developer how to write a test for a module and sometimes it really gives you a head ache.

My humble opinion is that it’s really important to know where to draw a line what is worth to test with unit tests and what parts of a module can be left without. I know the previous sentence made unit test puritans to scream, but this article is also criticism agains unit test blindness that I have encountered in software projects during my career.

Before we start, let’s take a look at few definitions for unit testing.

(more…)

FREE QtQuick and KDE Plasma event, Sep 7th in Helsinki

Monday, August 16th, 2010

I will promote Cybercom’s FREE QtQuick & KDE Plasma event because I’m partially responsible of it. As you may have noticed, I like Qt so therefore I’m very glad that my employer is willing to pay all the fun:)

The event will be September 7th in Technopolis, Ruoholahti, Helsinki, Finland.

So first of all, there will be kick ass speakers: Alexis Menard, one of the developers behind Qt Quick and Marco Martin, who is responsible of what happens in Plasma Netbook project. Here are the videos that Alexis and Marco have made about their presentations:

Alexis Menard:

Marco Martin:

The Idea of the Event

The idea of the event is to have interesting topics, good speakers and to let the audience to participate in the event. Yes, if you have a Qt based, especially Qt Quick based project, you can demo it in the event. Don’t forget to mention that in “request invitation form”. So basically we are “spreading the word of Qt” and we want you to be part of it.  You can checkout the agenda from here: http://www.cybercomchannel.com/?page_id=187

Remember that the event is FREE, but you must request an invitation there. We wanted to keep it that way because the amount of seats is limited. You can request an invitation from here: http://www.cybercomchannel.com/?page_id=175.

If you want to demonstrate your project, then you have a bigger change to get invited. Of course we want to get there as many people as we can fit in the room.

Another way how we want audience to be involved in, is to have discussion there. Yes, you can ask questions, raise some issues if you have found something that might be problematic or just give feedback how do you feel about Qt Quick or Plasma.

Of course you are also welcome to the event if you are just interested in Qt and what’s happening in the Qt world. You don’t need to be hardcore developer or developer at all.

Let’s hope that we will see there bunch of people and will will have a good event.