There have been some very neat releases as of late in the mobile world. Jolla is trying to keep the momentum that Nokia built with Meego by releasing a UI named Sailfish. Mozilla has put forth a plan for its Firefox OS. The one that I have chosen to follow though is the release of Ubuntu Touch. This wasn’t always the case. I was first going to stick with Jolla and Sailfish. I did this because the reason I got into mobile devices in the first place was QML. Well Nokia threw away the whole Qt developer base it had built to bed down with Microsoft. Jolla was offering a way to keep coding in QML, but to be honest it has been hard for me to follow what they are doing. I don’t even know if I would even be able to get a phone here in the USA that runs Sailfish. Once I saw Ubuntu Touch in action and that they are promoting coding QML with QtCreator I knew I had found my new home.
With my new home found it was time to get the SDK going. Now normally I am a Windows guy. Ouch, easy on the insults. I have 2 PCs running at home. My main computer runs Windows 7 and my old one runs Windows 8. Yeah the old one is running the newer OS. Anyway. I decided to run Ubuntu in a VM on my 7 machine. Don’t try this, it didn’t go so well with running Qt Creator. Next move was to dual boot my 8 machine. So I go and grab the iso for Ubuntu 12.04 because it is the latest LTS. The install goes just fine and the machine is dual booting with the greatest of ease. Problem solved? Nah. That was too easy. For some reason the Qt-Ubuntu-Components and the latest QtCreator with Qt5 don’t like 12.04. I got a slew of errors trying to get QtCreator to install and run. Well with that in mind I tried doing an updated to 12.10. That didn’t go well at all. So I installed 12.10 from the iso. Once 12.10 I did these commands.
Once that was done I install QtCreator. I thought I was done and ready at that point. When I fired up QtCreator though I received a bunch of errors about plugins not loading correctly. I was lucky enough to stumble upon this post showing me to run
This has fixed my last problem. I am happy to report it is all up and running. I ready to start diving into QML again after a too long of break. In the coming posts I will hopefully show what great things have changed since I last coded in it. I already seem some drastic improvements from before.
Here are a couple of pages with just about the same instructions on how to get QtCreator with the Ubuntu SDK on your machine.
Fortunately at my primary job I was able to get buy-in on my proposal to finally move off of the our current horrific CMS (here is my full write-up on all of my complaints about Hannon Hill’s Cascade Server) and move everything to WordPress. It’s going to be an amazing example of the power of WordPress and how it can really makes things a lot simpler for everyone involved with the backend all the way to the end users. I’ll definitely put up a post about the benefits and everything involved with out transition once that project is farther along.
Unfortunately, this also bit me in the ass as one department here had already signed a contract to have a marketing firm redesign their website and that firm was one of the most incompetent web firms I have ever seen. They hardcoded things into the theme by page name where it wasn’t needed making it impossible to add sections without modifying the theme directly as well as even hardcoded things into plugins making them un-upgradable. I have a giant list of the completely idiotic things this firm did that proved they had no clue how to work with WordPress but I’ll just let that go.
I’ve never really felt a need to have a tablet. I’ve had an iPad around from basically the time they came out at work and it was never more than a giant Angry Birds player. I’d see others using theirs and anything they did other then games I already did with my laptop (and better because tablets aren’t really good devices for creating content.)
Lately though I’ve been working on a couple different projects that are mainly for end user consumption so I had been kicking around the idea of trying to make sure they work well on tablets as well. Overall I’m going to be doing most of my dev as “web apps” and not as native apps but I’d still like to be able play around with the native side. When most tablets were $400+ I didn’t really feel the need to get one, but with Amazon and BN both putting out cheaper ones I thought maybe I should give them a look. While normally I’d probably go for the Amazon model, I decided to give the Nook Tablet a try for a couple reasons I’ll get into here in a sec. Overall I’m pretty happy with it and am glad I bought it. Look forward to spending more time with it but here is my initial reactions.
]Coming from a non-programming background sometimes leads me to be intimidated just by the thought of something that appears to be complex. One of those ideas was transitions. QML has the ability to provide the programmer with a range of different transitions to allow their app to be very fancy/professional looking. Once I really sat down and saw what it took to do a transition I was amazed on how simple it really was.
There are two steps to making a transition happen. The first step is setting the states of the object in question. In this example I am going to show you how to make a rectangle move off the screen. So let’s go ahead and set the states right now. For the states what you are going to declare are the properties that will be changing during the transition.
When I first received my N950 from the Qt Ambassadors program I was super excited to get my apps running on it that I had written in QML in Qt Creator. Because of the multi-platform functionality of Qt Creator it only took a day to download the new SDK and compile my apps for MeeGo 1.2 Harmattan. It installed without a hitch, but there were two small problems. There was an annoying toolbar at the bottom of the app that was empty and also they were locked in landscape mode. This needed to be fixed. The fix I learned is a simple, yet not highly documented, fix in PageStackWindow.
When Nokia came out with MeeGo 1.2 Harmattan they released some Nokia specific APIs so that all applications that run on their phones could have the same outer look and feel. The way they pulled this off was introduce Page, PageStack, PageStackWindow and PageStackWindowStyle elements.
Let’s start with PageStackWindow. The PageStackWindow is at the heart of the all these new elements. Here is Nokia’s documentation about it. I started a new main.qml file and input this.
The thought of MeeGo has been around a good long while now. In my opinion it has the potential to be the biggest mobile OS out there, but only time will tell that. With Nokia introducing the N9 though there has been an increase in development community activity. One of the things pushing this is that Nokia put MeeGo 1.2 right in their nice Qt SDK. Following on Twitter I have seen mixed messages on if getting all the correct components to compile in MeeGo 1.2 is easy or not. I dove into this the other night in anticipation to getting my apps ready, and I tell you what, it wasn’t the easiest install I have ever done. Here are the steps to get your Qt app into MeeGo 1.2
First I uninstalled all other versions of Qt Creator/Qt SDK that were already on my system. I wanted to have no interference what so ever. I then went and installed the Qt SDK from here. This takes a lot of time. Well I’m sort of impatient so this is all relative. After the install open the SDK Maintenance program that came with Qt Creator. This helps you find out if anything as been updated. There are two tabs in this program. Go to the tab that talks about packages. Select everything! That is the key to getting MeeGo. It also gives you Maemo if you still care about that great system. When you hit next that is the other time suck. This will take a while.
Alrighty we are in the home stretch now boys and girls. Whenever I get a new SDK I start over with my programs. I always hit New and then just paste the code I have written before in the new QML file that is created for me. This way I know all the .pro and .cpp files have all the appropriate material. So with my new program all ready to go I hit run for MeeGo. It told me that the QEMU wasn’t running and it would start it for me. But the emulator never started. I also noticed that the emulator button at the bottom left of the screen was greyed out. I knew this wasn’t good. Turns out I had to go into Projects and select MeeGo 1.2 for the Run because they have multiple MeeGo Harmattan compilers in the Qt SDK. Once I specifically set the MeeGo 1.2 the emulator started right up and ran my app. I hope this helps at least one person in their quest to build apps for MeeGo!!
My buddy Rahsaan was having a problem getting his group feeds to show up with a tool he had found to bring his Flickr feeds onto his website. He was able to get his public feed feed to work fine but not groups. I threw him a bone and helped him figure it out. I didn’t find a quick answer with a Google Search so I decided to put up a quick post with how I did it so hopefully others looking for this answer find it quickly and save some time.
The tool he was using is called jFlickrFeed and I didn’t see a simple answer in their documentation. Luckily whomever developed it did the right thing and made it really simple to pass the correct variables for the group feed so this is a simple change to get working. Here is the main example and the change needed to get it working.
With QML being such a young language in Qt there are still a lot of questions and tweaks that are happening. There are also a lot of features that people want, but aren’t included. From going through the different forums one of the options that I have seen brought up multiple times is to have the ability to drag and drop list delegates. By just saying it, it makes sense, but since it isn’t a built in option it is not super easy to implement. Now I love a good challenge as much as the next person, so I took it upon myself to get this done. It is a lot of code for something that sounds simple. There are two things currently “flawed” with this, but I thought I would at least get it out there so others could see how I did it. Maybe they can make it better and complete it. Here is the full code. It is nasty long, for that I apologize. Click on the name of the code boxes to see the code inside. First I will post the whole code then I will break it down to explain what I have done in each section.
I hadn’t really planned on posting another article this soon, but I feel I should write about the command – console.log. console.log is an extremely powerful command that is easy to forget and is possibly not widely known about. For both of those reason I am pushing this post out today. For those who don’t know what it is, console.log() is a command that will not effect your program, but will spit information out to you at the bottom of QtCreator. This gives you the ability to see what is going on behind the scenes.
I was recently working on a drag with a rectangle that had some math involved. I thought for sure I had the equation written perfectly, but sadly what I was trying to do wouldn’t work. The odd thing to me though was the program wasn’t throwing any errors. OK I have no errors yet it isn’t working. Now what do I do? Then I remembered console.log(). I stuck this into my code within a MouseArea and found immediately what my problem was.
which I seem to see a lot on Twitter. Being pretty tight with the Twitter API I always forget that others might not know how easy it is to get data off Twitter to use yourself. So I threw together this example real quick and figured I’d share for others with similar problems. Feel free to copy this Google Doc I’m sharing and use how you please. If you think of anything cool that I might have missed please share in the comments.
Rahsaan Taylor: +Richard Orelup saves my ass yet again. Thanks for the help with the jQuery. I would call you an expert or a wizard or something to annoy you, but instead I'll just say thanks for the help.