PDA

View Full Version : [Under consideration] An easy way for a Windows user to start developing in Qt for Maemo 5


Sasler
2009-10-23, 11:50
http://maemo.org/community/brainstorm/view/an_easy_way_for_a_windows_user_to_start_developing _in_qt_for_maemo_5/?solution=single_install_script_for_vm_and_maemo_s dk

Currently there doesn’t seem to be an easy way to start developing in Qt for Maemo 5. Yes, Qt Creator is available for Windows and it works well. But if you want to develop for Maemo 5, most of the solutions seem to point at Linux. While this makes sense to a certain extent – after all, Maemo is based on Linux – Qt should be cross platform, thus one should be able to use Windows in a relatively painless way.

The fact is that Windows is the most used OS in the world, no matter how bad or good it is. Therefore there are a lot of Windows developers in our planet. Some of these might find it interesting to try to develop something for Maemo. And since Qt seems to be the future for Maemo platform, at least according to Nokia, it would make sense to have something to make it possible.

While for the professional developer it might be enough to just have some documentation how to set up a VM developing environment, this could be too complicated for an occasional coder. Let us not forget how easy it is to set up Visual Studio.

arpwatch
2009-10-23, 12:17
Setting up VMWare and installing a linux distribution is too difficult? Who the heck are these coders?

I'll make a deal with anyone in that situation. I'll walk the coder through installing vmware and ubuntu, and in turn they can teach me how to code for maemo.

Sasler
2009-10-23, 12:44
Setting up VMWare and installing a linux distribution is too difficult? Who the heck are these coders?

I'll make a deal with anyone in that situation. I'll walk the coder through installing vmware and ubuntu, and in turn they can teach me how to code for maemo.

Ah, but you seem to forget that one of the most basic traits for the vast majority of humans is laziness! :D

Then there is the simple fact, at least for an occasional amateur coder, that if setting up the system takes too long or is complicated, the original enthusiasm might die out quickly. ;)

gecebekcisi
2009-10-23, 12:49
I support the idea, but I don't think someone with ability to code for Maemo would let his/her enthusiasm die out quickly because of that (at least mine didn't die when I had to deal with that disk image just to take a look at Maemo environment)

SubCore
2009-10-23, 12:53
https://garage.maemo.org/projects/vpc-sdk

doesn't get much easier than that...

lcuk
2009-10-23, 12:53
Setting up VMWare and installing a linux distribution is too difficult? Who the heck are these coders?

I'll make a deal with anyone in that situation. I'll walk the coder through installing vmware and ubuntu, and in turn they can teach me how to code for maemo.

arpwatch,
those coders are just like me - visual basic (or similar) developers who are used to having everything around them.
having you available to setup a one time installation is nice, but it is not the same as having a reproducable environment for coding whenever the OS gets rebuilt or they are on a different machine etc.

I found a way to code happily from windows (or linux or mac) without scratchbox or serious tooling on my desktop.
I just make the tablet itself contain the compiler and -dev libraries I require (a simple C based SDK) and use scp and ssh to copy files and kickoff the compiler and stuff.
it has its issues, but I code everything quickly and easily whilst KNOWING its working because I'm running directly on the device.
it more than proves the concept and scratches my itch for simple coding in maemo without fuss (building packages is a minor hiccup)

qt needs to be this simple.

Sasler
2009-10-23, 12:55
I support the idea, but I don't think someone with ability to code for Maemo would let his/her enthusiasm die out quickly because of that (at least mine didn't die when I had to deal with that disk image just to take a look at Maemo environment)

But what about someone with the ability to code in C++ and .Net or even Qt, but does not have any experience of Maemo?

Also, would you not have preferred an easier way to look at the Maemo environment without the need to deal with disk image? ;)

Sasler
2009-10-23, 12:59
https://garage.maemo.org/projects/vpc-sdk

doesn't get much easier than that...

This does look very interesting. :) I had no idea that this existed... :o

Texrat
2009-10-23, 13:50
As a long time Windows developer who thrives in Visual Studio here's my 2 cents:

I want a Maemo GUI development environment that runs natively under Windows and can fully emulate a Maemo device with no desktop Linux involvement whatsoever.

Why? Laziness for one, as was noted above-- but also to pull in potentially thousands of developers who really don't care what OS is on a mobile device as long as they can develop for it using tools and environments with which they are familiar. This way we really facilitate inclusion... and may just win over a few OSS converts along the way.

I have been begging Nokia for such a solution for 2 years. I hope it's close...

FYI: Symbian has had this for years.

Sasler
2009-10-23, 13:58
I want a Maemo GUI development environment that runs natively under Windows and can fully emulate a Maemo device with no desktop Linux involvement whatsoever.[/B].

I like this idea a lot. Maybe it should be added as a solution?


FYI: Symbian has had this for years.

Yeah, but the last time I tried to use it, it was really complicated and all I got was a headache. :D Then again, it was may two years ago or more...

Texrat
2009-10-23, 14:04
Yeah, I can add that as a solution.

gecebekcisi
2009-10-23, 14:09
But what about someone with the ability to code in C++ and .Net or even Qt, but does not have any experience of Maemo?

Also, would you not have preferred an easier way to look at the Maemo environment without the need to deal with disk image? ;)

I only made an objection to a relatively small point you made while I was also saying that I'm supporting the "great picture".

Texrat offered a great solution; kudos to both :)

allnameswereout
2009-10-23, 15:42
If the VM and VM image is good enough, which partly depends on hardware, you won't give a damn about it not being native. AS/400, Solaris Containers/Zones, Xen, VMware Workstation, Parallels (for Mac), Rosetta prove this to be true. The latter 3 even allow one to run the application under a VM without a full desktop, including support for theming. It is same with running x86-32 applications on x86-64. With recent Intel and AMD processors utilizing HVM on host OS you get almost 100% performance in a x86-64 or x86-32 guest OS although I/O is one area which traditionally lacks which is a reason Xen requires modification in guest OS. With Xen, you can get even more than 100% performance. You also may have to enable HVM in your BIOS (!!!). So, IMO, you need specific arguments. For example, why Eclipse doesn't cut it for you. Keep in mind that when you use the SDK you are also using a VM: QEMU. Enabling HVM will improve the performance for QEMU as well.

@ lcuk, you could use NFS as well, having all the native ARM stuff on a dedicated server. Or use sbrsh(d). Seriously, sbrsh(d) is exactly made for this, and I'm pretty damn sure its how Nokia uses it internally. Yes, over rsh, not ssh. For performance reasons (SSH is overhead, especially on embedded environments, and NFS is lightweight as well; both are tried and true on *NIX, but can be made to run on Windows as well).

Also, developers need to have some kind of *NIX knowledge. It really helps a lot when developing just like being able to program is useful as UNIX admin. Sometimes, the command line is just faster than GUI, and sometimes programming it yourself is faster than using a script engine.

It is a pre, much like knowing *NIX helps you find your way in Maemo. I do understand the reasons for providing the choice of not requiring this knowledge though, but Qt is targeted for Maemo 6. It does not surprise me there is no good Qt IDE for Maemo 6 for Windows yet given there is also no official support for Qt on Maemo either. c't 2010/10 contains good introduction for programming with Qt with Qt Creator. Yes, the howto is platform agnostic. I thought there was also an in depth tutorial for automating & aiding scripting which is useful too but I can't find the article. :(

f(x)
2009-10-23, 15:47
Solution: Cygwin?

Texrat
2009-10-23, 15:50
Solution #4 added

And to allnameswereout: you have no idea how truly lazy I am. ;)

bbns
2009-10-23, 15:53
Ladies and Gentlemen,

Qt-Creator just added Maemo support (http://qt.gitorious.org/qt-creator/qt-creator/commit/6a49395e33100b0a094f5ba94f3c763ec7838b8c) code in Git recently.

Though I have no idea how to trigger it. But it's really nice to write on Qt-Creator anyway.

arpwatch
2009-10-23, 15:54
https://garage.maemo.org/projects/vpc-sdk

doesn't get much easier than that...


I just tried that out...I had better luck with vmware and my already existing virtual machine.

The installer script dies when it runs "CheckNetwork" it says no network connection can be found (all while I'm googling inside the virtual machine)

SubCore
2009-10-23, 16:19
I just tried that out...I had better luck with vmware and my already existing virtual machine.

The installer script dies when it runs "CheckNetwork" it says no network connection can be found (all while I'm googling inside the virtual machine)

CheckNetwork verifies that a connection to repository.maemo.org is possible (a simple ping, actually). maybe your resolv.conf is broken.

for further troubleshooting we should move to this thread (http://talk.maemo.org/showthread.php?t=31141), so we can keep this one clean for the brainstorm.

claesbas
2009-10-23, 16:20
I just tried that out...I had better luck with vmware and my already existing virtual machine.

The installer script dies when it runs "CheckNetwork" it says no network connection can be found (all while I'm googling inside the virtual machine)

I got that too and thought I was doing something wrong.. Is this broken?

EDIT: Missed your post SubCore.. will continue troubleshooting in your posted thread instead. TA

allnameswereout
2009-10-23, 16:28
Solution #4 added

And to allnameswereout: you have no idea how truly lazy I am. ;)Not drunk as are I. :p

Concerning Cygwin and Maemo SDK in VM see this thread (http://talk.maemo.org/showthread.php?t=32537) by developer of vpc-sdk. It allows you to 'seemingly' use SDK as regular desktop windows in Windows, much like Parallels/VMware Workstation/Rosetta.

Sasler
2009-10-23, 16:36
If the VM and VM image is good enough, which partly depends on hardware, you won't give a damn about it not being native. AS/400, Solaris Containers/Zones, Xen, VMware Workstation, Parallels (for Mac), Rosetta prove this to be true. The latter 3 even allow one to run the application under a VM without a full desktop, including support for theming. It is same with running x86-32 applications on x86-64. With recent Intel and AMD processors utilizing HVM on host OS you get almost 100% performance in a x86-64 or x86-32 guest OS although I/O is one area which traditionally lacks which is a reason Xen requires modification in guest OS. With Xen, you can get even more than 100% performance. You also may have to enable HVM in your BIOS (!!!). So, IMO, you need specific arguments. For example, why Eclipse doesn't cut it for you. Keep in mind that when you use the SDK you are also using a VM: QEMU. Enabling HVM will improve the performance for QEMU as well.

@ lcuk, you could use NFS as well, having all the native ARM stuff on a dedicated server. Or use sbrsh(d). Seriously, sbrsh(d) is exactly made for this, and I'm pretty damn sure its how Nokia uses it internally. Yes, over rsh, not ssh. For performance reasons (SSH is overhead, especially on embedded environments, and NFS is lightweight as well; both are tried and true on *NIX, but can be made to run on Windows as well).

Also, developers need to have some kind of *NIX knowledge. It really helps a lot when developing just like being able to program is useful as UNIX admin. Sometimes, the command line is just faster than GUI, and sometimes programming it yourself is faster than using a script engine.

It is a pre, much like knowing *NIX helps you find your way in Maemo. I do understand the reasons for providing the choice of not requiring this knowledge though, but Qt is targeted for Maemo 6. It does not surprise me there is no good Qt IDE for Maemo 6 for Windows yet given there is also no official support for Qt on Maemo either. c't 2010/10 contains good introduction for programming with Qt with Qt Creator. Yes, the howto is platform agnostic. I thought there was also an in depth tutorial for automating & aiding scripting which is useful too but I can't find the article. :(

OK. I'm sure the points which you made are very good and valid. The only minor and very tiny problem I have, is the fact that I didn't understand half of the technical terms you used. It only made me feel stupid (which may be true ;) ). :D

I'm sure that this was very understandable and simple for a Linux user. But I think that for many Windows users texts like these, while no doubt meant to help, only scares them. We have to keep in mind that we Windows users are more familiar with "Next" buttons instead of some faster command line arguments. :)

But thanks anyway. I'm sure the people who are smarter than me over here (probably everyone else :D ), understood just fine. :)

allnameswereout
2009-10-23, 17:02
Oh sorry, that was not my intention. Although you kinda prove your own point :D sometimes it is not required to understand everything written in post.

I'll clarify by first quote and then provide clarification. The relevant parts I'll put in red.

[QUOTE=allnameswereout;356550]If the VM and VM image is good enough, which partly depends on hardware, you won't give a damn about it not being native. AS/400, Solaris Containers/Zones, Xen, VMware Workstation, Parallels (for Mac), Rosetta prove this to be true. The latter 3 even allow one to run the application under a VM without a full desktop, including support for theming. It is same with running x86-32 applications on x86-64. With recent Intel and AMD processors utilizing HVM on host OS you get almost 100% performance in a x86-64 or x86-32 guest OS although I/O is one area which traditionally lacks which is a reason Xen requires modification in guest OS. With Xen, you can get even more than 100% performance.This part of the post explains why running a virtual machine (VM) to run a SDK is not necessarily a Bad Thing and states several examples of good virtual machines. It also explains running a virtual machine with good performance (near 100%; near native) is possible.

You also may have to enable HVM in your BIOS (!!!). So, IMO, you need specific arguments. For example, why Eclipse doesn't cut it for you. Keep in mind that when you use the SDK you are also using a VM: QEMU. Enabling HVM will improve the performance for QEMU as well.Explains some performance complaints are related to BIOS setting. HVM explained on Wikipedia. (http://en.wikipedia.org/wiki/Hardware_virtual_machine) On Intel the BIOS setting is called Intel VT, on AMD it is called AMD-V. Here is a list of HVM compatible notebooks. (http://wiki.xensource.com/xenwiki/HVM_Compatible_Notebooks)

@ lcuk, you could use NFS as well, having all the native ARM stuff on a dedicated server. Or use sbrsh(d). Seriously, sbrsh(d) is exactly made for this, and I'm pretty damn sure its how Nokia uses it internally. Yes, over rsh, not ssh. For performance reasons (SSH is overhead, especially on embedded environments, and NFS is lightweight as well; both are tried and true on *NIX, but can be made to run on Windows as well).This provides alternative for running code native or hosting code on machine native. It was directed to lcuk, and is general statement.

Also, developers need to have some kind of *NIX knowledge. It really helps a lot when developing just like being able to program is useful as UNIX admin. Sometimes, the command line is just faster than GUI, and sometimes programming it yourself is faster than using a script engine.

It is a pre, much like knowing *NIX helps you find your way in Maemo. I do understand the reasons for providing the choice of not requiring this knowledge though,
Explains background knowledge for requested feature is useful, provides flexibility, while admitting requires resources and dependency on such should be optionally not a requirement.

but Qt is targeted for Maemo 6. It does not surprise me there is no good Qt IDE for Maemo 6 for Windows yet given there is also no official support for Qt on Maemo either.Explains reason lack of requested feature, explains right now is not issue yet.

c't 2010/10 contains good introduction for programming with Qt with Qt Creator. Yes, the howto is platform agnostic. I thought there was also an in depth tutorial for automating & aiding scripting which is useful too but I can't find the article. :(Provides a solution and starting point.

Sasler
2009-10-23, 17:12
Thanks for the clarification. :)

c't 2010/10 contains good introduction for programming with Qt with Qt Creator

Provides a solution and starting point.

Ehr... :confused:

I and where is this? Do you mean this:

http://qt.nokia.com/developer/getting-started

SubCore
2009-10-23, 17:22
and where is this? Do you mean this:

http://qt.nokia.com/developer/getting-started

no, i believe he was referencing the magazine c't (http://www.heise.de/ct/), the bestest of the german IT magazines :)

allnameswereout
2009-10-23, 17:27
no, i believe he was referencing the magazine c't (http://www.heise.de/ct/), the bestest of the german IT magazines :)Indeed, high quality mag (Wikipedia link (http://en.wikipedia.org/wiki/C't)). Although I read the translated Dutch version (blasphemy!), and I thought its also translated to English which appears not to be the case. Also, 'Sas' (short for Sasha) is a common German name so I assumed too much. Excuse me.

Sasler
2009-10-23, 17:30
no, i believe he was referencing the magazine c't (http://www.heise.de/ct/), the bestest of the german IT magazines :)

Oh thanks. :)

Now if there could be the same information in English too, it would be superb... ;)

Fargus
2009-10-23, 17:32
Setting up VMWare and installing a linux distribution is too difficult? Who the heck are these coders?

I'll make a deal with anyone in that situation. I'll walk the coder through installing vmware and ubuntu, and in turn they can teach me how to code for maemo.

I downloaded virtualbox, installed it and then the virtual machine image. Unpack it using 7zip (just go for the first file) and then start up virtual box vas per the readme. I got it working on Vista 64bit first time in about 10 minutes so give it a try!

Nathan
2009-10-23, 19:00
I'm just a hobbyist, with no ties to Nokia. So everything I do is because I want to. ;-) I developed the vpc-sdk image, and I find it to work fairly well for development currently. (If you are having any issues with it -- jump to the dev forum, and I will support it <G>)

---

However, this is my "vision" of where I would like to actually go with the project I started:

1. VM is totally hidden (might still be using Virtual PC, or might be Portable Ubuntu or AndLinux image) -- Currently VPC is working. I plan on investigating the other two image possibilities. I've downloaded them, but have other "higher" priority items going on.

2. Use of Cygwin Xephyr (I am currently doing this) or maybe a sneaky trick with a window in Qt creator with a vnc connection into the VM to allow the main emulated window of the device to be published out to the Windows desktop inside. (See http://talk.maemo.org/showthread.php?t=32537)

3. Qt wizard that would have ability to transfer code into and control the scratchbox environement. I've started investigating this and I'm really being "lazy" until the sdk+ project gets the final Fremantle SDK installed. The Scratchbox 2 appears to be a much (much) better solution to allow external control. This would allow you to develop your applications in a Qt Creator, click run and hopefully it would hand off your code the SB2 env inside the VM, tell the VM to compile the code; then run it attaching the output back to either Cygwin Xephyr or some other windows output method. Thereby hiding the VM completely. And making development from "Windows" possible. The ability to package up your final src deb's is also fairly simple and could be also put into a "wizard".

Remember this is very much a spare time type project -- I want to make it much simpler for "me". ;-) If others want to join in; I'd love the company.

Nathan

daveb70
2009-10-23, 19:02
Ah, but you seem to forget that one of the most basic traits for the vast majority of humans is laziness! :D

Then there is the simple fact, at least for an occasional amateur coder, that if setting up the system takes too long or is complicated, the original enthusiasm might die out quickly. ;)

Well I'm ignorant when it comes to *NIX and coding, not that I haven't dabbled and poked around in both over the years. (i copy bits of VB script/batch files to make what I need once in a blue moon) I do have other technical computer experience and, by tinkering and failing for a few hours 2 nights in a row, I went and wiped out my VM (of Ubuntu only) and was finally able to have success in building my Scratchbox environment. (but should I have sound? I know that package failed)

There is definitely less margin for error in using Linux to create a working Maemo app dev environment for those without experience. I know where I went wrong at times initially but couldn't trace the trickle down problems it generated at other points in the setup. Even so, I don't give up easily. Even if I never produce a single Maemo app, I know I can build a Scratchbox environment, probably both manually and using the scripts, again and again. I welcomed the learning experience.

Wouldn't it be terrible if a car designer never stepped foot in the manufacturing plant? That just seems wrong to me, but hey, it may happen.

If someone's going to be too lazy to create a dev environment that may force them to grow their brain in the process, I'd hate to see how they maintain their app. But that's just my opinion. I probably see devs/coders as being more qualified to follow along than regular users.

And as I completely forgot about and then spotted again last night, there's the VM image with all the tools preinstalled. (as Fargus pointed out) I grabbed it and will play with it too since it has ESbox which is where I'd eventually head with my other VM.

When I document something for someone else, I use exact words as they would see, I use screenshots, and format the text so the correct details stand out where needed. Maybe over time we can help improve the current documentation for those who need it, since it is all part of the community effort.


@arpwatch Highly commendable offer; maybe we need a little pool of people willing to help others. Or perhaps someone can just record the entire process and build it into a replayable screencast, it may just reduce the number of requests for help.

Sasler
2009-10-23, 19:35
I'm just a hobbyist, with no ties to Nokia. So everything I do is because I want to. ;-) I developed the vpc-sdk image, and I find it to work fairly well for development currently. (If you are having any issues with it -- jump to the dev forum, and I will support it <G>)

---

However, this is my "vision" of where I would like to actually go with the project I started:

1. VM is totally hidden (might still be using Virtual PC, or might be Portable Ubuntu or AndLinux image) -- Currently VPC is working. I plan on investigating the other two image possibilities. I've downloaded them, but have other "higher" priority items going on.

2. Use of Cygwin Xephyr (I am currently doing this) or maybe a sneaky trick with a window in Qt creator with a vnc connection into the VM to allow the main emulated window of the device to be published out to the Windows desktop inside. (See http://talk.maemo.org/showthread.php?t=32537)

3. Qt wizard that would have ability to transfer code into and control the scratchbox environement. I've started investigating this and I'm really being "lazy" until the sdk+ project gets the final Fremantle SDK installed. The Scratchbox 2 appears to be a much (much) better solution to allow external control. This would allow you to develop your applications in a Qt Creator, click run and hopefully it would hand off your code the SB2 env inside the VM, tell the VM to compile the code; then run it attaching the output back to either Cygwin Xephyr or some other windows output method. Thereby hiding the VM completely. And making development from "Windows" possible. The ability to package up your final src deb's is also fairly simple and could be also put into a "wizard".

Remember this is very much a spare time type project -- I want to make it much simpler for "me". ;-) If others want to join in; I'd love the company.

Nathan

Well the idea you have is really good and I would like to help if could, but I'm afraid that my current technical knowledge on this seems to be so insignificant that I would only slow you down... ;)

Anyway, I just downloaded your image. Unfortunately I'm having some major issues in installing Windows Virtual PC on this laptop that I'm currently using (Windows 7) in the first place. It just says "The update is not applicable to your computer"... So typical. Something we Windows users are all too familiar with: Nothing ever works as it should when you really want it! :D

Oh well. I can always trying in a different computer. :):)

Texrat
2009-10-23, 19:38
If someone's going to be too lazy to create a dev environment that may force them to grow their brain in the process, I'd hate to see how they maintain their app. But that's just my opinion. I probably see devs/coders as being more qualified to follow along than regular users.

Insults have no place in Brainstorming. It may be your opinion, and you're entitled, but I respectfully request a bit more diplomacy.

Your efforts are appreciated, but don't take other suggestions as a sign of a "shrunken brain" or an indictment of your preferred solution.

I think my brain has grown just fine in 48 years, but I'd rather have those aging neurons firing on the creative process, which is my forte, than getting into the "car shop" of desktop Linux.

Sure I want to learn more about desktop Linux, but even more, I want to quickly and easily apply my current development skills to Maemo development. You may disagree with my desires and motives, but I don't think that alone warrants a rude response.

Thanks for your understanding, Dave.

tekojo
2009-10-23, 19:48
Hi all.
Good topic and one that has been discussed inside Nokia a lot as well. Nice to see a Brainstorm on it.

Yes we acknowledge that the current SDK is not the best choice for people who are not familiar with the platform and would just like to do an application to try out the platform.

Yes we are working on it. Developers who aren't familiar with Maemo should have an easier time getting on board, no question about that.

As a quick help there are the VMWare and Nathans VPC (respectable hobby project!) images available.

Also using Qt really eases the learning curve a lot in the beginning. Qt Creator can be used as an IDE even though the compilation still needs to happen under the SDK.

Texrat
2009-10-23, 19:51
Thanks Tero. I was especially excited about what I saw regarding Qt and Harmattan. I am ready to start learning Python. :D

Sasler
2009-10-23, 19:52
Hi all.
Yes we are working on it. Developers who aren't familiar with Maemo should have an easier time getting on board, no question about that.


Care to elaborate on this a bit? :)

Any time frame?

Nathan
2009-10-23, 20:36
Anyway, I just downloaded your image. Unfortunately I'm having some major issues in installing Windows Virtual PC on this laptop that I'm currently using (Windows 7) in the first place. It just says "The update is not applicable to your computer"... So typical. Something we Windows users are all too familiar with: Nothing ever works as it should when you really want it! :D


See the wiki page; you need a specific version of VPC for Windows 7. http://vpc-sdk.garage.maemo.org/

Nathan

Nathan
2009-10-23, 20:43
Yes we are working on it. Developers who aren't familiar with Maemo should have an easier time getting on board, no question about that.

Any news, time frame. Can you give details on the plan on how you plan on implementing it? I really don't want to "duplicate" work or waste my time if you are doing a full Qt integration.

If you are talking about the Eclipse integration to compile qt apps in SB, which should be coming in the maemovmware image -- that doesn't meet the needs the I have and I will work on a fully Qt based integration system to SB2 inside a VM image.

Nathan

Sasler
2009-10-23, 21:06
See the wiki page; you need a specific version of VPC for Windows 7. http://vpc-sdk.garage.maemo.org/

Nathan

Yes, but it was exactly that version which did not want to be installed. Now I downloaded and installed VPC 2007 in stead. It seem that it works, but it is really slow...

tekojo
2009-10-24, 19:09
Care to elaborate on this a bit? :)

Any time frame?

You know timeframes are the last thing we like to talk about :-)

What Texrat wants isn't so far away from what the normal weekend coder needs. (and we have a few of those at work)

Something that can be set up in fifteen minutes on the machine that's anyway around the house. And a framework in which you get a simple hello world up and running on device in the next five minutes.

Virtual machines are a pretty good compromise for development, but they still require a lot of scaffolding in the background and they also require some knowledge of the system (Maemo SDK on Linux) that's in the virtual box.

tekojo
2009-10-24, 19:15
Thanks Tero. I was especially excited about what I saw regarding Qt and Harmattan. I am ready to start learning Python. :D
Try plain Qt, C++ is pretty easy to get a hang of, plus the tools are good. Qt Creator somehow reminds me of the "good old" IDEs, which were really good in one thing and didn't do anything else except the one thing they were designed for. (for Qt Creator it's Qt apps)

tekojo
2009-10-24, 19:26
I really don't want to "duplicate" work or waste my time if you are doing a full Qt integration.

If you are talking about the Eclipse integration to compile qt apps in SB, which should be coming in the maemovmware image -- that doesn't meet the needs the I have and I will work on a fully Qt based integration system to SB2 inside a VM image.
Nathan

No, not the Eclipse stuff. With Qt the idea is to develop wherever you develop and then just compile to target and make sure it looks good. The whole point with Qt is the cross platform idea. And with that we are really looking to ease the pain of beginners, not people who want to dive deep into Maemo internals, for that you will need SB anyway.

Texrat
2009-10-24, 19:52
Try plain Qt, C++ is pretty easy to get a hang of, plus the tools are good. Qt Creator somehow reminds me of the "good old" IDEs, which were really good in one thing and didn't do anything else except the one thing they were designed for. (for Qt Creator it's Qt apps)

I'm allergic to all flavors of C. :p

Sasler
2009-10-24, 22:35
You know timeframes are the last thing we like to talk about :-)

What Texrat wants isn't so far away from what the normal weekend coder needs. (and we have a few of those at work)

Something that can be set up in fifteen minutes on the machine that's anyway around the house. And a framework in which you get a simple hello world up and running on device in the next five minutes.

Virtual machines are a pretty good compromise for development, but they still require a lot of scaffolding in the background and they also require some knowledge of the system (Maemo SDK on Linux) that's in the virtual box.

Something like this I was really hoping for. :)

But just to make sure that I understood correctly, let me ask a few questions:

1. Will the idea be to use Qt Creator (or something similar) for coding and then all one had to do is to compile it to Maemo (preferably with a single click ;) )?

2. Will it have it have directly the ability to use Maemo style widgets (I'm not certain of the correct terms here) in its Form editor? Currently the Windows version of Qt Creator seems to have only Windows style widgets... I think.

3. Is the idea that run it in Windows for quick testing and eventually, when ready for testing on the actual device, compile it to Maemo?

Thanks :)

Sasler
2009-10-24, 22:51
I'm allergic to all flavors of C. :p

I must agree with tekojo. I've found Qt Creator and the C++ is surprisingly easy to use and I'm used to do most of my coding in Visual Basic (yes, I know :o, but I'm taking medication for it, so I hope I will get better soon :D)!

It has some really nice features. And the best part is, that you have to do very little of actual coding in it. You just use the Form editor and some clever things like SIGNALS and SLOTS, which I really like. For those parts where there really needs to be some coding, C++ is not THAT difficult and we can always rely on our good friend Mr Google. ;)

Texrat
2009-10-24, 23:24
I'm sure C++ is fine. I'm just more of a high level coder. Give me a natural language tool any day. You can keep your pointers. :D

Oh and I've been coding with VB since 2.0 and love it, so don't feel bad. VB.Net rocks.

Nathan
2009-10-25, 00:44
No, not the Eclipse stuff. With Qt the idea is to develop wherever you develop and then just compile to target and make sure it looks good. The whole point with Qt is the cross platform idea. And with that we are really looking to ease the pain of beginners, not people who want to dive deep into Maemo internals, for that you will need SB anyway.

Cool, I agree, hence my reason why I didn't like the eclipse solution I know that is being developed.

1. I know you don't like to commit to any specific time frame -- but are you talking like in the next 3 months; 6 months or farther out.

2. I assume this solution just allows you to create basic applications; and then submit them to the builders to create the actual application for them to test on their phone?

Nathan

attila77
2009-10-25, 01:13
I might have missed something here, but how will you solve the problem of Maemo APIs if you develop with Qt Creator on a desktop platform ? Only the simplest of apps can be developed in Creator and then 'just compiled in SB', and even then, you WILL have ifdefs. Try to access the address book, the desktop, widgets, MAFW, the location framework, accelerometers, cellular or IM functionality and suddently you find yourself in the middle of nowhere...

I'd still recommend Python for weekend coders, especially those with C(++)itis. At least with that you can forego the whole SB/SDK thing and still not have the problem above.

Texrat
2009-10-25, 01:49
This is probably a stupid question... but is the following scenario possible and useful: desktop IDE developing directly on a Maemo device attached to the host via usb?

Sasler
2009-10-25, 05:45
One more question:

4. In theory, can one start developing an app (at least a simple one) in Qt Creator already now and then when the Maemo compiler is finally ready (hopefully very soon ;)), all one had to do is to make some minor corrections (like replacing/editing widgets) and then compile it for Maemo?

Nathan
2009-10-25, 05:53
This is probably a stupid question... but is the following scenario possible and useful: desktop IDE developing directly on a Maemo device attached to the host via usb?

Actually, via network (SSH) or Bluetooth would be better than a direct usb. It could be done.

Nathan.

Sasler
2009-10-25, 06:19
I might have missed something here, but how will you solve the problem of Maemo APIs if you develop with Qt Creator on a desktop platform ? Only the simplest of apps can be developed in Creator and then 'just compiled in SB', and even then, you WILL have ifdefs. Try to access the address book, the desktop, widgets, MAFW, the location framework, accelerometers, cellular or IM functionality and suddently you find yourself in the middle of nowhere....

Interesting point... OK, while the recent Texrat's question was actually a really good one IMHO, here is potentially an extremely silly question/solution: :D

Would it be possible to have in Qt Creator some Maemo specific widgets with default data (or manually entered data) which would allow to test it on a desktop, but would work with the correct API and data in the device itself?

For example: To create an app which looks up all the phone numbers in the Contacts and then, based on the numbers country code, calculates how many contacts are in each country, it should be enough to have a Maemo Contacts widget with all the available fields. The data could entered manually for testing. Or better yet, there should be a way to import the actual data from the device. :cool:

However, for things like Accelerometer and GPS, there could be a separate window on the desktop where you could enterer data manually real-time while running the app for testing.

attila77
2009-10-25, 09:24
This is probably a stupid question... but is the following scenario possible and useful: desktop IDE developing directly on a Maemo device attached to the host via usb?

Not only possible, but it is exactly how Pluthon (http://pluthon.garage.maemo.org/) works. If you are allergic to Eclipse, but familiar with WingIDE (http://www.wingware.com/), it also supports remote execution/debugging on the device.

lcuk
2009-10-25, 15:38
I'd still recommend Python for weekend coders, especially those with C(++)itis. At least with that you can forego the whole SB/SDK thing and still not have the problem above.



one slight problem with this (which is the same mini bug I have)

packaging on the device is lacking.

unless a generic simple mechanism can be made to get their creations off the device and into extras scratchbox will be needed for the final step.

attila77
2009-10-25, 16:49
one slight problem with this (which is the same mini bug I have)

packaging on the device is lacking.

unless a generic simple mechanism can be made to get their creations off the device and into extras scratchbox will be needed for the final step.

It's not as big of a problem as it seems. It's basically a one-liner (with some obvious minor tweaks like deps, changelog, etc):

dh_make example export DEBFULLNAME=”Hack Er” dh_make –email [email_address] --copyright=bsd --file ../foo.tar.gz

That's basically it ! Take a look at the packaging slides (http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform) (the line above is from that presentation), basically everything you need to know is in there.

The only snag is that dpkg-dev (and dh_make) are not in Fremantle extras yet, but I guess that can be remedied if there is interest (Diablo has them).

tekojo
2009-10-25, 19:01
Something like this I was really hoping for. :)

But just to make sure that I understood correctly, let me ask a few questions:

1. Will the idea be to use Qt Creator (or something similar) for coding and then all one had to do is to compile it to Maemo (preferably with a single click ;) )?

2. Will it have it have directly the ability to use Maemo style widgets (I'm not certain of the correct terms here) in its Form editor? Currently the Windows version of Qt Creator seems to have only Windows style widgets... I think.

3. Is the idea that run it in Windows for quick testing and eventually, when ready for testing on the actual device, compile it to Maemo?

Thanks :)

1. That's the long term target. Initially we'll most likely be satisfied with the work that has already gone into Qt Creator, it does have some capacity for using other compilers than the default.

2. Well... the thing is that the widget conversion happens on the maemo end. The point with Qt is that the same widgets just get rendered differently in different places. Maemo just looks a whole lot different with the idea of finger usability. Work ongoing to figure out how to make it work.

3. That's the initial idea, and it seems the easiest way. However the developer needs to remember the performance difference of running on a desktop x86 machine and an N900. That is until we get a realistic desktop emulation.

tekojo
2009-10-25, 19:09
Cool, I agree, hence my reason why I didn't like the eclipse solution I know that is being developed.

1. I know you don't like to commit to any specific time frame -- but are you talking like in the next 3 months; 6 months or farther out.

2. I assume this solution just allows you to create basic applications; and then submit them to the builders to create the actual application for them to test on their phone?

Nathan
Saying anything about time always causes expectations, but...

1. Really hoping for that 3-6 month period. I know that is forever, but let's see. And I am only hoping, with software it is always ready when it's ready :-)

2. First target is Qt development. I'm still reading up on Qt, but I am slowly leaning to the thought that the apps that can be made with Qt aren't basic. QGraphics, Phonon, WebKit, DBus, XML and such make for some pretty heavy duty applications really easy.
In essence yes, make it simple to create the app and package it. Nothing fancy, just the most common use case for starters.

tekojo
2009-10-25, 19:20
I might have missed something here, but how will you solve the problem of Maemo APIs if you develop with Qt Creator on a desktop platform ? Only the simplest of apps can be developed in Creator and then 'just compiled in SB', and even then, you WILL have ifdefs. Try to access the address book, the desktop, widgets, MAFW, the location framework, accelerometers, cellular or IM functionality and suddently you find yourself in the middle of nowhere...

I'd still recommend Python for weekend coders, especially those with C(++)itis. At least with that you can forego the whole SB/SDK thing and still not have the problem above.

Have to agree somewhat to this. Having read some of the Python apps in extras-testing this weekend, Python is a simple and fast way to get going.

However don't underestimate Qt before trying it out, the library set is impressive. I see it more as a language preference thing.
Qt is also a way forward. As said in Maemo 6 Qt will be much more central than now.

lcuk
2009-10-25, 19:21
tekojo,

without worrying about the keystone generic Qt classes you mentioned, I think what attila77 said a couple of pages back is very relevant and will need catering for with the tablet classes.

I might have missed something here, but how will you solve the problem of Maemo APIs if you develop with Qt Creator on a desktop platform ? Only the simplest of apps can be developed in Creator and then 'just compiled in SB', and even then, you WILL have ifdefs. Try to access the address book, the desktop, widgets, MAFW, the location framework, accelerometers, cellular or IM functionality and suddently you find yourself in the middle of nowhere...


even if these nokia mobile platform * classes return dummy data when run on the desktop initially (perhaps the API could be generic enough to allow outlook contact lookup etc) it would help integration. this is sasler said in reply.

is it possible to use some the C definitions in use for the current libraries to construct the revision 0.01 binding classes of the required functions based on their APIs?
(i know it is in python, but not sure how to go about it in Qt)

thats just just thinking about something like hermes or some of the requested/implemented widgets.


* named to attempt to cater for symbian too :)

attila77
2009-10-25, 21:28
Have to agree somewhat to this. Having read some of the Python apps in extras-testing this weekend, Python is a simple and fast way to get going.

However don't underestimate Qt before trying it out, the library set is impressive. I see it more as a language preference thing.
Qt is also a way forward. As said in Maemo 6 Qt will be much more central than now.

Hey, don't get me wrong, Qt is my weapon/toolkit of choice. Python/Eclipse/etc and Qt do not exclude each other, au contraire (http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo). Don't let the fact I occasionally write simple apps in GTK (too keep dependency sizes down) mislead you :)

tekojo
2009-10-26, 13:05
Hey, don't get me wrong, Qt is my weapon/toolkit of choice. Python/Eclipse/etc and Qt do not exclude each other, au contraire (http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo). Don't let the fact I occasionally write simple apps in GTK (too keep dependency sizes down) mislead you :)

Sorry, didn't know your preference (or rather ambidextrity) :-)

But we do want a solution for the simple native developer. Python is coming along pretty well by itself.
There are similar things to think about, like libraries and should they be wrapped. Speaking of which someone already put up a project to wrap N900 specific libraries to Qt style.

Sasler
2009-10-28, 13:22
Are there any good tutorials for coding to Maemo 5 in Qt?

SubCore
2009-10-28, 13:34
not really, since Qt support for Fremantle (= Maemo 5) isn't "official" yet. that will change in Q1 2010, when Qt 4.6 will be released.
for now, you'll have to settle for "generic" Qt tutorials.

attila77
2009-10-28, 13:40
See http://wiki.maemo.org/Qt4Hildon for the Maemo specifics

The generic Qt docs (for all platforms) are at http://doc.trolltech.com/4.5/

The rest (APIs, etc) do not depend on what you're developing in, docs at http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide

not really, since Qt support for Fremantle (= Maemo 5) isn't "official" yet. that will change in Q1 2010, when Qt 4.6 will be released.
for now, you'll have to settle for "generic" Qt tutorials.

Note that there is nothing 'special' in developing for a Maemo 5 device (apart from things listed in the first link above), so I don't really see in what way should these tutorials differ from regular ones. APIs are APIs, but then you could ask for separate tutorials for literally every library there is :)

SubCore
2009-10-28, 13:51
Note that there is nothing 'special' in developing for a Maemo 5 device (apart from things listed in the first link above)

from the Qt4Hildon wiki:
"Limitations
Currently Qt Maemo lacks full support for Hildon widgets introduced in Maemo 5.
At the moment, creating a Qt application that follows Maemo 5 UI Style requires using custom Qt widgets, coded within the application itself."

that's a pretty big limitation :)
for me, it's the reason i decided to wait a bit until i start coding in Qt, because i don't want to implement my own kinetic scrolling list...

RipTorn
2009-10-28, 13:52
Not sure if this is posted, but isn't there a virtual image that is pre-made, sort of like a TV Dinner, just download and use VMWare player and then it has all the tools and a setup scratchbox?

Sorry if this has been mentioned before I haven't gone through all the posts, just saw the Virtual machine post in the first page.

You can't get much easier than Download and play.

arpwatch
2009-10-28, 13:59
Not sure if this is posted, but isn't there a virtual image that is pre-made, sort of like a TV Dinner, just download and use VMWare player and then it has all the tools and a setup scratchbox?

Sorry if this has been mentioned before I haven't gone through all the posts, just saw the Virtual machine post in the first page.

You can't get much easier than Download and play.

Here:

http://maemovmware.garage.maemo.org/

SubCore
2009-10-28, 14:07
maemovmware is a bit outdated, this is the most recent one with the final Maemo 5 SDK:

https://garage.maemo.org/projects/vpc-sdk

doesn't get much easier than that...

attila77
2009-10-28, 15:08
from the Qt4Hildon wiki:
"Limitations
Currently Qt Maemo lacks full support for Hildon widgets introduced in Maemo 5.
At the moment, creating a Qt application that follows Maemo 5 UI Style requires using custom Qt widgets, coded within the application itself."

that's a pretty big limitation :)
for me, it's the reason i decided to wait a bit until i start coding in Qt, because i don't want to implement my own kinetic scrolling list...

Let me put it this way. There is no need for you to implement a kinetic scrolling list. You write your app without it, and when a Qt version with kinetic scrolling enabled hits the repositories, you get kinetic scrolling for free. And if you REALLY REALLY can't live without kinetic scrolling, you can compile Qt 4.6 yourself (as this stuff is already implemented is the source repos (http://wiki.maemo.org/Qt4Hildon-TODO))

I don't see these as possible reasons to avoid coding in Qt NOW, as they don't influence what and how you write in any significant way. It's like saying I don't want to learn how to drive a car until the A/C is installed. Yeah, sure, the A/C is cool but what's that got to do with your driving skills ?

SubCore
2009-10-28, 15:20
You write your app without it, and when a Qt version with kinetic scrolling enabled hits the repositories, you get kinetic scrolling for free.

i thought the hildon widgets in Qt would have their own names and functions, if it's actually the vanilla Qt widgets which by themselves will inherit the native fremantle look&feel, then you do have a good point :)

i have read the GTK+ UI guide for maemo 5, and it seemed that the hildon controls (like "HildonTouchSelector" etc) have their own names, which made me think this would be the case for Qt as well - requiring me to rewrite the UI parts of any Qt application i write now.

attila77
2009-10-28, 15:50
i thought the hildon widgets in Qt would have their own names and functions, if it's actually the vanilla Qt widgets which by themselves will inherit the native fremantle look&feel, then you do have a good point :)

99% of the time that's exactly how it happens (completely unlike Hildon* classes and GTK+). Occasionally there is an extra property that can signal some Maemo/Hildon peculiarity or a very rare class name/use case difference, but that's really the exception (and those parts are already 'in there' in the community edition for some time now).

Sasler
2009-10-28, 16:37
As it seems that we need to wait a few months to be able to code and run Maemo 5 projects in Qt on a Windows desktop, I would have little (read: huge :o) request:

Could someone please make a step by step video how to set up Maemo 5 SDK from the beginning to running a "Hello world!" Qt app?

You may be wondering why these would be needed, since there is documentation available for this. However, one should never underestimate how frustrating it is to try to do stuff in Linux, when someone is not very familiar with it and is unbelievable lazy to read all the documents that only give a headache! ;) Obviously, I'm not talking about me. :rolleyes: I'm just trying to help these kind of people... :D

Fargus
2009-10-28, 16:41
I'm allergic to all flavors of C. :p

Isn't Python a 'C' sytle language?

eiffel
2009-10-28, 16:54
Isn't Python a 'C' sytle language?
No way! Every "C-style language" has curly braces, but Python doesn't. And that's just for starters. Python is very different from C (and much easier to code). The only downside (for some purposes) is that apps written in Python are likely to run slower than those written in C or C++.

Regards,
Roger

RipTorn
2009-10-29, 01:38
maemovmware is a bit outdated, this is the most recent one with the final Maemo 5 SDK:

The website for it says 11th of September is the current release,

but if you actually download the details from the real download site (http://tablets-dev.nokia.com/maemo-dev-env-downloads.php)

The release notes say:

* MAEMO SDK VIRTUAL DESKTOP IMAGE DETAILS

- Image version: Maemo SDK Virtual Desktop Image - PreFinal 2
- Image release date: 07.10.2009
- Virtualization techniques supported: VMWare, VirtualBox, QEMU
- Estimated size: 7.9GB (normal) and 2.7GB (compressed - zip format)
- Image download link: http://tablets-dev.nokia.com/maemo-dev-env-downloads.php

- Ubuntu base release infromation:
- Distribution: Ubuntu Intrepid Ibex
- Version: 8.10
- Edition: Desktop, Intel x86
- Date: 30.10.2008
- URL: http://releases.ubuntu.com/intrepid/

- Maemo SDK base release infromation:
- Distributions: Maemo Fremantle 5.0 SDK Final and
Maemo Diablo 4.1.2 SDK Maintenance

So from reading that, its more up to date than the website actually says.

Cheers
Rip

kdrozd
2009-10-31, 15:01
Not followed the whole thread, but it seems to me that this solution (maemovmware) with VirtualBox is a very good option for beginners. I use the same for Windows7. GuessAdditions particularly are recommend installing and runing in IntegratedMode (Host key + L). You can see it on pictures on my blog: http://tableter.files.wordpress.com/2009/10/zainstalowane_maemosdk5.png running in the background and the Windows 7 Ultimate in the foreground with VB Maemo5 SDK. Even Copy & Paste works:) Here a little better picture of Esbox: http://tableter.files.wordpress.com/2009/10/maemosdkatw7.png. Happy coding :)

www.rzr.online.fr
2009-11-18, 11:22
- Maemo SDK base release infromation:
- Distributions: Maemo Fremantle 5.0 SDK Final and
Maemo Diablo 4.1.2 SDK Maintenance


So I guess it is possible to get diablo along freemantle on scratchbox ?
I'll test that vm then, unless someone explain how to setup diablo target on latest fm sdk

Sasler
2009-11-20, 07:52
I really like the Solution #4: Native Windows cross-platform development. But I think that there should be full emulation of Maemo, but Symbian, WinMo and any other supported platform too. This way it would be easy to develop to all the platforms and do the necessary tweaking per platform/device. Well, at least in theory... ;)

gidyn
2009-11-20, 09:08
Windows developers might find Mono (http://www.mono-project.com/Maemo) to be the best option, although the official packages don't appear to have been updated for Maemo 5. This is an open source .NET knock-off. You can then use the MonoDevelop (http://monodevelop.com/) IDE on Windows, and the compiled binaries should run on any Mono platform.

.NET bindings for Qt are provided by Qyoto (http://techbase.kde.org/Development/Languages/Qyoto). This can be tied into MonoDevelop's GUI designer with QyotoDevelop (http://github.com/FireRabbit/qyotodevelop).

I haven't used any of this myself, so I can't vouch that it will actually work, but hopefully it will be a good starting point for someone who actually has a device (or a Scratchbox guru).

Sasler
2009-12-10, 12:06
I'm itching to start developing for my N900 now that I finally have it. But the hassle (talking as a Windows user, of course ;)) necessary for setting up a Maemo SDK in VM is putting me off. Can't the Qt Creator developing team make something easy to use and preferably ready for yesterday? :rolleyes:

Anyway, please vote for this if you like me would like to code using Qt in Windows: :D

Brainstorm Link (http://maemo.org/community/brainstorm/view/an_easy_way_for_a_windows_user_to_start_developing _in_qt_for_maemo_5/)

qgil
2009-12-10, 12:20
Please vote to have it out of the Sandbox. Currently 4 votes from the 10 needed.

http://maemo.org/community/brainstorm/view/an_easy_way_for_a_windows_user_to_start_developing _in_qt_for_maemo_5/?solution=single_install_script_for_vm_and_maemo_s dk

johnel
2009-12-10, 12:26
[QUOTE=...necessary for setting up a Maemo SDK in VM...[/QUOTE]

If you download the virtual disk image (vmware?)- everthing should be set up for you. I think the size of it aprrox 10gb.
I think the image is Ubuntu or Debian..can't remember

Fargus
2009-12-10, 12:36
Votes now 7 - 3 more to go!

Sasler
2009-12-10, 20:12
Votes now 7 - 3 more to go!

10! :D Thanks for all the votes. :)

So what now? Should go forward automatically? :confused:

qgil
2010-02-12, 06:47
http://labs.trolltech.com/blogs/2010/02/11/qt-46-for-maemo-5-development-now-also-on-windows/