Zależy od platformy
Android - JAVA, C # (przez MonoDroid)
iPhone - Cel C, C # (przez MonoTouch)
Windows Phone - C # (Silverlight)
Meego - C ++ (QT)
Symbian - C ++, JAVA
Myślę, że większość firm rezygnuje z Symbian. Smartfony to przyszłość. I dla każdego rodzaju smartfona OS, C # / mono będzie dostępny (trzeba zapłacić dodatkowo, ale użyteczność jest tego warta) wraz z rodzimym językiem platformy. Możesz więc wybrać C #.
Prawdziwa niezależność od platformy może nie zostać osiągnięta, ale jeśli używasz C # wszędzie, będziesz mógł używać tych samych bibliotek podstawowych i dostosować interfejs użytkownika dla platformy.
Ale w przypadku tanich telefonów C # nie zadziała. Musisz iść na JAVA.
Nie mogę powiedzieć konkretnie o Motorolli lub Nokii, ale musisz pamiętać, jaką platformę obsługuje ten telefon. Lepiej byłoby rozwijać się w Javie, ponieważ jest to bardziej popularna platforma i nie musi zależeć tylko od telefonów z systemem Windows. Jeszcze jedna rzecz C # jest tak bezwstydnie zbliżona do Javy, że kompilator krzyżowy działa w przypadku aplikacji komputerowych. Może to dotyczyć również aplikacji mobilnych.
źródło
Jeśli chcesz opracować dla Windows Phone 7, C # jest idealny (VB.NET już wkrótce.) Możesz wykorzystać dowolną wiedzę na temat Silverlight lub XNA. Nie mam pojęcia, czy platforma odniesie sukces, ale dlaczego nie dopracować swojej aplikacji za pomocą znanego języka, a następnie przenieść ją na inne języki, gdy masz pewność co do wygody użytkownika, logiki, obliczeń itp.? Emulator jest najwyraźniej bardzo dobry i można go uzupełnić emulatorem akcelerometru i emulatorem gps, aby wykonywać wszystko oprócz wykonywania połączeń telefonicznych. (A tak naprawdę, kto używa smartfonów do wykonywania połączeń?)
źródło
Zacząłem pisać aplikacje na Androida w Javie, mając wcześniejsze doświadczenie w C #. Przekonałem się, że wiele podstawowych pojęć języka jest podobnych, więc po prostu chodziło o poznanie kilku różnic, zwłaszcza w bibliotekach. Jeśli potrafisz się uczyć, kodowanie w drugim byłoby bardzo proste (na podstawie mojego doświadczenia).
Poleciłbym zacząć od Java. Android jest na dobrej drodze, aby stać się najpopularniejszym mobilnym systemem operacyjnym, więc wiesz, że na pewno będzie dostępny przez jakiś czas. Ponadto Java jest starsza, więc dostępnych jest wiele bibliotek i samouczków, z których można korzystać i uczyć się od nich. Gdy zrozumiesz podstawowe pojęcia związane z Javą, nauka języka C # powinna być dziecinnie prosta - i naprawdę docenisz niektóre fajne funkcje (takie jak atrybuty i LINQ), które ma do zaoferowania język C #.
Oświadczenie: Zacząłem od C # (głównie do programowania stron ASP.NET MVC), a potem nauczyłem się Java do pisania aplikacji na Androida. Nie zrobiłem żadnego programowania mobilnego z C #, więc nie mogę ci powiedzieć, jak to jest.
źródło
Może zapisuj to w „myśleniu lateralnym”, ale jeśli masz przyzwoite umiejętności w „czystych” technologiach internetowych - HTML, JavaScript, CSS - i w zależności od tego, co próbujesz osiągnąć, sprawdź coś takiego jak PhoneGap (http: // www .phonegap.com / about). Oprócz obsługi urządzeń z systemem iOS (iPhone, iPad) i Androida, mają także wsparcie dla Symbian. Będziesz jednak na ogół potrzebować narzędzi „natywnych” do tworzenia własnych aplikacji binarnych. Na przykład, jeśli chcesz zrobić programistę dla iPhone'a, potrzebujesz iPhone'a SDK, XCode i działającego OSX.
źródło