Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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 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?


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


migration rejected from Nov 24 '14 at 21:39

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as too broad by gnat, GlenH7, MichaelT, Kilian Foth, amon Nov 24 '14 at 21:39

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

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.


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