![]() |
Starting out as N900 Developer
Hey there, i'm looking into developing an app over my christmas leave for the N900. I posted what i'd like to do in this thread along with a few question which might have been best asked here
http://talk.maemo.org/showthread.php?t=38351 The point of this post is i'm finding it difficult as a first time linux and n900 developer to really find any guides to help me in and i found the API documents confusing. I'm a developer by trade, I work with Asp.Net and Java so i couldn't be any futher away from Linux and C, however i have used C and C++ before on university courses, so i have some understanding. What i'm asking for is whether theres some guides i've missed or general information people could give me as a newbie in linux and maemo as everything seems very confusing for me right now. I think maybe this is one area which could be improved upon to bring in more maemo developers, as I have a friend who was curious about developing for the N900 and got scared away by the confusion of it, as I might have been had it not be for my love of this device. When compared to developing ease of the iPhone and Andriod, the N900 is not that appealing to some leisure developers. Thanks, Loz. |
Re: Starting out as N900 Developer
|
Re: Starting out as N900 Developer
this is a great start thanks pwngu1n. i'll look into this after christmas day. Being able to develop from windows machines is a great plus for me
|
Re: Starting out as N900 Developer
I can offer you space on a box with a /scratchbox installed already, which may help you get the ball rolling. This offer is open to anyone wanting to develop Free Software for Maemo/N900.
Email me at moe@blagblagblag.org. -Jeff P.S. I likely won't be able to get things set up until Monday. |
Re: Starting out as N900 Developer
If you don't want to write any C/C++ code at all, QML provides you an easier solution: http://labs.trolltech.com/blogs/2009...e-for-maemo-5/
It's quite stable on my device. |
Re: Starting out as N900 Developer
I never heard of QML before, whats it like to program?
Cheers for your offer Jeff, forgive my complete ignorance but how would i use this box? Do you remote desktop into it or do i need to upload to it, bare in mind i'm a complete maemo newbie :( |
Re: Starting out as N900 Developer
On forum nokia are several intresting tutorials to to get started : I'm starting to and that is my main resource:
http://www.forum.nokia.com/Tools_Doc...on/Maemo.xhtml You can start with the getting started guide: http://www.forum.nokia.com/info/sw.n...h_Maemo_5.html Hope this helps you |
Re: Starting out as N900 Developer
Quote:
There is some example code out here: http://labs.trolltech.com/blogs/2009...eclarative-ui/ |
Re: Starting out as N900 Developer
Quote:
|
Re: Starting out as N900 Developer
The first thing you should know about Linux/Maemo and Open Source is that there is only one rule: THE DOCUMENTATION SUCKS.
The one exception to this rule is when documentation is non-existent. The next thing you should know is that everything comes from different places. By this I mean there is a lot of code in Maemo that wasn't written by Nokia. The implication for developers is that you will need to do a lot of searching to find out who wrote what part of what API that you need to access, and where on the internet is the documentation for that. The whole thing is infuriating so be prepared. |
Re: Starting out as N900 Developer
The documentation rules, it just can be hard to pinpoint your finger on *what* documentation you need as usually there is an overabundance. Even in the most obscure corners of Linux, someone else has done it before it seems. There is very little about which there is *no* documentation (unless some hardware company like nvidia or nokia is being a jerk about it [e.g. battery info]).
|
Re: Starting out as N900 Developer
@jebba
You're right. There really is an assload of documentation out there. The problem is if you can't find what you're looking for, then there might as well not be any documentation to begin with. Organization of that documentation is just as important as the information itself. Maemo has piss poor organization. |
Re: Starting out as N900 Developer
I had the same problems with Documentation until I realised that Nokia has a grand plan. Qt, although still only a tech preview stage it is light years ahead in terms of support material and API consistency.
Shame Maemo 5 didnt ship with this when it launched but I guess we will see a final build soon. Check it out http://qt.nokia.com/developer |
Re: Starting out as N900 Developer
Lots of videos here:
http://www.youtube.com/user/QtStudios and docs about QT Creator development tool here: http://qt.nokia.com/products/developer-tools That's if you want to do QT development, which is the future of Maemo (QT apps work today too, but will be the foundation with Maemo 6). -Jeff |
Re: Starting out as N900 Developer
|
Re: Starting out as N900 Developer
I've just started working with Maemo and its giving me a headache searching for beginner's information.
This is how I think its best to study, though I haven't gone over all of the material: 1. The first useful guide is the beginner's guide that nokia is hosting (45 minutes presentation) that gives you the theory behind Maemo apps. 2. Go to the developer's guide, Start with "Graphical UI Tutorial" category and start learning about GTK+ (if you're not going to use Qt), I think its more logical to start here because you start with looking at code, and this is the most basic code you need to know. 3. Check out the examples, you can create a new C project with ESBox and use the examples template(you learn about ESBox in #1, I suggest you download the virtual image), then you can see what you've learned in action. Run them all, make sure you understand how they all work. 4. Go over the guidelines for creating your UI, you have many guidelines and general UI info in the first three categories in the Maemo 5 Developer's Guide, they should give you a general idea for what kind of tools you have for building maemo apps. 5. Go to back to developer's guide and go over everything else, like d-bus and the libs, learn more about what they are and how to use them. I'm not an expert at all but this looks logical to me. like I was tought C#, first I started with hello world, then I learned about the theory behind. Which way do you think is best to start? |
Re: Starting out as N900 Developer
Seems good, but would definitely go with learning QT, which is usable now and is the future, than learning GTK which will work in the future, but is not the main platform. It's also far easier to learn python than C++, so going with PyMaemo as mentioned above seems to be good advice.
|
Re: Starting out as N900 Developer
Quote:
I didn't understand what you said about GTK+, does it not work now? |
Re: Starting out as N900 Developer
Quote:
|
Re: Starting out as N900 Developer
Quote:
|
Re: Starting out as N900 Developer
Quote:
|
Re: Starting out as N900 Developer
Quote:
-Jeff |
Re: Starting out as N900 Developer
Quote:
Most of the time its unreadable, and even when it isn't the parts you care about are hidden in with other parts that you don't. To top it all off, any time you actually NEED to look at the source code itself you probably just want to see the implementation, not decipher how to build off it. |
Re: Starting out as N900 Developer
Quote:
|
Re: Starting out as N900 Developer
Quote:
Currently, they're both in -devel, so you're stuck either way. :eek: -jkq PS. Thus, I started to port my code written for Python/Qt to C++/Qt, and boy, am I missing Python. :) |
Re: Starting out as N900 Developer
Ah yes, pyside is the Nokia project, PyQT is a separate project:
http://www.pyside.org/ Too bad there's two of them, oh well. |
Re: Starting out as N900 Developer
Quote:
|
Re: Starting out as N900 Developer
Quote:
So far I've installed QtCreator and MADDE and tried the qthello "prog"... ;) EDIT -> I think I'll be going for the whole QT SDK instead -> http://qt.nokia.com/downloads... ;) BTW -> I use Linux only (home/work)... ;) Ubuntu for my desktop+laptop, Gentoo for my private server. |
Re: Starting out as N900 Developer
Having done some development for maemo now I would have to echo some of the comments here that it is very hard to do useful things.
By which I mean there is plenty of doc that get you as far as hello world. But that's about it. For Witter I've had to write a customer cell renderer to make things look 'nice' trying to get any information on how to do that was a nightmare. Also there is no focus on development tooling. as a professional software engineer, I expect to be able to code and develop in a good IDE which helps me. I've never tried developing for apple, but given the number of apps I'm guessing they make it a whole lot easier to do than Nokia is making it for the N900. I started using esbox, which is pretty good...but I couldn't get svn to integrate, so to use garage I found myself having to leave esbox to use less useful tools. the api documentation does suck. I've found myself looking at the doc for certain hildon types asking 'what does this actually DO' no pictures, no description of what it's for, just the contructor and some method names. Personally I'm trying to help by writing blog posts as I figure stuff out, in the hopes that maybe I'll make life easier for the next person. One interesting sign. These days I find that a good portion of my google searches for stuff I'm trying to figure out, gets hits on my blog where I've mentioned that I want to figure it out ;-( writing core logic is normally fine. writing a GUI that is anything like 'nice' or even fitting with hildon standards is a nightmare. People say 'hildonise' this and that without any sensible doc to show how. And some of the hildonising process is needlessly expensive. I'm thinking specifically of hildon.appMenu which is, in fact, not a menu. And cannot be used with menuitems. Which means you have to re-write menu code to create buttons instead. And if you wanted to have any hope of keeping diablo code base in step, you just got another big wadge of different code. Particularly when it comes to trying to make an app look'n'feel like existing apps it would be nice if there was more documentation of using icons etc. or maybe the documentation just need to be put in a more consumable form. EDIT: and whilst I think about it, the whole process of submitting things to be built can be quite frustrating. there are parts of the process with zero feedback as to what it's doing or whether your submission has even worked. frequently I've submitted to the auto builder, then had an hour or so without it appearing anywhere I can see, eg not on the builder queue even. You just have to learn to wait a couple of hours and assume it's going to show up at some point. Then when it does show up, it only makes it ot rhe repository after it's built the 386 version, and I can only assume that's a much slower machine because it takes ages longer to do that build than it takes to do the armel build. Even though for python there is no 'build' I've frequently waited hours more for the 386 build to happen before my package appeared in extras-devel |
Re: Starting out as N900 Developer
Quote:
|
Re: Starting out as N900 Developer
Quote:
But i know Linux and open-source is a different world, I'm going to try to get used to it. It is hard to find out exactly where to start when you are used to opening the IDE and hitting F1 for the documentation. |
Re: Starting out as N900 Developer
Quote:
:D |
Re: Starting out as N900 Developer
@dwould
thanks for the input. I don't belong to Maemo team (research group is where I belong) but we have pointed out the issues quiet often (especially documentation). Maemo documentation almost depends on wiki however it lacks of man power to make it organized. Especially outdated document and deprecated APIs are spread everywhere. I have collected some people's opinions and reported. Personally I would recommend to use Qt as starting point because it ships with hildonized Qt4.5 and Qt4.6 is already in extras-devel. You could do almost everything via Qt (and this is what I have been doing and found most easier to use). Another reason to encourage you to follow the path of Qt is to keep your program compatible with upcoming Maemo 6. However, Maemo is so freedom that you have so many option to choose (both good and bad). And one thing makes Maemo different is the community. If everyone could keep participate in wiki or application testing or development or simply contribute your opinions, everyone will be benefited. Regards |
Re: Starting out as N900 Developer
Quote:
Is there any documentation available regarding this ? I mean if any new QT classes and interfaces have been defined as part of this. Or is it the already available official QT4.5 documentations ? I havent seen anything there yet talking about hildon or maybe Im a bad "searcher" :confused: Ive even been trying to make QT desktop widget into a hildon desktop widget so I could add it as a widget in N900, but again found vaccum , no/limited information at all, except gtk desktop widgets. I was hoping that is also part of hildonization or maybe Im wrong about this one. cheers |
Re: Starting out as N900 Developer
Quote:
Quote:
Unfortunately, I seem to be one of these "sissies". :p I've never used any other framework than .NET. And coming form that world, I really do miss the plethora of simple code examples on how to do different things. That is. other than just the Hello World. ;) To make the matters worse for me, I chose to start using C++ which is a bad move, since all the documentation it is assumed that everyone who uses C++ has already done so for at least several centuries if not for millenniums. Before starting to develop for Maeomo, Visual Basic (yes, I already told that I am a "sissy" :D) was more than enough for my needs. Since I had to learn a new language anyway, I thought I learn a good one which is useful on many platforms. But I fear things are going to become only worse for me, because of Nokia Web Runtime and QML. I'm afraid that Nokia will assume that beginners want to use these and Qt with C++ is only for professional programmers and the documentation would be according this. Still, I'm not going to give up. I'm going to try to learn Qt/C++ despite of Nokia! :p Quote:
|
Re: Starting out as N900 Developer
Quote:
Basically you can rely on the normal Qt documentation and the changes and restrictions you will find on the wiki pages I've mentioned before. Quote:
Daniel |
Re: Starting out as N900 Developer
Quote:
But Ive already seen the abve links, doesnt say much does it to just start thinking you can hildonize your apps. But yes what helps is you mentioned "Being hildonized in Qt means that everything is styled correctly if you compile it for the device. ". Didnt know this when i started out, I always thought there were different classes and apis defined for this purpose. Im glad somebody said that so I can simply create QT apps now based on the official QT4.5 docs and follwing instructions in the wiki's/ Quote:
And the thread link you directed me to for ideas is my post :rolleyes: cheers. |
Re: Starting out as N900 Developer
Quote:
Quote:
Cheers Daniel |
Re: Starting out as N900 Developer
If you guys have questions regarding Qt4 on Maemo, here is the mailing list I encourage everyone to subscribe: https://garage.maemo.org/mailman/listinfo/qt4-devel
These troll people are very passionate. Feel free to ask. |
Re: Starting out as N900 Developer
Quote:
|
All times are GMT. The time now is 12:20. |
vBulletin® Version 3.8.8