How to get started with Maemo software development [closed]
Asked Answered
E

9

17

A few months ego I purchased Nokia N800 device and since then I'm itching to write some code for it. I know that some of the application I'm running are written in Python and that there is a Mono port for the Maemo platform as well.

Basically what I'm asking is:

  • Is there a recommended development language for Maemo platform?
  • What development tools exist?
  • Can I use Windows or Linux as my primary development machine, and which do you recommend and why?
Elsa answered 8/1, 2009 at 8:39 Comment(0)
T
8

The Hildon framework is made up of GTK+ extensions, so the language is C. You can use C++ wrappers (maemomm) too. Or you can go with pymaemo for building apps with Python, which to me is much easier than C or C++. I've also seen an attempt at a ruby port, but have not followed up with that project recently.

For the development environment, there is "scratchbox", which gives you a sandbox for compiling and running your app. Here's a link on how to set up a scratchbox development environment. (It sure took me a long time to get everything setup.)

You'll have to use Linux as your development machine because your Nokia N800 is really a mini Linux computer.

If you want to have an IDE experience, try the ESbox plugin for Eclipse.

Have fun hacking!!!

Tombaugh answered 9/1, 2009 at 6:8 Comment(1)
i've been thinking vala, since it seems to be well-positioned as a higher level 'native language' than c for gtk programmingHim
L
11

I highly suggest that you try C++ and QT.

QT is already well supported for Diablo and Fremantle, and the next release of Maemo (Harmattan) should be based on QT.

Learning QT will be much much easier than GTK+, coding will be faster and more fun, your application can be compiled in various platforms and you can even develop and debug in Windows, then simply run a qmake && make in a scratchbox environment.

Take a look at this tutorial: Getting started wit QT for Maemo

You still need a Linux box to compile your code for a Maemo device. If you are using windows, you can setup ubuntu (or kubuntu) in a VirtualBox machine.

Maemo SDk + along with Scratchbox 2 is a better alternative than Maemo SDk & Scratchbox.

Personnally, I'm using QT creator in Windows, kubuntu 9.04 in VirtualBox, and I've never been happier. When I started, I tried the "official" approach : Ubuntu, GTK+, C language and scratchbox 1. ... that was painful.

Laic answered 13/8, 2009 at 9:44 Comment(2)
For maemo4 (Nokia N8x0), it is better to use the offcial SDK with scratchbox 1, there are some unresolved bugs with MaemoSDK+. For maemo5, Nokia SDK is a no-brainerLaic
If you use a virtual machine, go with debian. Nokia designed the SDK and everything else ESPECIALLY for debian. You'll earn nothing using Ubuntu. Also, depending on what you use or not, you may be able to just compile on the device itself (I do this with non-gui C micro-proyects)Lafollette
T
8

The Hildon framework is made up of GTK+ extensions, so the language is C. You can use C++ wrappers (maemomm) too. Or you can go with pymaemo for building apps with Python, which to me is much easier than C or C++. I've also seen an attempt at a ruby port, but have not followed up with that project recently.

For the development environment, there is "scratchbox", which gives you a sandbox for compiling and running your app. Here's a link on how to set up a scratchbox development environment. (It sure took me a long time to get everything setup.)

You'll have to use Linux as your development machine because your Nokia N800 is really a mini Linux computer.

If you want to have an IDE experience, try the ESbox plugin for Eclipse.

Have fun hacking!!!

Tombaugh answered 9/1, 2009 at 6:8 Comment(1)
i've been thinking vala, since it seems to be well-positioned as a higher level 'native language' than c for gtk programmingHim
E
4

I've just found two tutorials on Maemo.org:

Elsa answered 20/7, 2009 at 19:16 Comment(0)
F
2

For extra on-the-go fun, you can get the linux gcc and make tools running on the tablet itself and do your programming and compiling on the device. For any help with this sort of stuff the Maemo Talk forums are fantastic.

Fattish answered 26/2, 2009 at 14:40 Comment(0)
C
2

Ruby for Maemo is being hosted at http://code.scottishclimbs.com/maemo/

I've not yet tried it myself.

Canikin answered 13/11, 2009 at 18:38 Comment(1)
I should give it a try - I even heard about running Rails on a Maemo deviceElsa
G
1

There's a Scratchbox Virtual Appliance for Maemo development (I'm not sure if the link is the right one) but that's how I started hacking. It took forever for me to figure out how to set up scratchbox by myself.

Gravettian answered 20/7, 2009 at 19:19 Comment(0)
A
1

Nokia has been working hard to provide tools and documentation for developers. I would say one of the best places to start is at Forum Nokia:

http://www.forum.nokia.com/Technology_Topics/Device_Platforms/Maemo.xhtml

The next stop for developing for Maemo is of course Maemo's headquarters:

http://maemo.org/development/

These two links are to portals where you'll have to drill down for further info, but they are pretty good starting points. Now to answer your questions directly:

  • I suppose the two 'recommended' languages are C and python. While these are well supported, they are not the only choices as you have seen from previous answers. In addition to those languages, perl is on the device, though it is not in the same state as it is on debian.

  • The chief development tool is the SDK. It allows you to test the environment and compile software for the device. You can also use Eclipse for which there are plugins.

  • It is recommended that you use linux as a development machine, but you can run it in a virtual machine on Windows. While I prefer my OS to be 100% free and therefor choose debian, Nokia is working hard to make a better development environment for Windows. So rest assured that Nokia does not necessarily share my bias! :-)

Amalea answered 1/12, 2009 at 10:6 Comment(0)
S
1

I have to echo Karatchov's response.

The 2 recommended approaches currently are:

  • Python + PyGtk

  • C++ & Qt

Using anything else, you set yourself up for some pain (unless you are a Gtk+ veteran - since you are asking this question, I assume you are not). C++ & Qt is the future of Maemo anyway, and Qt works well on "old" platforms such as Diablo.

As a debugger, I recommend you pick up (compile) "cgdb". The plain old gdb can be a bit too spartan.

Generally, you should develop your application as a "normal" Qt application using Qt Creator, and occasionally test it in scratchbox.

Senate answered 1/12, 2009 at 12:46 Comment(1)
Python + Pyside also works great, and it's really easy to get started.Lafollette
L
1

I develop mainly with python and pyside (I develop on an N900). I have all my files in the nokia N900 and I use sshfs to mount my home directory on my pc. I then develop on my desktop, while actually saving everything right into the cell phone, and use SSH to run it remotely.

If you get too lazy to even pick up the device to look at the screen, you might want to use VNC; though personally, I feel it's just not responsive enough.

Yes, all I have on my desktop is my editor (sublime-text, by the way). The rest live on the mobile device. I use git to sync things/make backups, etc.

py2deb is great for making packages once you want to distribute your proyect. Again, no need to install anything on your desktop.

IF you'd rather be more conservative, the SDK is designed for debian, and you'll suffer a lot with any non-debian-based OS (unless you use a VM). Be warned! :)

Lafollette answered 29/2, 2012 at 5:45 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.