ฉันควรเรียนรู้ java สำหรับการพัฒนาแอปพลิเคชันมือถือหรือ C # จะต้องทำอย่างไร


9

ฉันรอคอยที่จะเจาะลึกลงใน. NET Framework แต่แอปพลิเคชันมือถือส่วนใหญ่ดูเหมือนจะได้รับการพัฒนาใน Java ฉันอาจจะกำหนดเป้าหมายโทรศัพท์ที่มีค่าน้อยกว่าอย่าง Nokia และ motorolla ไม่ใช่ android หรือ iphone OS ฉันสามารถทำสิ่งเหล่านี้ใน C # ได้หรือไม่?

java  c#  mobile 

คำตอบ:


9

ไม่ C # จะไม่ทำ คุณต้องเรียนรู้ Java และไม่ใช่ J2SE แต่เป็น J2ME เพราะโทรศัพท์มือถือระดับล่างส่วนใหญ่รองรับ J2ME เท่านั้น อย่างไรก็ตามคุณอาจต้องการพิจารณา Android อีกครั้งเพราะเป็นที่นิยมอย่างมากแม้จะเป็นโทรศัพท์ระดับล่าง อย่างไรก็ตามภาษาสำหรับ J2ME และ Android เป็นทั้ง Java


7

ขึ้นอยู่กับแพลตฟอร์ม -

Android - JAVA, C # (ผ่าน MonoDroid)
IPhone - วัตถุประสงค์ C, C # (ผ่าน MonoTouch)
Windows Phone - C # (Silverlight)
Meego - C ++ (QT)
Symbian - C ++, JAVA

ฉันคิดว่า Symbian จะถูกทิ้งโดย บริษัท ส่วนใหญ่ โทรศัพท์สมาร์ทเป็นอนาคต และสำหรับระบบปฏิบัติการสมาร์ทโฟนทุกประเภทจะมี C # / โมโน (คุณต้องจ่ายเพิ่ม แต่ใช้งานได้คุ้มค่า) พร้อมกับภาษาแพลตฟอร์มดั้งเดิม ดังนั้นคุณสามารถไป C #

ความเป็นอิสระของแพลตฟอร์มที่แท้จริงอาจไม่ประสบความสำเร็จ แต่ถ้าคุณใช้ C # ทุกที่คุณจะสามารถใช้ไลบรารีหลักเดียวกันและปรับแต่ง UI สำหรับแพลตฟอร์ม

แต่สำหรับโทรศัพท์ราคาถูก C # จะไม่ทำ คุณต้องไปหา JAVA


1
+1 สำหรับการพูดถึงตัวเลือก Mono * หากความต้องการสูงพอจากนักพัฒนาซอฟต์แวร์พวกเขาจะแยกออกไปยังแพลตฟอร์มโทรศัพท์อื่นเช่นกัน
Agent_9191

ตกลงนักพัฒนาโมโนพูดถึงการสนับสนุน WebOS ก่อนที่จะแยก Novell ดังนั้นคุณไม่มีทางรู้เลย!
wonea

1

ไม่สามารถบอกได้เป็นพิเศษเกี่ยวกับ Motorolla หรือ Nokia แต่คุณต้องจำไว้ว่าแพลตฟอร์มใดที่โทรศัพท์ของคุณรองรับ คุณจะพัฒนา Java ได้ดีขึ้นเนื่องจากเป็นแพลตฟอร์มที่ได้รับความนิยมมากขึ้นและไม่จำเป็นต้องพึ่งมือถือ Windows เท่านั้น อีกสิ่งหนึ่งที่ C # อยู่ใกล้กับ Java อย่างไร้ยางอายจนคอมไพเลอร์ไขว้ทำเคล็ดลับสำหรับแอปเดสก์ท็อป


1
ฉันต้องการเห็น Cross Compiler นี้ - มันจัดการอย่างไรกับความจริงที่ว่าไลบรารีที่ไปกับภาษานั้นแตกต่างกันมาก ๆ
Bevan

1

ถ้าคุณต้องการพัฒนาสำหรับ Windows Phone 7, C # นั้นสมบูรณ์แบบ (VB.NET กำลังจะมาเร็ว ๆ นี้) คุณสามารถใช้ประโยชน์จากความรู้ Silverlight หรือ XNA ที่คุณมีเช่นกัน ฉันไม่รู้ว่าแพลตฟอร์มจะประสบความสำเร็จหรือไม่ แต่ทำไมไม่ปรับแต่งแอปของคุณด้วยภาษาที่คุณรู้จักจากนั้นจึงย้ายไปยังภาษาอื่น ๆ เมื่อคุณมั่นใจในประสบการณ์การใช้ตรรกะการคำนวณและอื่น ๆ เห็นได้ชัดว่าอีมูเลเตอร์นั้นดีมากและสามารถเสริมด้วย accelerometer-emulator และ gps-emulator ให้ทำทุกอย่างยกเว้นการโทรศัพท์ (และจริงๆใครใช้สมาร์ทโฟนในการโทร?)


ปกติแล้วฉันจะเห็นด้วย แต่ OP บอกว่าเขาเป็น "รอคอยที่จะเจาะลึกเข้าไปใน. NET Framework" ดังนั้นฉันไม่แน่ใจว่าเขาคุ้นเคยกับ C # อยู่แล้ว นอกจากนี้เท่าที่ฉันชอบภาษาตลาดสำหรับ Windows Phone ดูเหมือนจะขาดความดแจ่มใสเล็กน้อย
Davy8

1

ฉันเริ่มเขียนแอพ Android ใน Java ที่มีประสบการณ์มาก่อนใน C # ฉันพบว่าแนวคิดพื้นฐานของภาษามีความคล้ายคลึงกันดังนั้นจึงเป็นเรื่องของการเรียนรู้ความแตกต่างเล็กน้อยโดยเฉพาะกับห้องสมุด หากคุณสามารถเรียนรู้การเข้ารหัสในอื่น ๆ จะง่ายมาก (ตามประสบการณ์ของฉัน)

ฉันจะแนะนำให้เริ่มต้นด้วย Java Android กำลังจะกลายเป็นระบบปฏิบัติการมือถือที่ได้รับความนิยมสูงสุดดังนั้นคุณจะรู้ว่ามันจะอยู่ในช่วงระยะเวลาหนึ่ง นอกจากนี้ Java มีอายุมากกว่าดังนั้นจึงมีห้องสมุดและแบบฝึกหัดมากมายให้คุณใช้และเรียนรู้จาก เมื่อคุณเข้าใจแนวคิดหลักของ Java แล้วการเรียนรู้ C # ควรเป็นเรื่องง่ายและคุณจะประทับใจกับคุณลักษณะที่ประณีต (เช่นคุณสมบัติและ LINQ) ที่ C # นำเสนอ

ข้อจำกัดความรับผิดชอบ: ฉันเริ่มต้นด้วย C # (เป็นหลักสำหรับการพัฒนาเว็บ ASP.NET MVC) จากนั้นเรียนรู้ Java สำหรับการเขียนแอป Android ฉันยังไม่ได้เขียนโปรแกรมมือถือกับ C # ดังนั้นฉันไม่สามารถบอกคุณได้ว่ามันเป็นอย่างไร


0

อาจใช้ไฟล์นี้ภายใต้ "คิดด้านข้าง" แต่ถ้าคุณมีทักษะที่เหมาะสมในเทคโนโลยีเว็บที่ "บริสุทธิ์" - HTML, JavaScript, CSS - และขึ้นอยู่กับสิ่งที่คุณพยายามจะทำให้ลองดู PhoneGap (http: // www) .phonegap.com / เกี่ยวกับ) นอกจากการรองรับอุปกรณ์ iOS (iPhone, iPad) และ Android แล้วพวกเขายังรองรับ Symbian อย่างไรก็ตามโดยทั่วไปคุณจะต้องใช้เครื่องมือ "ดั้งเดิม" เพื่อสร้างแอปไบนารีดั้งเดิมของคุณ ตัวอย่างเช่นหากคุณต้องการทำ iPhone dev คุณจะต้องมี sdk iPhone, XCode และใช้งาน OSX

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.