นักพัฒนาควรรู้ / ที่อยู่เพื่อสร้างแอพ Android เชิงพาณิชย์อย่างไร [ปิด]


21

การพัฒนา Android และมือถือเป็นพื้นที่ที่น่าตื่นเต้นสำหรับการพัฒนา เนื่องจากเป็นวินัยใหม่ผู้พัฒนา android ควรคาดหวังว่าจะสร้างแอพพลิเคชั่นที่แข็งแกร่งในเชิงพาณิชย์ในแง่ของทักษะอะไร? ปัญหาที่ฉันและฉันคิดว่า "noobs" อื่น ๆ อีกมากมายในเทคโนโลยีต้องการทราบคือพื้นที่ของทักษะทางเทคนิคและความก้าวหน้าของหัวข้อขั้นสูงที่จำเป็นซึ่งนอกเหนือไปจากพื้นฐานที่ Google มีให้ มีข้อมูลจำนวนมากที่ค่อนข้างมีประโยชน์ แต่ไม่ได้จัดอยู่ในหมวดหมู่ของวินัยหรือคำสั่ง

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


คุณหมายถึง "คุณภาพในเชิงพาณิชย์" หรือ "เพื่อสร้างรายได้" และถ้าในภายหลังคุณหมายถึงการทำงานในพื้นที่หรือโดยการเขียนและขายแอพด้วยตัวคุณเอง?
Jon Hopkins

@ จอน ไม่รวมพื้นที่เหล่านี้ แต่ (ฉันคิดว่า) มีนักพัฒนาจำนวนมากออกมาเหมือนฉันที่ต้องการขยายองค์กรปัจจุบันของพวกเขาไปสู่อุปกรณ์ได้อย่างมีประสิทธิภาพ ดังนั้นที่ไม่เกี่ยวข้องกับ "การทำเงิน" หรือการหางานใหม่เพียงแค่ขยายองค์กรสำหรับผู้บริหารที่หิวกระหายข้อมูล / นักรบถนน
angryITguy

สิ่งที่ฉันกำลังมองหาคือคำแนะนำจากนักพัฒนาอาวุโสใน Android ที่มี "ooh! คุณควรอ่านสิ่งนี้ก่อนจากนั้นจึงใช้ HTTP หรือสิ่งนี้เพื่อดึงดูดการออกแบบส่วนต่อประสานและสิ่งนี้สำหรับการวาด 2D / 3D ... " ฉันได้อัปเดตคำถามเพื่อสะท้อนถึงสิ่งนี้แล้ว
angryITguy

คำตอบ:


16

คำถามนี้มีหลายแง่มุม:

จากมุมมองทางเทคนิคให้ตอบ "ได้อย่างไร"

มีเทคโนโลยีหลายอย่างที่จะเชี่ยวชาญรวมถึง "มีความสุข"

  1. จำนวนหนึ่งเป็นJava ใน Android SDK ตั้งอยู่บนสมมติฐานที่ว่าปพลิเคชันทั้งหมดจะถูกเขียนใน Java แม้ว่า arguably มีบางโซลูชันของ บริษัท อื่นที่เกิดขึ้นใหม่เพื่อพัฒนาใน. net (ดูmonodroid ), หลังจากทั้งหมด, ระบบปฏิบัติการพื้นฐานคือ Linux

  2. ประการที่สองคือคราส แม้ว่าจะมี SDK ของบุคคลที่สามอยู่รอบตัว แต่นักพนันบางคนก็ใช้ ADT, IntellijหรือNetbeansแต่ความพยายามของ Google นั้นมุ่งเน้นไปที่ eclipse อย่างเป็นทางการเท่านั้น

แก้ไข: ณ เดือนมกราคม 2559 Google สนับสนุน Android Studio อย่างเป็นทางการอย่างเป็นทางการแล้ว

ในสถาปัตยกรรม Android มีการสร้างบล็อคจำนวนหนึ่งซึ่งการเปิดรับเล็กน้อยจะเป็นประโยชน์เสมอ:

  1. SQLite

  2. แนวคิดทั่วไปของการสตรีมวิดีโอและเสียงตัวแปลงสัญญาณ สำหรับ OpenCore (android.media)

  3. การวาดภาพ OpenGL

  4. REST แบบอิงเว็บเซอร์วิส, XML หรือ JSON

  5. ความคิดเกี่ยวกับสถาปัตยกรรม ARM สำหรับการพัฒนารหัสพื้นเมือง

นอกจากนี้การอ่านใน Crystal Bowl ของฉันนักพัฒนา Android ควรรู้จัก Linux และมีความเชี่ยวชาญในภาษาท้องถิ่นสำหรับวันที่ Google คู Java และแทนที่มันด้วยGoหรือสิ่งอื่น ๆ ที่พวกเขาอาจจะต้มที่ไหนสักแห่ง (ดูความคิดริเริ่ม" Native Client " ในโดเมนเบราว์เซอร์) Google ได้เปิดตัวNDK (ชุดพัฒนาท้องถิ่น)สำหรับ c และ C ++ โดยใช้กลไก JNI มาตรฐานเพื่อเสริม Dalvik

จากมุมมองเชิงพาณิชย์ให้ตอบ "อะไร"

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

มีแอปพลิเคชั่น Android มากมายที่ยังไม่มีผู้นำตลาด แต่ไม่จำเป็นต้องเกี่ยวข้องกับการเคลื่อนไหว (หรือแอพที่น่าเบื่อ "ปกติคือ นี่คือบางส่วนที่ฉันไม่สามารถออกไปจากใจของฉันเป็นการส่วนตัว (จนกว่าฉันจะมีเวลามากขึ้น ;-)

  1. สอนให้ลูกวาดและอ่าน

  2. FlashCards เพื่อเรียนรู้ภาษาต่างประเทศ

  3. คู่มือ TV-UK + FreeSat + รีโมทคอนโทรล

  4. ของคุณที่นี่ (สูตรอาหาร ... ฯลฯ )


ฉันชอบคำตอบของคุณคุณสามารถให้ลิงค์ที่คุณใช้สำหรับ SQLLite, Webservices / REST / JSON และ OpenGL ได้หรือไม่?
angryITguy

12

พูดตามตรงฉันคิดว่าคุณต้องมีแค่ Google และทำวิจัย

นี่คือลิงค์ที่น่าสนใจที่ฉันพบซึ่งอาจเป็นจุดเริ่มต้นที่ดี

นอกจากนี้ยังมีอื่น ๆ อีกมากมายในเอกสารประกอบของ Google ที่คุณกล่าวถึง

หวังว่าสิ่งนี้จะช่วยให้คุณเริ่มต้นค้นหารายละเอียดที่คุณต้องการ!

โชคดี


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

+1 เพื่อลบค่าลบ พลัสจะช่วยให้บางส่วนเชื่อมโยงที่ดี :)
คาร์เรนหนุ่ม

@Darren Young - ขอบคุณ แต่ฉันแค่สนใจว่าทำไมมันถึงได้รับการโหวต ดังนั้นฉันสามารถใช้เว็บไซต์ได้ดีขึ้น แต่ยินดีต้อนรับ +1 เสมอ!

@Digger ขอบคุณสำหรับข้อมูลนั้น นี่คือรายการระดับที่ฉันจัดการเพื่อค้นหาแล้ว ฉันหวังว่านักพัฒนาอาวุโสมากขึ้นจะ / จะเข้ามาและใช้คำตอบนี้อีกเล็กน้อย +1
angryITguy

@giulio - ขอบคุณหวังว่าคุณจะพบข้อมูลที่คุณต้องการ

5

คู่มือผู้พัฒนาอย่างเป็นทางการของ Google

ฉันจะดูคู่มือ dev ของ Google สำหรับ Android ซึ่งมีแนวทางปฏิบัติที่ดีที่สุดและแนวทางในการทำให้แอปของคุณสอดคล้องกับรูปลักษณ์ของแอพ Android


ขอบคุณ ฉันได้ค้นพบ Google SDK และคู่มือนักพัฒนาซอฟต์แวร์แล้ว ( developer.android.com/guide/index.html ) แต่พบว่ามีจำนวนมากที่ขาดหายไปสำหรับการพัฒนาและปรับใช้แอพพลิเคชั่นในเชิงพาณิชย์
angryITguy

3

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

นอกจากนี้ฉันจะดูที่ Appcelerator Titanium ซึ่งเป็นเครื่องมือที่ช่วยให้คุณสามารถพอร์ตโค้ดจากสภาพแวดล้อมประเภทจาวาสคริปต์ / เว็บ dev ไปเป็นรหัสเนทิฟบน iPhone, iPad และ Android ฉันพบว่ามันเป็นวิธีที่มีประโยชน์ในการสร้างแอปขนาดเล็กได้อย่างรวดเร็ว คุณสามารถดาวน์โหลดตัวอย่าง 'ครัวอ่างล้างจาน' ซึ่งแสดงชื่อตามตัวอย่างที่แสดงให้เห็นถึงฟังก์ชั่นพื้นฐานทั้งหมดที่มีอยู่ ฉันขอแนะนำที่นี่ให้เป็นจุดเริ่มต้น


ขอบคุณที่ดูไทเทเนียม ฉันได้อัปเดตคำถามเพื่อช่วยให้ผู้ตอบสนองด้วยสิ่งที่ฉันกำลังมองหาในคำตอบ
angryITguy

2

ฉันมักจะพบ 3 สิ่งที่ขาดหายไปในนักพัฒนามือถือใหม่หลังจากทักษะพื้นฐานด้วยภาษาการเขียนโปรแกรมที่จำเป็นและความรู้เกี่ยวกับเครื่องมือ SDK และห้องสมุด (ซึ่งไม่ใช่วิทยาศาสตร์จรวด ... อายุ 14 ปีมีการพัฒนาแอปรายงาน)

  1. การพัฒนาสำหรับสภาพแวดล้อมที่มีข้อ จำกัด CPU, หน่วยความจำ, พิกเซลแสดงผลและพลังงานแบตเตอรี่ที่มีอยู่นั้น จำกัด มากขึ้นในอุปกรณ์มือถือ โปรแกรมเมอร์บางคนไม่เคยสัมผัสการเขียนโปรแกรมที่รวดเร็วและเล็ก คุณไม่สามารถคิดวิธีแก้ปัญหาแบบเดียวกับที่คุณทำได้เมื่อคุณมีแร็คที่มีกำลังไฟและความเย็น 5kW ฯลฯ เรียนรู้เทคนิคบางอย่างที่ตัวจับเวลาเก่าใช้ในการเขียนโค้ดเกมที่ยอดเยี่ยมบนซีพียู 1MHz 48kB ของหน่วยความจำหรือบางอย่างเช่น อาจฝึกเขียนโค้ดบน Arduino หรือคอนโทรลเลอร์ขนาดเล็กอื่น ๆ

  2. ความคุ้นเคยกับ UI โดยทั่วไปผู้ใช้จะโต้ตอบกับอุปกรณ์พกพาในรูปแบบที่แตกต่างจากระบบเดสก์ท็อป ถือหนึ่งรอบ อาจมีหลายรุ่น ใช้มัน. ใช้แอพและบทวิจารณ์มากมาย (ไม่ใช่คุณสมบัติ แต่) วิธีที่ง่ายต่อการใช้งานในสภาพแสงที่ไม่ดีในการตียานพาหนะที่กำลังเคลื่อนที่ ฯลฯ อ่านและอ่าน HIG มือถือที่หลากหลายทั้งหมด รู้ว่าผู้ใช้ชอบอะไรและไม่ชอบเกี่ยวกับแพลตฟอร์ม UI เฉพาะที่คุณกำลังเข้ารหัส

  3. มุมแหลมคุ้นเคย เครื่องมือและไลบรารีบางรายการเป็นของใหม่และมี "นิสัยใจคอ" อ่านกระดานสำหรับนักพัฒนาเพื่อหาปัญหาและแนวทางแก้ไขเพื่อที่คุณจะได้ไม่ติดอยู่กับการทำผิดพลาดแบบเดียวกับที่นักพัฒนาซอฟต์แวร์คนอื่น ๆ ฉันเห็นคำถามเกี่ยวกับสแต็คโอเวอร์โฟลว์มากเกินไปเกี่ยวกับวิธีการทำสิ่งที่ฮาร์ดแวร์ API หรือรูปแบบการกระจายแอพไม่อนุญาต ทั้ง บริษัท เสียเวลาพยายามทำสิ่งที่เป็นไปไม่ได้สำหรับ iPhone App store


น่าสนใจ .. คุณสามารถให้การอ้างอิงใด ๆ ไปยังเว็บไซต์ที่ครอบคลุมหัวข้อเหล่านั้นได้หรือไม่?
angryITguy

1

ฉันฝึกจูเนียร์ของฉันในลักษณะต่อไปนี้

ขั้นตอนที่ 1: ฉันขอให้พวกเขาเห็นแอปพลิเคชั่นฟรีในตลาด Android และการสาธิต API เพราะพวกเขายังสามารถจับความคิดได้ ( http://developer.android.com/resources/samples/ApiDemos/index.html ) และhttp://www.androidpeople.com/

สำหรับอินสแตนซ์: แอพ IBNLive สำหรับ Android เพราะเมื่อพวกเขาเห็นแอปพลิเคชันนี้พวกเขาสามารถเข้าใจอย่างถ่องแท้ว่าสิ่งเหล่านี้เป็นสิ่งที่เป็นไปได้เพราะเหตุใดเราจึงไม่สามารถสร้าง / ใช้ออกแบบหรือควบคุมหรือใช้งานได้

ขั้นที่ 2: เมื่อพวกเขาได้รับความหวังโดยการเห็นแอปพลิเคชันที่มีอยู่พวกเขาสามารถค้นหา Google รวมถึงคู่มือนักพัฒนาซอฟต์แวร์ Android ซึ่งทำหน้าที่เป็นพระคัมภีร์สำหรับ Android และได้รับรู้

สำหรับอินสแตนซ์: จูเนียร์ของฉันมีไอเดียจากมุมมองรายการที่ขยายได้และการแจ้งเตือนแบบพุชจากนั้นทำการค้นหาวิธีที่เราสามารถทำสิ่งเหล่านี้จากนั้นพวกเขาพบว่าการแจ้งเตือนแบบพุชเราสามารถใช้การส่งข้อความบนคลาวด์ 2 อย่างยอดเยี่ยม


0

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

ดังนั้นก่อนที่จะเริ่มเรียนรู้การพัฒนา Android ให้สร้างภาพที่ชัดเจนเกี่ยวกับสิ่งที่คุณต้องการบรรลุวิธีการทำให้สำเร็จและไม่ว่ามันจะยั่งยืนจริงหรือไม่

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