Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a dev who mostly uses the Microsoft stack (C#/Silverlight/WPF/ASP MVC/.net framework) Although I am adding HTML5/CSS3/shivs/jQuery when using ASP.net MVC.

I have the opportunity to do some Android mobile phone work but am unsure if/how my current skillset would apply.

Anyone out there made this crossover transition? What new skillset is involved? What IDE development software would I need?

UPDATE:

Thanks everyone for pointing me in a good directions! As a result, I took a couple of hours to check out Eclipse & the Android sdk plugin. So far, I find many comforting similarities between android and the MS stack that I’m used to.

These are my discoveries (maybe help some noobs like me!):

--The Eclipse+AndroidSDK development environment is complete, understandable and is very much like visual studio.

--Java is very “c#-like”.

--Android separates the code (.java) from the layout markup (.xml).

--Android’s layout markup is very much like silverlight.

--Android has built-in basic controls with basic styling.

--Android has some really useful built-in widgets! (I’m guessing it accepts custom add-in widgets also?)

--Android Activities are like c# classes: methods/local properties + class-wide properties. Create instance & use them.

--Activity lifecycles are understandable: Overrides -- onCreate(), onStart(), onResume(), onStop(), onRestart(), onDestroy().

--Android connects user events with event-handlers through the use of Listeners.

--Android uses a lot of “magic string” references in both .xml and .java (Oh-noooooo!)

--Found a great YouTube series “android tutorial & lessons” by CornBoyzAndroid (more than 30 informative episodes!)

--Android does try/catch/finally for error catching similarly to c#

I’m still exploring, and I’m sure I’ll find answers to my further questions, like:

--How does android deal with remote and local data? (database access, local storage, Linq).

--How does android do asynchronous or long-lasting work? (callbacks, polling, sockets).

--I see android exposes threading…possibly useful, but I need more info.

--Does android have frameworks like MVVM or MVC and what about unit testing?

Again, thanks everyone for your help!!! -- Mark

share|improve this question

migrated from stackoverflow.com Aug 15 '11 at 4:01

This question came from our site for professional and enthusiast programmers.

add comment

3 Answers

up vote 6 down vote accepted

You will need to learn Java, obviously. C# is not that different from Java, and seeing you are anything but a "single-language-programmer" , you should be able to adapt quickly.

The IDE of choice, as recommended by google, is Eclipse. I am sure all programmers know about eclipse but here is the link anyway http://www.eclipse.org

You also need a Android Developer Account ( US$25 ) if you want to actually deploy your app on the offical Android Market. Without one, you can still develop locally and installs your App on a device, so registering one isn't in any hurry.

Finally the best resources for beginning Android Dev, is actually the official site. Google does a good job documenting all the configs and startups, with some tutorials: http://developer.android.com

No matter how many ebooks I find, or how many sites I visit, I have always returned to the official Android Developers website for reference, my guess is you would too.

As for Dev forums, stackoverflow has a tonne of Android questions, but I can recommend another one named XDA Developers.

Good luck

share|improve this answer
    
Thanks Gapton, eclipse appears useful! –  markE Aug 15 '11 at 20:24
add comment

You can look into Monodroid which will allow you to develop for Android using C# code in Visual Studio. You will still have to learn about the Android specific concepts though as Monodroid is just a mapping layer with the additional advantage that you can still use .NET (Mono) library code and continue to develop in C#.

On the flip side the number of developers using Monodroid does seem to be fairly small, there are much more resources available online for java Android code.

If you go the pure Android route you will want to get Eclipse as a java development environment and the Android SDK / plugins. Also of course you will need the emulator.

As coding goes Java is similar to C# in many aspects, but both languages do some things differently so there is a learning curve involved, albeit not a steep one.

share|improve this answer
    
Thanks BrokenGlass –  markE Aug 15 '11 at 17:10
    
Beware, MonoDroid (and MonoTouch, if you ever get there) are quite pricey and may be out of your budget. –  ashes999 Feb 6 at 23:02
add comment

You'll need to learn Java, unless you decide to use a toolkit like Appcelerator Titanium, in which case you can use Javascript and also target iPhone with (largely) the same codebase. They have also recently acquired Aptana Studio and rebadged it, so you have an Eclipse-based IDE there, with deployment and debugging built in.

The other thing you will need for Android development is an absolute beast of a PC with as much memory as you can fit into it for running the simulator, and a physical Android device of course.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.