|
2009-12-13
, 12:23
|
Posts: 237 |
Thanked: 157 times |
Joined on Dec 2009
@ San Diego, CA
|
#2
|
The Following User Says Thank You to go1dfish For This Useful Post: | ||
|
2009-12-13
, 12:25
|
Posts: 3 |
Thanked: 2 times |
Joined on Dec 2009
@ Brisbane
|
#3
|
The Following 2 Users Say Thank You to voxel For This Useful Post: | ||
|
2009-12-13
, 13:12
|
|
Posts: 3,203 |
Thanked: 1,391 times |
Joined on Nov 2009
@ Worthing, England
|
#4
|
It sounds like your used to being pampered by a single entity that controls the entire stack (Microsoft)
This is not the case on Maemo given it's Linux heritage, as such you will find the tools in your kit to be more of an ad-hoc collection of utilities than a big monolithic entity (Visual Studio).
I do python development on the device, but come from a linux background so this was simple for me. Maemo is still pretty fresh, and I don't know of any absolute beginner resources.
I'd highly recommend playing with Ubuntu in VMWare for a bit to familiarize yourself with linux as a user before diving headlong into development.
For an IDE, I don't use them myself, but you might like Eclipse, it's the closest analogue to VS in this universe.
|
2009-12-13
, 13:13
|
|
Posts: 3,203 |
Thanked: 1,391 times |
Joined on Nov 2009
@ Worthing, England
|
#5
|
http://maemo4mobile.garage.maemo.org/ has information for developers coming from a .net background. Still non trivial to start developing for Maemo though
|
2009-12-13
, 13:45
|
|
Posts: 3,203 |
Thanked: 1,391 times |
Joined on Nov 2009
@ Worthing, England
|
#6
|
|
2009-12-13
, 14:32
|
|
Posts: 4,708 |
Thanked: 4,649 times |
Joined on Oct 2007
@ Bulgaria
|
#7
|
|
2009-12-13
, 15:14
|
Guest |
Posts: n/a |
Thanked: 0 times |
Joined on
|
#8
|
PROJECT("myfoo") ADD_EXECUTABLE(myfoo myfoo.cpp mybar.cpp)
Check which directory you're in: pwd List the contents of the current directory: ls or: ls /path/to/somewhere (note: absolute paths begin with "/". "." means the current directory, so "./foo" means "the subdirectory called foo in the current directory") "ls -l" will give you more info, and appending -h will make the numbers nicer to read List with hidden files: ls -A Change to another directory: cd /path/to/directory (note that *nix uses / for a delimiter, not \ like Windows. \ can be used to escape special character like spaces if they occur in paths that you're typing, as in "\ " or "\"" for a literal quote. Also note that *nix is case sensitive unless it tells you otherwise. move files: mv source dest what it sounds like - paths are specified the same as before echo strings: echo string print out (and optionally concatenate) files: cat file1 [file2....fileN] read the "fine" manual (RTFM): man commandname most programs also will give basic usage info if you add a "--help" or "-h" switch, but not all will, so it's best to try man first.
The Following 6 Users Say Thank You to For This Useful Post: | ||
|
2009-12-13
, 15:27
|
|
Posts: 3,203 |
Thanked: 1,391 times |
Joined on Nov 2009
@ Worthing, England
|
#9
|
noobmonkey: I haven't used Eclipse much myself, but it's written in Java, and is rather heavyweight - depending on the resources of your computer, you want something lighter. My personal preference is KDevelop4, although it's technically still in beta (due out in March, I believe). If you want to use the Qt toolkit (which is awesome), then you can't do much better than KDevelop. It has lots of nifty code introspection features, and what they call "Semantic Highlighting", which is essentially syntax highlighting hooked into the parser, so that it colors things more intelligently (e.g. local variables each get a different shade, so that you can follow the code more easily when scanning down it quickly). I'm not sure if debugging is fully working in the current beta (and Ubuntu doesn't have the latest beta available anyway), but when it does, it will support reverse-step, so that you can move backwards in the execution of your program.
If you need something in the mean time, Qt Creator, while not nearly as featureful, is decent for C++ coding with Qt. If you want to use Python, I've heard good things about the Eric IDE, but I've never tried it. If you want to do GTK apps, then Anjuta is another IDE you might want to try.
One thing to note is that not all IDE's will automatically set up the build for you like Visual Studio does (see previous comment about "pampering" - no offense, but it's kind of true). The old-school way of doing it was to manually write a Makefile, which then gets parsed by a program called make, which then compiles it in an automated fashion. However, thanks the to the Magic of modern software, you don't have to do things the hard way. I'd recommend you look at qmake (for Qt apps) or cmake (for anything). They make things pretty simple to do, and some IDEs wil work with them nicely. As an example, a simple, single-binary, standalone C++ app can be built using cmake with the following lines in the CMakeLists.txt file
That compiles myfoo.cpp and mybar.cpp into a binary called myfoo. That simple. You can, of course, get fancy with it, but both qmake and cmake make things pretty easy, and have a low entry barrier - you can dive in with almost exactly what I wrote above, to get going.Code:PROJECT("myfoo") ADD_EXECUTABLE(myfoo myfoo.cpp mybar.cpp)
As for languages, C++ is good for speed, but Python is rather easier to learn (case in point, I was able to help friends with basic homework without ever having actually used the language). Python is more memory-intensive, though. C++ is not a pretty language, but it's powerful, universal (well, not quite as universal as C, but close), and not terribly difficult. As I mentioned, though, if you use C++, look into Qt - it makes things oh so much easier. You can also use Qt with Python, for that matter.
Being new to Linux, there's a lot you'll need to learn. If you can, try dual-booting a physical machine with Ubuntu, and use it for day-to-day computing as much as is practical - that's the easiest and quickest way to pick it up, especially since working in a VM is a bit of a bother. If you Google "free Ubuntu books", or some thing like that, you should find some eBooks that will get you started with Ubuntu, and for more technical guides about the kernel, the shell, scripting, etc, try The Linux Documentation Project. If you want to quickly get your feet wet in Ubuntu itself, UbuntuCat has a wealth of good newbie guides and cheatsheets to get you familiar with concepts like package management, and other things that are different from Windows. (His blog is usually an interesting read too, although it's not all about software :P). Once you're comfortable with the pretty GUI, start getting used to the terminal. The terminal is your friend in Linux - there is usually a graphical way to do most common tasks, but if you know what you're doing, the terminal is often faster, and usually more powerful. If you want to poke around in it, here's some things to start you off (Google for tutorials to find out more):
Start there, and work your way up. Learn as you go, find tutorials, and use the OS as much as you can. I'm sure you're a bit impatient to get going, but you're much better off trying to get a good handle on Linux before trying to code on it - it'll save you a lot of frustration. If you've looked and you can't find what you need - ask. Maemo Talk is friendly, and the Ubuntu Forums are as well. Above all, have fun learningCode:Check which directory you're in: pwd List the contents of the current directory: ls or: ls /path/to/somewhere (note: absolute paths begin with "/". "." means the current directory, so "./foo" means "the subdirectory called foo in the current directory") "ls -l" will give you more info, and appending -h will make the numbers nicer to read List with hidden files: ls -A Change to another directory: cd /path/to/directory (note that *nix uses / for a delimiter, not \ like Windows. \ can be used to escape special character like spaces if they occur in paths that you're typing, as in "\ " or "\"" for a literal quote. Also note that *nix is case sensitive unless it tells you otherwise. move files: mv source dest what it sounds like - paths are specified the same as before echo strings: echo string print out (and optionally concatenate) files: cat file1 [file2....fileN] read the "fine" manual (RTFM): man commandname most programs also will give basic usage info if you add a "--help" or "-h" switch, but not all will, so it's best to try man first.
Hope this helps,
|
2009-12-13
, 15:32
|
Guest |
Posts: n/a |
Thanked: 0 times |
Joined on
|
#10
|
I'm looking for quite a bit of help really.... So please can someone/people who are in the know try to explain and simplify things for me?
I would like to start developing an app / widget .. .and for the un-initiated the Tutorials/wiki/ etc are pretty useless....
(Sorry this is meant politely, i just can't spend a year reading!! - i much prefer looking learning and doing... not the old school book method!)
What i'm trying to say is, where on earth does someone start?
I have vmware up and running, i'm trying to learn linux commands, as even Venomrush's post on setting it up with a few lines of Linux confused me....
I'm used to the laymans programming of, install a gui design it, code it, test it go.... For example, install visiual studio... - the basic package is created for you - and you can insert lines of code and litterally compile and go.
So what steps do i need to go through to get a working widget?
1) Setup the VM environment - done
2) Check the Maemo part loads up in vmware (Yes! - and can get internet)
3) What language? (Ok, dont mind which now, asked that q a few times, but i get stuck at the next bit)
4) What next?
(My guess)
5) Install specific coding api/packages?
6) Code in a notepad?
7) Command line compile?
8)... this goes on and on - as i would not know where to start when it comes to uploading to dev-testing etc....
So as you can probably see i'm soo sooo confused! - and yes i'm probably asking for a noobs guide to doing maemo coding - but i've never had a problem coding in VB/.net/asp, i understand SQL and i can even do some 3d Graphic design... so why am i finding this soooo hard?!
Is there a simple walkthrough for someone like me, step by step and holding my hand to do a Hello World style applciation?
yours sincerely - Confused Maemo-wannabe-developer