Logo th.androidermagazine.com
Logo th.androidermagazine.com

การแยกส่วน 'การแยกส่วน': นักพัฒนาปิดการสนับสนุนหลายหน้าจอ

สารบัญ:

Anonim

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

มีหลายวิธีในการแก้ไขปัญหาที่เกิดขึ้นเมื่อคุณใช้หน้าจอที่มีขนาดและความหนาแน่นต่างกัน Apple มีรายการแยกต่างหากสำหรับแอพที่ออกแบบมาสำหรับ iPhone กับ iPad Microsoft สร้างระบบนิเวศใหม่สำหรับอุปกรณ์หน้าจอขนาดใหญ่ Android เป็นวิธีสำหรับนักพัฒนาในการทำให้แอพเดียวกันทำงานต่างกันสำหรับหน้าจอที่แตกต่างกัน มีวิธีที่ดีและไม่ดีสำหรับแต่ละวิธี แต่เราจะมุ่งเน้นไปที่ Android ที่นี่

ใน Android แอปพลิเคชันสามารถปรับเค้าโครงสำหรับหน้าจอขนาดต่าง ๆ รวมถึงความละเอียด ทั้งหมดนี้มีในตัว แต่มีบางสิ่งที่นักพัฒนาจำเป็นต้องประกาศในรหัสเพื่อให้แอปดูดี สิ่งที่ควรคำนึงถึงก็คือขนาดและความหนาแน่นของหน้าจอจะเปลี่ยนรูปลักษณ์ของแอปอย่างไร Droid DNA มีหน้าจอความละเอียดสูงกว่าแท็บเล็ต Motorola XOOM แต่เราไม่ต้องการเห็นรูปแบบแท็บเล็ตสำหรับแอพบนหน้าจอขนาดโทรศัพท์

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

มันฟังดูซับซ้อน แต่สิ่งนี้ส่วนใหญ่ทำเพื่อคุณเมื่อเข้ารหัสแอป นักพัฒนาทั้งหมดต้องทำคือการประกาศที่ถูกต้องและให้สินทรัพย์ที่เหมาะสมเพื่อสนับสนุนขนาดใด ๆ (ทั้งทางกายภาพและความละเอียด) หรือรูปแบบ แม้แต่แอพเลย์เอาต์หลายรูปแบบเช่นแอป Google+ ใช้รหัสเดียวกันเพื่อครอบคลุมทุกหน้าจอที่นึกออก

เราไม่ได้พยายามตัดสินนักพัฒนาที่นี่ แอพเขียนยาก นักพัฒนา Android ได้สั่งสอนทั้งหมดนี้มาตั้งแต่การเปิดตัว Gingerbread แต่มันใช้งานได้จริงอย่างไร? เราถามนักพัฒนาบางคนเกี่ยวกับเรื่องนี้ดูสิ่งที่พวกเขาพูดหลังจากหยุดพัก

เพิ่มเติม: เว็บไซต์นักพัฒนาซอฟต์แวร์ Android ของ Google

เราถามนักพัฒนาจำนวนหนึ่ง (ทั้งใหญ่และเล็ก) คำถามพื้นฐานสองสามข้อเกี่ยวกับเรื่องนี้

  • มันยากแค่ไหนที่จะปฏิบัติตามแนวทาง?
  • มันดูง่ายบนกระดาษ แต่มีประเด็นพิเศษที่คุณเคยเห็นหรือส่วนที่ Google ไม่ได้กล่าวถึงหรือไม่
  • สิ่งนี้มีผลกระทบต่อเวลาและค่าใช้จ่ายในการพัฒนาอย่างไรบ้าง
  • มีอะไรเพิ่มเติมเกี่ยวกับหัวข้อที่คุณต้องการแบ่งปัน?

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

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

Joe Simpson (@kennydude) - Boid

Joe เป็นสมาชิกของ Team Boid และเผยแพร่แอปพลิเคชันด้วยตนเอง เขา (และทีมอื่น ๆ ของเขา) เป็นตัวอย่างที่ยอดเยี่ยมของนักพัฒนาอิสระที่มีความหลงใหลใน Android ที่ได้พัฒนาแอพพลิเคชั่นที่น่าทึ่ง

การปฏิบัติตามหลักเกณฑ์นั้นค่อนข้างยากโดยเฉพาะถ้าคุณต้องการแอพแบบลีน แต่ผู้คนต้องการความเข้ากันได้ด้านหลัง หนึ่งในสิ่งที่น่ารำคาญที่สุดคือการเห็นสิ่งที่ดูเหมือนใน d.android.com/design แต่ไม่มีอะไรเกี่ยวกับวิธีการทำเช่นนั้น

จุดอ่อนกำลังรีเฟรชเมื่อคุณไม่สามารถใช้ GCM เนื่องจากทาง Twitter และคุณไม่ต้องการใช้ PtR นอกจากนี้แอพของ Google ยังจัดทำหลักเกณฑ์ของตัวเอง ยกตัวอย่างเช่นใช้บานหน้าต่างสไลด์ด์ Google+ ทำสิ่งที่แตกต่างจาก YouTube (แม้ว่าฉันจะรู้ว่าห้องสมุดสนับสนุนกำลังจะสร้างสิ่งนี้)

นอกจากนี้คุณสามารถไปยังจุดหนึ่งและไม่มีเอกสารเกี่ยวกับบางสิ่ง (เช่น EdgeEffect)

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

Boid กำลังจะเปิดตัวโอเพนซอร์สเร็ว ๆ นี้ (yay!) และคุณสามารถค้นหาแอปได้ใน Google Play คุณจะพบแอพทั้งหมดของ Joe (มีอัญมณีอยู่ด้วย) ที่นี่

Christophe Versieux - BeTrains - SNCB เบลเยี่ยม; HoloEverywhere

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

นอกจากนี้เขายังได้ร่วมกันพัฒนา HoloEverywhere ซึ่งเป็นห้องสมุดที่ผู้พัฒนารายอื่นสามารถใช้เพื่อสร้างแอพพลิเคชั่นสไตล์ Holo สำหรับ Android 2.1 และสูงกว่า ด้วยโทรศัพท์จำนวนมากที่ยังคงใช้ Gingerbread นี่คือการปฏิบัติจริงสำหรับนักพัฒนาที่ต้องการให้แอพของพวกเขาดูทันสมัยอยู่เสมอ

มันไม่ยากเลย อย่างจริงจัง. ส่วนที่ยากมาเมื่อลูกค้าขอให้ออกไปจากแนวทางเหล่านั้น!

ฉันจำลูกค้าที่ต้องการให้ฉันวางแท็บที่ด้านล่างของหน้าจอปุ่ม iPhone ได้ทุกที่สลับกับสไตล์ iPhone และโครงการนี้ยากที่จะประสบความสำเร็จจริง ๆ และฉันเสียเวลาและเงินไปมาก

ฉันโกรธเขามากเมื่อเขาถามเรื่องโง่ ๆ เหล่านี้และเขาแค่คิดว่าฉันเป็นนักพัฒนาที่ขี้เกียจ

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

ไลบรารี่อย่าง ActionBarSherlock, HoloEverywhere (การสร้างของฉัน), UnifiedPreferences, และ SlideMenu นั้นใช้งานง่ายและให้ประสบการณ์การใช้งานที่ยอดเยี่ยมในโค้ดไม่กี่บรรทัด

เวลาและค่าใช้จ่ายดังที่ฉันได้กล่าวไปนั้นลดลงโดยทำตามแนวทางของ Google โฟลเดอร์แฟรกเมนต์และเลย์เอาต์ใช้งานง่าย (และสำคัญยิ่งกว่าการใช้ซ้ำ): แอปแท็บเล็ตเพิ่งหยิบโค้ดจากโครงร่างโทรศัพท์และไม่ต้องเขียนใหม่ การเปลี่ยนแปลงเล็กน้อยในแอพโทรศัพท์จะปรากฏขึ้นทันทีในแอปแท็บเล็ตเนื่องจากมีการใช้แฟรกเมนต์เดียวกัน

บางโครงการที่น่าอัศจรรย์ถูกสร้างขึ้นโดยชุมชนไม่ใช่ Google เสมอไป บางคนใช้งานมากใน Google+ เช่น Roman Nurik (Google), Reto Meier (Google) Juhani Lehtimäki, Jake Wharton, Taylor Ling,.. (ฉันกลัวที่จะลืมคนสำคัญเสมอ) เป็นคนที่มีความรู้ นักพัฒนาจำเป็นต้องรู้ว่าจะดูที่ไหนและการพัฒนา Android จะง่ายสำหรับพวกเขา!

คุณสามารถค้นหา BeTrains บน Google Play และคุณจะต้องการดู HoloEverywhere ถ้าคุณสนใจพัฒนา Android

Matthew Runo - Zappos

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

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

แนวทางการออกแบบไม่ได้เป็นทั้งหมดและสิ้นสุดทั้งหมด - ในท้ายที่สุดพวกเขาอยู่ที่นั่นเพื่อพยายามผลักดันการออกแบบแอพ android เพื่อให้สอดคล้องกันมากขึ้น เราพบว่าไลบรารี่โอเพ่นซอร์ส "ใหม่" ส่วนใหญ่ที่เราเคยใช้นั้นได้กลายเป็นส่วนหนึ่งของแนวทาง (เมนูแบบเลื่อน, crouton)

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

ปีนี้เราเริ่มต้นจากการเขียนแอพของเราใหม่เพื่อทำงานกับชิ้นส่วน ในช่วง 6 เดือนที่ผ่านมาเราได้ทำงานอย่างหนักเพื่อเพิ่มการสนับสนุนแท็บเล็ต 7 "และขณะนี้เรากำลังทำงานกับการสนับสนุน 10" สิ่งที่ยากที่สุดที่ต้องทำคือการทดสอบอุปกรณ์ แต่เรามีทีมงาน QA ที่ยอดเยี่ยมที่ช่วยได้ เรามี 2 คนทำงานเต็มเวลาในแอพของเราตั้งแต่เดือนสิงหาคมเป็นต้นไปก่อนหน้านี้เป็น 1 คนเต็มเวลา

บรรทัดล่างคือฉันคิดว่าแนวทางการออกแบบหุ่นยนต์ช่วยให้เราปรับปรุงกระบวนการของเรา - และลดค่าใช้จ่าย ลองหน้ามันนักออกแบบส่วนใหญ่จาก iOS - ดังนั้นการมีทรัพยากรที่ดีเยี่ยมเช่น design.android.com เป็นความช่วยเหลือที่ยอดเยี่ยมในการเริ่มต้นในระบบนิเวศ Android

ฉันสามารถพูดได้ว่าตัวเลือกการออกแบบของ Zappos ทำงานได้ดีและภรรยาของฉันมีตู้เสื้อผ้าที่เต็มไปด้วยเสื้อผ้ากระเป๋าและรองเท้าบูทที่เสริมสร้างการเรียกร้องของฉัน ลองใช้แอพ Android จาก Google Play

Josh Burton - jRemote

Josh ได้เขียนแอปพลิเคชั่นเล็ก ๆ มากมายสำหรับ Android และแอปพลิเคชั่น jRemote ของเขา (มันเป็นคอนโทรลเลอร์สำหรับโปรแกรม jDownloader PC ยอดนิยม) เป็นตัวอย่างที่สมบูรณ์แบบของการใช้เลย์เอาต์เพื่อสร้างแอปที่ดูยอดเยี่ยมทั้งบนโทรศัพท์และแท็บเล็ต ช่วยเพิ่มการใช้หน้าจออุปกรณ์ให้สูงสุดและให้ข้อมูลที่คุณต้องการอย่างที่คุณคาดหวัง

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

มันทำให้ฉันผิดหวังจริง ๆ ว่าอุปกรณ์มากมายไม่มีเค้าโครงแท็บเล็ต หากแอปของคุณสร้างขึ้นโดยใช้ชิ้นส่วนการเพิ่มเลย์เอาต์แท็บเล็ตสามารถทำได้ภายใน 30 นาที จริงๆแล้วมันง่ายมาก

ฉันคิดว่าสำหรับนักพัฒนาจำนวนมากพวกเขาไม่มีอุปกรณ์แท็บเล็ตที่จะทดสอบและการใช้ตัวจำลองอาจเป็นเรื่องเจ็บปวด แต่เครื่องมือ ADT ใหม่ที่เพิ่งเปิดตัวนั้นทำให้ง่ายขึ้นมาก มุมมองการกำหนดค่าหลายรายการในเครื่องมือแก้ไขเลย์เอาต์หมายความว่าคุณสามารถดูว่าเลย์เอาต์ของคุณมีลักษณะอย่างไรบนหน้าจอขนาดต่างๆ 5-6 ขนาดในคราวเดียว และมันรวดเร็ว แน่นอนว่าคุณจะต้องทดสอบกับเครื่องจำลอง / อุปกรณ์ในท้ายที่สุด แต่แน่นอนว่ามันจะช่วยเร่งความเร็วในการทำงาน

jDownloader เป็นโปรแกรมที่ใช้งานง่ายบนเดสก์ท็อปของคุณและ jRemote ดูเหมือนเป็นวิธีที่ยอดเยี่ยมในการควบคุม หากไม่มีสิ่งอื่นใดให้ดาวน์โหลดจาก Google Play และดูเพียงเพื่อดูว่าแอพสามารถเรียบง่ายและสวยงามในเวลาเดียวกันได้อย่างไร

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