ฉันกำลังย้ายแอพจาก iOS ไปยัง Android: ฉันต้องรู้อะไรบ้าง [ปิด]


15

ฉันควรหลีกเลี่ยงหลุมพรางอะไร

  • กระบวนทัศน์ของภาษา Java ใดที่ผู้พัฒนา Objective-C เข้าใจผิดอย่างต่อเนื่อง ฉันเรียนรู้ที่จะเขียนโปรแกรมใน Java แต่ฉันไม่ได้ทำงานอะไรนอกจาก Objective-C มานานหลายปีแล้ว
  • รูปแบบการออกแบบแตกต่างกันระหว่าง Android และ iOS อย่างไร
  • หากคุณทำการเปลี่ยนแปลงด้วยตัวเองส่วนใดของ Android ที่ทำให้คุณสับสนหรือใช้เวลาเรียนรู้นานกว่าที่ควรจะเป็น
  • Eclipse OS X IDE ที่ดีที่สุดสำหรับ Android หรือไม่

สำหรับบันทึกแอปของฉันเชื่อมโยงกับ UIKit และมูลนิธิอย่างแน่นหนาดังนั้นคำว่า "การย้าย" อาจเป็นชื่อเรียกที่ไม่ถูกต้อง ฉันจะเขียนมันใหม่อย่างสมบูรณ์สำหรับ Android ไม่มีการใช้รหัสซ้ำ นอกจากนี้ฉันกำลังทำสิ่งนี้เพื่อเรียนรู้ Android ดังนั้นฉันจึงค่อนข้างล้มเหลวที่พอร์ตและเรียนรู้ Android มากกว่าใช้ทางลัด


เป็นพื้นหลังเล็กน้อยคำถามนี้ได้รับการแจ้งจากประเภทของคำถามที่ฉันเห็นใน Stackoverflow บ่อยครั้งที่คุณสามารถบอกได้ว่าพื้นหลังของใครบางคนคืออะไร (C # หรือ Java) โดยข้อผิดพลาดที่โง่เง่าเมื่อพวกเขาพยายามเขียน Obj-C ฉันต้องการหลีกเลี่ยงข้อผิดพลาดชนิดต่าง ๆ ที่ทำให้ผู้พัฒนา Java สนใจและพูดว่า "นักพัฒนา Silly Objective-C พวกเขาจะไม่เรียนรู้หรือไม่"


2
Is Eclipse the best OS X IDE for Android?ใช่ ADT ทำงานได้ไม่ดีกับเน็ตบุ๊กที่ฉันลอง Eclipse เป็น IDE ที่แนะนำ
Keyo

@Keyo: เอ๊ะ เมื่อฉันลองใช้กับ Netbeans ปีครึ่งที่ผ่านมามันใช้งานได้ดี เมื่อเวลาผ่านไปมันจะดีขึ้นไหม?
TheLQ

ในการตอบความเห็นต่อการตอบกลับของ @ Nassign: ฉันจะได้รับคำตอบเพิ่มมากขึ้นถ้าฉันโพสต์ใน Stackoverflow แต่การเรียกดูโปรแกรมเมอร์ดูเหมือนว่ามีคำถามประเภทนี้มากมายที่ถูกย้ายมาที่นี่ ถ้ามันเหมาะสมกว่าสำหรับฟอรัมนั้นฉันสามารถถามมันตรงนั้นได้
kubi

ฉันคิดว่าคุณจะได้รับคำตอบเพิ่มเติมหากคุณวางไว้ใน stackoverflow
Nassign

1
@kubi นี่คือสถานที่ที่ดีที่จะถามสิ่งนี้และเหมาะกับวัตถุประสงค์ของเว็บไซต์นี้: หวังว่าคุณจะได้รับคำตอบบางอย่างฉันสนใจตัวเอง

คำตอบ:


11

ฉันกำลังย้ายแอพจาก iOS ไปยัง Android เป็นแอพของคนอื่นที่ฉันทำงานด้วยเพื่อทำพอร์ต แต่ก็ไม่ได้ทำอะไรเลย

ก่อนอื่นฉันจะบอกว่าฐานผู้ใช้ได้รับการสอนวิธีการที่แตกต่างกันอย่างมากในการโต้ตอบกับอุปกรณ์ของพวกเขา สิ่งนี้มาจากการออกแบบแอพพลิเคชั่นจริงรวมถึงวิธีการทำงานของอุปกรณ์

บางสิ่งทั่วไป:

  • ต้องใช้ Landscape ในอุปกรณ์ Android
  • แอพ Android มีแนวโน้มที่จะทำงานต่อไปเมื่อไม่ได้ใช้งานดังนั้นคุณต้องคิดเกี่ยวกับเรื่องนี้เกี่ยวกับปัญหาเครือข่าย gps และอื่น ๆ
  • การแบ่งกลุ่มอุปกรณ์มีอุปกรณ์ Android และความละเอียดหน้าจอมากมายซึ่งเป็นที่ซึ่งเลย์เอาต์ที่สัมพันธ์กันและภาพที่มีเก้าแพทช์มีประโยชน์มาก

ผู้ยิ่งใหญ่ที่หลายคนไม่เคยคิดมาก่อนว่าYour UI can not be exactly the same on both devicesมันจะคล้ายกัน แต่การย้ายพอร์ต UI ของ iPhone ไปยังอุปกรณ์ Android นั้นทำได้ไม่ดีนัก

เหตุผลบางอย่าง:

  • เมนูบริบทแบบสัมผัสยาว
  • ป๊อปอัปเมนู
  • การแบ่งส่วนอุปกรณ์ทำให้เกิดความละเอียดและอัตราส่วนภาพที่ต่างกัน
  • ไม่ใช่ตัวควบคุมเดียวกันที่ใช้งานได้

ส่วนท้ายไม่ได้เป็นเรื่องใหญ่เพราะส่วนใหญ่เป็นเพียงการใช้กลุ่มหลักของสิ่งที่คุณทำงานกับ Java และ Android SDK ปัญหาที่ใหญ่ที่สุดของฉันมาจากสิ่งที่ผู้ใช้คาดหวังและพฤติกรรมและความแตกต่างของ UI บางครั้งก็ดีขึ้นและบางครั้งก็แย่ลง มันขึ้นอยู่กับว่าแอพของคุณกำลังทำอะไร

แก้ไข

ฉันเพิ่งรู้ว่าฉันไม่ได้ตอบคำถามในส่วนของคุณดังนั้นไปเลย (อย่างน้อยก็ดีที่สุด)

ฉันจะไม่พูดว่ามีกระบวนทัศน์ภาษาขนาดใหญ่ที่ Obj-C devs เข้าใจผิดฉันจะบอกว่า Java อาจจะง่ายกว่าที่จะได้รับสิ่งที่ฉันต้องการให้ทำจากมุมมอง OOP (ฉันควรจะบอกว่าฉันทำงานกับ. NET และ Java เท่านั้นและรู้จัก Obj-C มากพอที่จะผ่าน)

ฉันจะใช้ Eclipse แน่นอนฉันเหนื่อยกับการใช้ IntellijIdea สักพักหนึ่งและมันก็ทำให้ฉันมีปัญหามากมายที่พยายามทำให้มันทำบางสิ่ง


เมื่อคุณพูดว่า "จำเป็นต้องใช้แนวนอน" คุณหมายถึงอะไรเพิ่มเติมจากแนวตั้ง? แอพของฉันทำบางสิ่งในพื้นหลังบน iOS ฉันต้องยกเลิกการใช้งานพื้นหลังอย่างชัดเจนหรือไม่หากฉันไม่ต้องการทำอะไรในพื้นหลัง
kubi

@kubi ใช่แล้วยังเป็นแนวตั้งอีกด้วยเพราะชุดอุปกรณ์ที่ดีมีคีย์บอร์ดฮาร์ดแวร์ที่ทำให้อุปกรณ์อยู่ในแนวนอนเมื่อใช้งาน บนพื้นหลังความจริงที่ว่าแอพยังคงทำงานเมื่อผู้ใช้สลับแอพ
msarchet

+1 (หรือมากกว่า): "การย้าย iPhone UI ไปยังอุปกรณ์ Android จะทำได้ไม่ดีนัก" นั่นเป็นความจริง: อันที่จริง UI อาจแตกต่างกันมากเนื่องจาก lib ที่มีอยู่นั้นแตกต่างกัน
Dan Rosenstark

IntelliJ Idea ใช้งานได้ดีสำหรับการพัฒนา Android สำหรับฉัน รักมัน
Alexander Babaev

3

[คำตอบนี้คือการเดินหรือการคุยโว ฉันจะลบมัน แต่คิดว่ามันน่าสนใจ: แจ้งให้เราทราบผ่านความคิดเห็นหากฉันควรลบมันและฉันจะ]

ฉันไม่ทำงานบน Android แต่ฉันทำงานบน Java และ iOS (ด้วย Obj-C) สิ่งหนึ่งที่แตกต่างกันมากเกี่ยวกับการพัฒนา Java คือ IDE สามารถช่วยได้มากน้อยเพียงใด (ผู้คนจะบอกคุณว่าอย่าใช้ IDE ซึ่งแตกต่างอย่างสิ้นเชิงกับสิ่งเดียวกัน: บางคนแนะนำให้ใช้กับ Java แต่) . XCode โดยทั่วไปไม่สามารถแม้แต่จะตรวจพบข้อผิดพลาดทางไวยากรณ์ที่ง่ายที่สุด (เนื่องจากโครงสร้างของภาษาฉันคิดว่า) ใน Java ตรงกันข้าม IDE สามารถทำให้คุณเคลื่อนที่เร็วกว่าที่คุณไม่มีอยู่ นอกจากนี้คุณยังสามารถทำสิ่งที่ยอดเยี่ยมเช่นการเขียนโปรแกรมการโทรและการเขียนวิธีการ ใน Eclipse เช่นถ้าฉันพิมพ์

blah.doIt(firstObj, secondObj);

และfirstObjและsecondObjเป็นStringอินสแตนซ์ IDE จะให้ตัวเลือกในการสร้างวิธีการที่มี sig "public void doIt (String firstObj, String secondObj)" มันเจ๋งจริงๆและแค่ปลายภูเขาน้ำแข็ง: IDE คือเพื่อนของคุณ ฉันได้ยินมาว่า IntelliJ อาจจะดูเท่กว่าเดิม

คำตอบนี้มีข้อผิดพลาดหรือไม่? บางทีอาจเป็นเพราะการคิดว่า IDE มีบทบาทเดียวกันใน Obj-C และ Java ใน Java นั้น IDE สามารถทำสิ่งต่าง ๆ ที่ยากต่อการทำด้วยตัวเอง การปรับโครงสร้างอัตโนมัติโดยวิธีการของจาวาทำให้มีประสิทธิภาพมากกว่าของ XCode 100 เท่า ซึ่งหมายความว่าคุณสามารถเลื่อนคำถามการออกแบบจนกระทั่งภายหลัง


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