Hy there!

I am a student in my final years of collage, where i studied computer science. I consider myself a good programmer, and i enjoy coding in C++. But for my thesis I decided to write an application for a tablet like Nexus 7 and others that have Android OS. The application would be something like a diary app for teachers, but with many other functions including statistical informations about their students, charts from that information, the option of making pictures and thus the GUI would need to be quite good.
But i do not know where to start... I found a couple of SDK-s but unfortunately i have no experiences with programming for Android, so if anybody has experiences with programming apps for Android i would be very grateful for helping me out.
The ones i found were these:

http://coronalabs.com/products/corona-sdk/
http://phonegap.com/
https://www.madewithmarmalade.com/
http://www.appcelerator.com/titanium/titanium-sdk/
http://xamarin.com/

I was mainly thinking of using Mamalade, what do you think? Do you have any other ideas where i could programm my app?

Recommended Answers

All 3 Replies

I'm missing your point. You talk about developing Android app and then jumps on 3rd party frameworks. You want Android SDK then download from here

Hi.

Android is a fickle beast, to put it mildly. I also went the C++ route at first, but found that these 3rd party frameworks, while very productive in the beginning, just weren't well-suited to application development. Corona and Marmalade are excellent for GAME development, PhoneGap and Titanium are great if you mostly have JavaScript skills and can't be bothered to learn Java. Phonegap is of course lighter weight and a bit easier to use than Titanium, but Titanium gives your app a more native look and feel.

Xamarin works rather well, and if you have great C# skills, it can be your friend, but layouts are a real challenge with it, and the license is expensive when you need to use the more advanced features.

I ended up using Eclipse, Android Studio and the native Java build tools for Android. There are fantastic tutorials available on YouTube and https://developer.android.com/index.html which you should take a look at.

I started professional Android development in early 2012, and have worked on games, applications and utility programs, all written using the Android Java developer tools. What you want to do sounds like an application, and for that I highly recommend you go the Java route.

If you want to develop an Android app, first, you need learn the basics of Android, then you can choose the development path that best suits your needs.
You can use pure Java/Android code or you can integrate some C/C++ code in your app.

I also started with C/C++ years ago and did not have to through away my experience.
You can write a lot of your application's code using C/C++ through Cygwin and Android NDK:
http://developer.android.com/tools/sdk/ndk/index.html

The way this works is as follows:
1) Write most of the tricky functions you want to use in C/C++ to save some time.
2) You will have to compile the code to produce an Android library ".so"
3) Then add the library to your Android application and call the functions you want.

Note that using C/C++ to program an Android app doesn't mean that you won't need to write some Java code but if you find C programming easy, it might save you some time.

Since you want this for your final year project and NOT a commercial app, I don't think 3-rd party SDKs are the answer. There are some exceptions to that. For example, I needed some advanced image processing features which would have taken me ages to write myself so I used an sdk called leadtools.

Again the above is more of a personal preference than a set rule. If your code is mostly UI-related and does not contain hard-core processing functions like mine, the added complexity of mixing C/C++ with Java might not be worth it, and you could be better off doing the whole thing in Java, even if you're stronger in C/C++.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.