First off I’d like to acknowledge the many of you for really opening up my eyes to what these awesome devices can do. It really still does amaze me how some of you folks here at XDA can really create some truly incredible applications and programs. In fact many of you have inspired me to attempt to learn a little bit about programming myself and I have a few questions from the pros in here as to how I should start.
I do have some very basic, mostly self taught skills with SQL, Visual Basic 6.0, tcl (tool command language), UNIX, and a few other types of software but I’m not very skilled at all in any of them. I’m basically a small step above a ‘user’ but I learn fast, this stuff seems to come easily to me, and I have decent instincts on what to NOT try without consultation or research.
Anyway I’d like to become less dangerous (or more depending on how you look at it) and really learn one language on my own at first then maybe take some real classes. I’d like to gear or lean my learning towards a language that I can use to create PPC programs since that’s my main interest these days but I’m getting a little bit of conflicting info\recommendations. I’m being told to start playing with C and that I can then pretty much learn anything after that. I have someone else saying to just skip the C and start with C++ which is a little easier and has more ‘libraries’ so it isn’t as tedious to do certain things. I then have a guy who knows me and my capabilities somewhat well and said I should just jump right into .Net and the rest will fall into place.
So where would you start if you were basically a beginner and wanted to jump right in? I’d like to minimize the ‘curve’ on learning a new language and focus on one that will get me up and running and having fun fairly quickly and not have to learn one to learn another then a third which will get me where I want to be. I really appreciate all of your input in advance guys and gals!!
Dave
.Net is a great platform but you have to remember it is dependant on the .net framework. For this reason some people to use other languages such as c or c++
joel2009 said:
.Net is a great platform but you have to remember it is dependant on the .net framework. For this reason some people to use other languages such as c or c++
Click to expand...
Click to collapse
Thanks joel2009!! Looks like C++ is the way I'm going to go. I appreciate your help!!
Dave
You makes your choice........
If you need to use all the fancy .NET objects then it is C# or VB only. Don't bother with the .NET version of C++, as the type castings you have to use to get it to work makes the code hideously unreadable. Dont forget that the target version of the .NET runtime has to match that of the PPC it going to run on. What version is installed on your PPC ? Run \WINDOWS\CGACUTIL.EXE and it will cough up the results.
If it is a simple application use Embedded C++ and stick to the old WIN32 programming model. It is a bit of a pain to master, but your application will run like a bat out of hell. Respond to the WM_xxxxxxx messages sent by the OS to your app, and use the primitive HDC graphics routines to draw to the screen. It's a bit old hat these days but the compiled .EXE will run on nearly any PPC. (ARM compatable)
I never understood it because it seems to contradict itself.
One thing I hear a lot of is how hard it is to program for Windows Mobile devices. That it just isn't developer friendly as long as graphics and commands go. Can't say I know much about this since I'm not a developer.
Still at the same time I see a lot of crapware. By this I mean programs that are just constant repeats of each other and sometimes it's just a crappy do nothing program. Don't get me wrong I know developers take time and work to do what they do, but OMG some of the programs are complete crap. The games are sometimes nothing more than sprites taken from other games with a simple jump/shoot interface added to them. Apps that make fart sounds. 20 apps that schedule tasks. 100 clock apps. 1 millions custom UIs. etc. Constant same things that in the end don't really make the Windows Mobile OS anymore appealing. What confuses me is if programs are really that hard to develop then why are so many people able to create and recreate the crapware that we see nowaday?
I think one of the main reasons is that
1) Windows Mobile has been around for so long, the crap just build up
2) (no idea about this) I'd guess that if you can write a program for Windows, Windows mobile is not that much harder, so a greater number of people know how to write ****ty programs.
The one nice thing about iPhone is the market place is so crap free, though I'd rather have to wade through the crap to find the priceless gems then have someone else decide what I could and could not have on my device.
Moved as not software release.
Even with just reading topic header all that came to my head is least you don't have an iphone as then there's a amazing amount
As someone with experience of what it's like to develop apps for Windows Mobile I can shed a little light on it. One of the problems is what Microsoft provide to developers - called the compact framework - i.e. it's toolkit for building program interfaces. The interfaces it produces are very basic at best, and if you want to do anything clever (e.g. gradients, transparency, iphone style animated menus, image buttons, etc. etc.) you have jump through a lot of hoops.
Developers should be able to concentrate on writing what makes their app good, and not worry about having to make the interface looking good - that should be Microsoft's job. Unfortunately Microsoft have only provided very basic looking stuff. That'll change with windows phone 7 though.
Of course (and to defend Microsoft slightly) the iphone is easier for apple to support developers as it is one phone - whereas windows mobile is multiple screen resolutions, multiple OS versions, different processors, different manufacturers.... etc. Again why Microsoft are moving to a more defined hardware platform with windows phone 7 specs.
But it is possible to right really good/fancy interfaces for windows mobile - I like to think I do - but that's not through any support from Microsoft. To write a fancy animated menu with nice blending of colours and animated zooms and swishing left and right etc. etc. on the iphone takes 5 minutes. To do the equivalent on Windows Mobile took me about a month of writing my own GUI toolkit.
When it comes to games there's no excuse - the fact I can run playstation games such as Tekken 3 on my HD2 shows that it's capable of amazing things. The games companies need to stop shunting rubbish.
Ian
stylez said:
Moved as not software release.
Even with just reading topic header all that came to my head is least you don't have an iphone as then there's a amazing amount
Click to expand...
Click to collapse
I'd consider this to be true too, but the only thing I can say is that at least they have a considerable amount of games and apps that are new, newer looking and some more useful than others here. I personally don't like iPhone and own an HD2, but I just notice how useless so many apps are whenever I look through the apps section in Handango, PocketGear and WM Marketplace. Not to mention how outdated most of them are too.
you guys forget that there are alot of windows ce 5 devices still in exsistence and they are still alive and kiking.... sort of...
as for the newer devices i love what they have done with htc hardware... altho the OS updates culd be readialy available to us mortals
as for the crapware.... you can allways uninstall the program or never run it if it came with your phone....
id like to say that the sence ui is mostly a bothersome resorce hog that i shut down every time i hard reset or try to get a rom that dosent have it cooked in, it culd also be considered as crapware....
Are there any developers using Mono for development? Looking for some feedback on it...
Galaxy Red - DJ05 - Voodoo5 using XDA app
Mono with JIT enabled won't work on the Fascinate (or any Galaxy S device) until 2.2 is rolled out. Of particular note, this causes many problems with games authored in Unity3D. Cite: h t t p :// forum.unity3d.com/threads/62410-Galuxy-S-support#post409742
If I was drinking something I would have spit it out when I read the title of this post.
Sent from my SCH-I500 using XDA App
I wonder if some of the new Kernels that are being created are having the same issue ... but Unity isn't using Mono from my quick skim of the site. And from my reading, mono has its own JIT runtime. It would be interesting to know if anyone has used it yet.
http://monodroid.net
Uhhh...no
Lol...the CORRECT answer is why the f*ck would you want to? C# is M$ lame attempt to make a proprietary language. Why did the world need C# when Java is a perfectly good language? It didn't. .Net is garbage unless you want to write windows software, but that's lame....just sayin .
jfelectron said:
.Net is garbage unless you want to write windows software
Click to expand...
Click to collapse
Wait, you mean it's only useful for the exact thing it's ****ing intended for? Shocking.
jfelectron said:
Lol...the CORRECT answer is why the f*ck would you want to? C# is M$ lame attempt to make a proprietary language. Why did the world need C# when Java is a perfectly good language? It didn't. .Net is garbage unless you want to write windows software, but that's lame....just sayin .
Click to expand...
Click to collapse
There is just so much that can be gleaned from this post...
1) Obviously you've never actually tried developing in C#, because it's a complete pleasure to work with. Once you've used Visual Studio, it literally pains you to use anything else, because no other IDE comes close. I've used them all.
2) The entire point of this post is that .NET is not useless; The specification for .NET is completely open. And .NET is apparently good enough that people devoted their free time to develop Mono, thus enabling .NET development for Linux platforms. There's also Silverlight and ASP.NET which enable development of Web applications.
3) M$? Seriously? I remember back when the internet was invented and people thought that was funny. Now it's just kind of ignorant.
4) Refusing to open yourself up to multiple development technologies is a great way to find yourself irrelevant in a short amount of time.
5) Obvious troll is obvious. Sorry for feeding him.
bmxdad said:
I wonder if some of the new Kernels that are being created are having the same issue ... but Unity isn't using Mono from my quick skim of the site. And from my reading, mono has its own JIT runtime. It would be interesting to know if anyone has used it yet.
Click to expand...
Click to collapse
As a Unity3D dev, I can assure you that Unity3D is indeed powered by Mono. (With all the C# code I write every day it better be! )
That said: the 2.1-based kernels that are rolling out for the Fascinate do indeed suffer from this effect. In fact, Kaoscinate is unable to use Android's built in JIT interpreter due to this very effect. I was trying briefly to help him trace down the problem, but didn't have enough time to contribute. Maybe after our next game ships.
konistehrad , thanks for the reply.
I'm one of those stupid C# / Asp.Net developers, so its nice to know I'm not alone.
To jfelectron ... I wonder what the new windows phone is using .. O yea ... .Net and C# .... Go figure ...
bmxdad said:
I wonder if some of the new Kernels that are being created are having the same issue ... but Unity isn't using Mono from my quick skim of the site. And from my reading, mono has its own JIT runtime. It would be interesting to know if anyone has used it yet.
http://monodroid.net
Click to expand...
Click to collapse
In addition to Monodroid(which will require you pay a fairly hefty license fee for an independent developer) there is also Koush working on his own free open source port. This can be found here: http://www.koushikdutta.com/search/label/Mono
I'm not sure what all works in either implementation but I don't think either of them is ready for prime time yet.
I'll be in heaven when it is as I currently develop in VB.Net and swapping to eclipse is a nightmare, not having the .net framework is horrible as well because now I have to reinvent the wheel for dozens of objects.
Haha, I see the C# harpies have descended to inform us how wonderful their language is. It's not a question of how nice it is or isn't to use, it's a question of why fragment the development landscape with ANOTHER systems programming language that is a pretty blatant copy of Java. I don't think C# is fundamentally better than Java, so it just fragments minds away from common development goals and creates two independent efforts. This hurts everyone. It's fine to take an existing Mono/C# codebase and want to run it on Android. I just don't see why you would want to use something like MonoDroid to develop from scratch. The best apps will ALWAYS use the native APIs, there is just no reasonable way a secondary set of APIs that wrap native APIs will provide the same experience. The Evernote people were just talking about this, they have development teams for each platform, they don't look for write once run everywhere solutions because at the end of the day these deliver subpar experiences. If you don't know Java and Android APIs then learn them. Same for iOS. I'd do the same for WP7...that is if I wanted to work for a I decide the UI for you overlord.
I'm pretty sure that everyone participating constructively in this thread has mentioned that they're currently a .NET developer who has code written in VB/C#. It surprises me how much flak this thread is attracting when we're discussing tools and libraries that allow us to effectively and comfortably develop more software for the Android platform.
I develop mostly in Java, but language wise C# is way better. Java 7 still isn't getting lambdas, an when it does it's going to be really kludgy. Java language development has kind of died. Scala is pretty cool though. And Visual Studio is significantly better than eclipse, although IDEA is quite good too. I do like eclipse but it's just not as nice to work with and slower.
Yes ... C# is a redo of Java, kinda, but they moved it beyond what the Java was ... ***** about about MS all you want, they do have some good stuff. As for the API's, they're doors for us to use ... it all gets crunched down to 1's and 0's, so who cares how it gets there. Simplistic I know, but I'm sure you get what I'm saying.
They're already porting .net to the iPhone, so I was just wondering if anyone was interested ... didn't know I would touch a few nerves
jfelectron said:
Haha, I see the C# harpies have descended to inform us how wonderful their language is. It's not a question of how nice it is or isn't to use, it's a question of why fragment the development landscape with ANOTHER systems programming language that is a pretty blatant copy of Java. I don't think C# is fundamentally better than Java, so it just fragments minds away from common development goals and creates two independent efforts. This hurts everyone. It's fine to take an existing Mono/C# codebase and want to run it on Android. I just don't see why you would want to use something like MonoDroid to develop from scratch. The best apps will ALWAYS use the native APIs, there is just no reasonable way a secondary set of APIs that wrap native APIs will provide the same experience. The Evernote people were just talking about this, they have development teams for each platform, they don't look for write once run everywhere solutions because at the end of the day these deliver subpar experiences. If you don't know Java and Android APIs then learn them. Same for iOS. I'd do the same for WP7...that is if I wanted to work for a I decide the UI for you overlord.
Click to expand...
Click to collapse
By your logic why did anyone ever move away from programming in machine code? It was the purest and fastest executing code ever!
jfelectron said:
Haha, I see the C# harpies have descended to inform us how wonderful their language is. It's not a question of how nice it is or isn't to use, it's a question of why fragment the development landscape with ANOTHER systems programming language that is a pretty blatant copy of Java. I don't think C# is fundamentally better than Java, so it just fragments minds
Click to expand...
Click to collapse
Well, I didn't like J++. I felt the same way about C# until I did a test project with SharpDevelop. It really is a pleasure to use, most especially when coming from Java. Both languages also read very similarly and are easy to bounce between. In terms of fragmentation, it tends to come with the territory and might as well be accepted.
Learning something new isn't necessarily evil.
MS does decent development tools. CLR is open and in many aspects better than JVM. C# as language progressing way faster than java and puts it to shame way to often.
Read here from Koush. I guess that name rings a bell?
So, why not? Competition is great!
Unity and Mono
As a long time .Net developer I was drawn to Unity with significant suspicion of the Mono framework, I had always assumed that mono was going to be a slower, poor cousin of the official framework, but for my needs it has proved problem free on a range of Android devices. I chose Unity and Mono as a framework for game dev on android because I had a significant amount of code in c# from Windows Mobile 6 dev back in the day, and Unity had the 3d rendering capabilities I needed.
I'm using Unity game engine that uses Mono. C# is a great language that addresses many shortcomings in C++ and Java. However it is not possible to do everything in the mono-runtime on Android. C# to Java bridge is pain in the ass to implement.
Lets be realistic...
First came C and then that evolved to C++. Today the vast majority of operating systems are written in either C or C++. I have NO idea what Object C is (iOS) but I am sure it is evolved from one of these as well.
Java was an attempt to produce a machine generic programming language where the code runs on any machine. This language was based on C (C++?) and as such is very similar to C(c++) in many areas. However to reach this generic level all compiled code is compiled to a machine independent code and run on an interpreter. This code then is slightly slower than if the same program was written in C or C++. But can be run on MANY machines without porting which is not the case with C or C++.
C# was intended to be an extension of C++. After MS's failed attempt at J they put their energy behind C#. C# has now become a very viable C++ replacement on MS machines to a point it doesn't make much sense to write in anything else unless you are writing system level code for which C++ or C makes sense. Somewhere along the failure with MS's attempt at a Java clone they decided to make .NET a "standard" library which allowed Mono to become reality. C# has evolved over time to incorporate many of the great ideas that Java has included but have come up with many new ideas of their own. Realistically it comes down to which do you feel more comfortable programming in. Java or C#. C# with it's .Net libraries can be much easier to write for than Java simply because of the Libraries available.
On another note, I saw a product recently that looks very promising. dot42 is a product that appears to be looking to make a compiled C# program for Android. This by passes the need for the code interpreter and could potentially be as fast as C++ or C code for running on Android.
Hey Guys (and Gals),
I've been in the tech scene for a while, rooting and unlocking android/softmodding psps and xboxs for fun. However recently I wanted to contribute to the scene, and I'm kind of in a dilemma. I want to make a few apps, nothing crazy ambitious just learn how to. Though I'm not sure what platform to do it on. I am kind of torn about doing it on Android or doing it on the Windows marketplace. I want the simplest setup, (i have 2 windows 7 computers, and a htc rezound and toshiba thrive and tf300). I took a college course on C++ but it didn't even touch on guis or go that far in depth. So basically I am starting from scratch either way.
I like android and have a few pieces from them, but I feel as windows is just getting a start it would be a good chance to start also. Furthermore what language is best for each platform? I have heard java for android, but heard a c type program is overtaking, and html and javascript for windows. Any input is greatly appreciated
adamsaur said:
Hey Guys (and Gals),
I've been in the tech scene for a while, rooting and unlocking android/softmodding psps and xboxs for fun. However recently I wanted to contribute to the scene, and I'm kind of in a dilemma. I want to make a few apps, nothing crazy ambitious just learn how to. Though I'm not sure what platform to do it on. I am kind of torn about doing it on Android or doing it on the Windows marketplace. I want the simplest setup, (i have 2 windows 7 computers, and a htc rezound and toshiba thrive and tf300). I took a college course on C++ but it didn't even touch on guis or go that far in depth. So basically I am starting from scratch either way.
I like android and have a few pieces from them, but I feel as windows is just getting a start it would be a good chance to start also. Furthermore what language is best for each platform? I have heard java for android, but heard a c type program is overtaking, and html and javascript for windows. Any input is greatly appreciated
Click to expand...
Click to collapse
Woo! Somewhere I can be helpful.
I'd recommend researching a few game engines / frameworks. For example, check out Marmalade SDK (google madewithmarmalade), it's a cross-platform game engine that will abstract your game from the hardware it's running on.
I'd also suggest sticking with c/c++, it's probably the most versatile, and you'll be able to use it with Android, and iOS (and I believe the new Windows 8 mobile platform).
Hope that helps!
Jamie W said:
Woo! Somewhere I can be helpful.
I'd recommend researching a few game engines / frameworks. For example, check out Marmalade SDK (google madewithmarmalade), it's a cross-platform game engine that will abstract your game from the hardware it's running on.
I'd also suggest sticking with c/c++, it's probably the most versatile, and you'll be able to use it with Android, and iOS (and I believe the new Windows 8 mobile platform).
Hope that helps!
Click to expand...
Click to collapse
thanks, ill definitely look that up, any suggestions for tutorials on using c++ with android/windows?
Hello everyone.
I have had an idea for an app. It's not entirely original, and I am completley green when it comes to app development, but I'm a keen "skills collector" so wouldn't mind learning how to do this. (the end product for me is just the bonus) where would I start?
I am looking to create basically a "control" surface, Similar to any of the Remote Keyboard apps , or any of the "game controllers" but for a specific game, with unique, specific graphics (animations would be a plus. All I would need (yeah I know it's probably not a simple endeavour) is to have custom graphics, trigger keyboard inputs. (analogue control would be a bonus) does anyone have any idea of where to start learning / app builder for someone so new,? I understand I would have to have a client on the PC, would I start by learning how to create that? Or start on the Android side? Basically, What I want to learn how to do, Is make Buttons, Press keystrokes on a PC from an android device.
In my limited Research, Downloading Android Studio, I came across my first Hurdle. Do I Choose to learn Kotlin or Java?
I appreciate your time. Thank you.