Apple นำเสนอเมื่อสัปดาห์ที่แล้วเหนือสิ่งอื่นใด Apple TV ใหม่ ด้วยระบบปฏิบัติการ tvOS ความจริงที่ว่าสามารถติดตั้งแอปพลิเคชันจาก App Store ในกล่องดำใหม่ทำให้นักพัฒนามีความสุขมากที่สุดอย่างแน่นอน
นักพัฒนามีสองทางเลือก พวกเขาสามารถเขียนแอพเนทีฟที่สามารถเข้าถึงฮาร์ดแวร์ Apple TV ได้อย่างสมบูรณ์ SDK ที่มีอยู่ (ชุดไลบรารีสำหรับนักพัฒนา) คล้ายกับสิ่งที่นักพัฒนารู้จักอยู่แล้วจาก iPhone, iPad และภาษาการเขียนโปรแกรมเหมือนกัน - Objective-C และ Swift รุ่นน้อง
แต่สำหรับแอปพลิเคชันที่เรียบง่ายกว่า Apple เสนอตัวเลือกที่สองให้กับนักพัฒนาในรูปแบบของ TVML - ภาษามาร์กอัปโทรทัศน์ หากคุณรู้สึกว่าชื่อ TVML ดูน่าสงสัยเหมือน HTML แสดงว่าคุณพูดถูก จริงๆ แล้วเป็นภาษามาร์กอัปที่ใช้ XML และคล้ายกับ HTML มาก เพียงแต่ง่ายกว่ามากและมีไวยากรณ์ที่เข้มงวดกว่า แต่มันสมบูรณ์แบบสำหรับแอปพลิเคชันอย่าง Netflix อย่างยิ่ง และผู้ใช้ก็จะได้รับประโยชน์เช่นกัน เนื่องจากความเข้มงวดของ TVML จะทำให้แอปพลิเคชันมัลติมีเดียมีรูปลักษณ์และการทำงานเหมือนกันมาก
เส้นทางสู่การสมัครครั้งแรก
สิ่งแรกที่ฉันต้องทำคือดาวน์โหลดเวอร์ชันเบต้าใหม่ของสภาพแวดล้อมการพัฒนา Xcode (เวอร์ชัน 7.1 พร้อมใช้งานแล้ว ที่นี่- สิ่งนี้ทำให้ฉันสามารถเข้าถึง tvOS SDK และสามารถเริ่มโปรเจ็กต์ใหม่ที่มีเป้าหมายไปที่ Apple TV รุ่นที่สี่โดยเฉพาะ แอปนี้อาจเป็นได้เฉพาะ tvOS เท่านั้น หรือสามารถเพิ่มโค้ดลงในแอป iOS ที่มีอยู่เพื่อสร้างแอป "สากล" ซึ่งเป็นรุ่นที่คล้ายกับแอป iPhone และ iPad ในปัจจุบัน
ปัญหาที่หนึ่ง: Xcode เสนอความสามารถในการสร้างแอปแบบเนทีฟเท่านั้น แต่ฉันพบส่วนในเอกสารประกอบอย่างรวดเร็วซึ่งจะช่วยให้นักพัฒนาเปลี่ยนโครงสร้างนี้และเตรียมพร้อมสำหรับ TVML โดยพื้นฐานแล้ว มันเป็นโค้ดเพียงไม่กี่บรรทัดใน Swift ที่สร้างออบเจ็กต์แบบเต็มหน้าจอบน Apple TV และโหลดส่วนหลักของแอปซึ่งเขียนด้วย JavaScript อยู่แล้ว
ปัญหาที่สอง: แอปพลิเคชัน TVML นั้นคล้ายกับหน้าเว็บมาก ดังนั้นโค้ดทั้งหมดจึงถูกโหลดจากอินเทอร์เน็ตด้วย จริงๆ แล้วตัวแอปพลิเคชันนั้นเป็นเพียง "bootloader" ซึ่งมีเพียงโค้ดขั้นต่ำและองค์ประกอบกราฟิกขั้นพื้นฐานที่สุด (ไอคอนแอปพลิเคชันและสิ่งที่คล้ายกัน) ในท้ายที่สุด ฉันใส่โค้ด JavaScript หลักลงในแอปได้สำเร็จ และอย่างน้อยก็สามารถแสดงข้อความแสดงข้อผิดพลาดที่กำหนดเองได้เมื่อ Apple TV ไม่ได้เชื่อมต่อกับอินเทอร์เน็ต
ปัญหาเล็ก ๆ ประการที่สาม: iOS 9 และด้วย tvOS กำหนดให้การสื่อสารทั้งหมดไปยังอินเทอร์เน็ตต้องเข้ารหัสผ่าน HTTPS อย่างเคร่งครัด นี่เป็นฟีเจอร์ที่เปิดตัวใน iOS 9 สำหรับแอพทั้งหมด และเหตุผลก็คือแรงกดดันต่อความเป็นส่วนตัวของผู้ใช้และความปลอดภัยของข้อมูล ดังนั้นจึงจำเป็นต้องปรับใช้ใบรับรอง SSL บนเว็บเซิร์ฟเวอร์ สามารถซื้อได้ในราคาเพียง 5 ดอลลาร์ (120 คราวน์) ต่อปี หรือคุณสามารถใช้บริการ CloudFlare ซึ่งจะดูแล HTTPS ด้วยตัวมันเองโดยอัตโนมัติและไม่ต้องลงทุน ตัวเลือกที่สองคือปิดข้อจำกัดนี้สำหรับแอปพลิเคชัน ซึ่งสามารถทำได้ในตอนนี้ แต่ฉันจะไม่แนะนำอย่างแน่นอน
หลังจากอ่านเอกสารไม่กี่ชั่วโมง ซึ่งยังคงมีข้อผิดพลาดเล็กน้อยเป็นครั้งคราว ฉันก็สร้างแอปพลิเคชันพื้นฐานแต่ใช้งานได้จริง โดยแสดงข้อความยอดนิยม "Hello World" และปุ่มสองปุ่ม ฉันใช้เวลาประมาณสองชั่วโมงในการพยายามทำให้ปุ่มใช้งานได้และทำอะไรบางอย่างจริงๆ แต่เมื่อพิจารณาถึงช่วงเช้าตรู่ ฉันเลือกที่จะเข้านอนมากกว่า... และนั่นก็เป็นสิ่งที่ดี
เมื่อวันก่อน ฉันมีความคิดที่สดใสที่จะดาวน์โหลดแอปพลิเคชัน TVML ตัวอย่างสำเร็จรูปจาก Apple โดยตรง ฉันพบสิ่งที่ฉันกำลังมองหาอย่างรวดเร็วในโค้ด และปุ่มก็ใช้งานได้จริง เหนือสิ่งอื่นใด ฉันยังได้ค้นพบสองส่วนแรกของบทช่วยสอน tvOS บนอินเทอร์เน็ต แหล่งข้อมูลทั้งสองช่วยได้มาก ดังนั้นฉันจึงเริ่มโครงการใหม่และเริ่มแอปพลิเคชันจริงครั้งแรก
การสมัครจริงครั้งแรก
ฉันเริ่มต้นใหม่ทั้งหมดตั้งแต่หน้า TVML หน้าแรก ข้อดีคือ Apple ได้เตรียมเทมเพลต TVML สำเร็จรูป 18 แบบสำหรับนักพัฒนาที่ต้องคัดลอกจากเอกสารประกอบ การแก้ไขเทมเพลตหนึ่งรายการใช้เวลาประมาณหนึ่งชั่วโมง เนื่องจากฉันกำลังเตรียม API ของเราเพื่อส่ง TVML ที่เสร็จแล้วพร้อมข้อมูลที่จำเป็นทั้งหมดไปยัง Apple TV
เทมเพลตที่สองใช้เวลาประมาณ 10 นาทีเท่านั้น ฉันได้เพิ่ม JavaScript สองตัว - โค้ดส่วนใหญ่ในนั้นมาจาก Apple โดยตรง ดังนั้นทำไมต้องคิดค้นวงล้อใหม่ Apple ได้เตรียมสคริปต์ที่ดูแลการโหลดและการแสดงเทมเพลต TVML รวมถึงตัวบ่งชี้การโหลดเนื้อหาที่แนะนำและการแสดงข้อผิดพลาดที่อาจเกิดขึ้น
ในเวลาไม่ถึงสองชั่วโมง ฉันสามารถรวบรวมแอปพลิเคชัน PLAY.CZ ที่เปลือยเปล่าแต่ใช้งานได้ สามารถแสดงรายการสถานีวิทยุ กรองตามประเภท และเริ่มวิทยุได้ ใช่ มีหลายสิ่งหลายอย่างที่ไม่ได้อยู่ในแอป แต่การทำงานขั้นพื้นฐาน
[youtube id=”kLKvWC-rj7Q” width=”620″ height=”360″]
ข้อดีก็คือ โดยพื้นฐานแล้วแอปพลิเคชันนี้ไม่มีอะไรมากไปกว่าเวอร์ชันพิเศษของเว็บไซต์ ซึ่งขับเคลื่อนโดย JavaScript และคุณยังสามารถใช้ CSS เพื่อปรับเปลี่ยนรูปลักษณ์ได้อีกด้วย
Apple ยังคงต้องการการเตรียมการเพิ่มเติมอีกสองสามอย่าง ไอคอนแอปพลิเคชันไม่ใช่ไอคอนเดียว แต่มีสองไอคอน - เล็กลงและใหญ่ขึ้น ความแปลกใหม่คือไอคอนไม่ใช่รูปภาพธรรมดา แต่มีเอฟเฟกต์พารัลแลกซ์และประกอบด้วย 2 ถึง 5 เลเยอร์ (พื้นหลัง วัตถุที่อยู่ตรงกลางและเบื้องหน้า) รูปภาพที่ใช้งานอยู่ทั้งหมดทั่วทั้งแอปพลิเคชันสามารถมีเอฟเฟกต์เหมือนกันได้
จริงๆ แล้วแต่ละเลเยอร์เป็นเพียงรูปภาพบนพื้นหลังโปร่งใส Apple ได้เตรียมแอปพลิเคชันของตนเองสำหรับรวบรวมรูปภาพแบบเลเยอร์เหล่านี้ และสัญญาว่าจะออกปลั๊กอินสำหรับส่งออกสำหรับ Adobe Photoshop เร็วๆ นี้
ข้อกำหนดอีกประการหนึ่งคือรูปภาพ "ชั้นบนสุด" หากผู้ใช้วางแอปในตำแหน่งที่โดดเด่นในแถวบนสุด (บนชั้นวางด้านบน) แอปนั้นจะต้องมีเนื้อหาสำหรับเดสก์ท็อปเหนือรายการแอปด้วย อาจมีเพียงแค่รูปภาพธรรมดาๆ หรืออาจเป็นพื้นที่ใช้งานก็ได้ เช่น รายการภาพยนตร์เรื่องโปรด หรือในกรณีของเราคือสถานีวิทยุ
นักพัฒนาจำนวนมากเพิ่งเริ่มสำรวจความเป็นไปได้ของ tvOS ใหม่ ข่าวดีก็คือการเขียนแอพเนื้อหานั้นง่ายมาก และ Apple ได้ช่วยเหลือนักพัฒนาด้วย TVML ไปมากแล้ว การสร้างแอปพลิเคชัน (เช่น PLAY.CZ หรือ iVyszílő) ควรง่ายและรวดเร็ว มีโอกาสที่ดีที่แอปพลิเคชั่นจำนวนมากจะพร้อมในเวลาเดียวกันกับที่ Apple TV ใหม่วางจำหน่าย
การเขียนแอพแบบเนทีฟหรือการย้ายเกมจาก iOS ไปยัง tvOS จะมีความท้าทายมากกว่า แต่ก็ไม่มากนัก อุปสรรคที่ใหญ่ที่สุดคือการควบคุมที่แตกต่างกันและขีดจำกัด 200MB ต่อแอป แอปพลิเคชันแบบเนทีฟสามารถดาวน์โหลดข้อมูลบางส่วนจากร้านค้าได้เท่านั้น และต้องดาวน์โหลดข้อมูลอื่นๆ เพิ่มเติม และไม่มีการรับประกันว่าระบบจะไม่ลบข้อมูลนี้ อย่างไรก็ตาม นักพัฒนาจะจัดการกับข้อจำกัดนี้ได้อย่างรวดเร็วอย่างแน่นอน ต้องขอบคุณชุดเครื่องมือที่เรียกว่า "App Thinning" ซึ่งเป็นส่วนหนึ่งของ iOS 9 เช่นกัน
บทความที่ดี ขอบคุณ. บางทีในเวลานี้เราจะได้เห็นโซลูชันผู้ใช้จาก Apple สำหรับการเตรียมแอปพลิเคชัน (โซลูชัน) ที่ง่ายกว่าเท่าที่จะเป็นไปได้ด้วย FileMaker สำหรับ iOS โดยที่ฉันไม่ได้เป็นนักพัฒนา
ตามทฤษฎีแล้ว... ตัวโหลด Swift นั้นมีเพียงไม่กี่บรรทัดที่ยังคงเหมือนเดิม มีเพียง URL สำหรับไฟล์ TVML แรกเท่านั้นที่เปลี่ยนแปลง หากมีใครต้องการ พวกเขาอาจจะเขียนสคริปต์ที่สามารถรันบิลด์จากระยะไกลด้วย URL ของคุณและส่งไฟล์ IPA กลับมาได้ หรือหากคุณมี Mac ก็ไม่มีปัญหาในการส่งโปรเจ็กต์ โดยที่คุณแค่ใส่ URL และเริ่มบิลด์ ข้อดีก็คือ หาก TVML อยู่นอกแอปพลิเคชัน จริงๆ แล้วคุณต้องการเพียงบิลด์สาธารณะหนึ่งบิลด์และอาจเป็นบิลด์ส่วนตัว (การพัฒนา) หนึ่งบิลด์เท่านั้น และคุณสามารถเปลี่ยน TVML บนเซิร์ฟเวอร์ได้เท่านั้น ดังนั้นการทำงานของแอปพลิเคชันด้วย
"แอปนี้สามารถเป็น tvOS เท่านั้น หรือสามารถเพิ่มโค้ดลงในแอป iOS ที่มีอยู่เพื่อสร้างแอป 'one-size-fits-all' ซึ่งเป็นรุ่นที่คล้ายกับแอป iPhone และ iPad ในปัจจุบัน"
ฉันสงสัยว่าคุณหมายถึงอะไร? โดยส่วนตัวแล้ว ฉันไม่พบวิธีใดที่จะสร้าง 1 บิลด์ที่จะรวม iPhone, iPad และ Apple TV ที่เป็นสากล .. เนื่องจากเป็น SDK แยกกัน (คล้ายกับ OSX) คุณจึงต้องมีเป้าหมายพิเศษสำหรับ tvOS และด้วยเหตุนี้จึงมีบิลด์แยกต่างหากด้วย . ฉันขาดอะไรไปหรือเปล่า?
ใน Xcode 7.1 แอปพลิเคชัน tvOS สามารถเพิ่มเป็นเป้าหมายอื่นสำหรับโปรเจ็กต์ที่มีอยู่แล้ว - คล้ายกับแอปพลิเคชันสำหรับ Apple Watch หรืออาจเป็นวิดเจ็ตสำหรับศูนย์การแจ้งเตือน อย่างไรก็ตาม ฉันยังไม่รู้ว่าจะอัพโหลดลงร้านค้าได้อย่างไร... ฉันคิดว่า Xcode จะส่งพัสดุหนึ่งชุด จากนั้น App Store จะแบ่งมันออก... อาจคล้ายกับที่พวกเขาทำกับ Watch ตอนนี้
ไม่.. ในความคิดของฉัน สิ่งเหล่านี้เป็น 2 สิ่งที่แตกต่างกันโดยสิ้นเชิง.. watch เป็นส่วนเสริม.. หรืออย่างน้อยก็จนถึง watchOS 2.0.. มันถูกมอบให้พร้อมกับเป้าหมาย iOS และใช้งานไม่ได้หากไม่มี iPhone ด้วยซ้ำ.. ATV เป็นนิติบุคคลแยกต่างหาก.. นั่นคือสิ่งที่ฉันกำลังพูดถึง ไม่ว่างานสร้างสำหรับ ATV จะแยกจากกัน (คุณต้องจ่าย 2$) และนอกจากนี้ iOS จ่าย 2$ หรือเป็นไปได้ไหมที่จะให้สิทธิ์สากล 2$ build สำหรับทั้ง iOS และ ATV ตระกูลสำหรับ ATV..
ดังนั้นการเปิดตัวจริงจะแสดง แต่จริงๆ แล้วมีลักษณะการทำงานเหมือนกับรหัส Apple Watch เป็นต้น มิฉะนั้น เอกสารระบุว่าจะสามารถเพิ่มโค้ดสำหรับ tvOS ลงในแอปพลิเคชันที่มีอยู่ได้ และดังนั้นจึงเป็นไปได้ที่จะขายแอปหนึ่งแอป (หนึ่งเอนทิตีใน App Store) สำหรับทั้ง iOS และ tvOS ในเวลาเดียวกัน - การซื้อหนึ่งครั้งสำหรับ ลูกค้าหรือนิติบุคคลแยกต่างหาก - การซื้อแยกต่างหากสำหรับ iOS และสำหรับ tvOS
ขอชี้แจงให้ชัดเจน ไม่ใช่ 200MB ต่อแอป แต่จัดเก็บไว้ในเครื่อง 200MB และส่วนที่เหลือดาวน์โหลดจากเน็ตเมื่อจำเป็น
ขอบคุณครับ ผมก็คิดแบบนั้นครับ แต่คงใช้คำผิดครับ ทุกอย่างที่มีขนาดเกิน 200MB (หรือทุกอย่างที่ดาวน์โหลดเพิ่มเติม) จะถูกจัดเก็บเป็นแคช และหากระบบตัดสินใจว่าพื้นที่เหลือไม่เพียงพอ ระบบจะเริ่มลบมัน - ซึ่งอาจจะไม่เกิดขึ้นจนกว่าจะมีพื้นที่ว่างเพียงพอและเนื้อหาที่ใช้น้อยที่สุด จะถูกลบออก ดังนั้นในทางปฏิบัติไม่น่าจะมีปัญหามากนัก
ฉันต้องค้นหาอะไรอีก ขีดจำกัดนี้ใช้ไม่ได้กับเกมหรือ เกมอาจมีขนาดใหญ่กว่า 200MB ที่ฐาน แต่ฉันก็ยังไม่รู้ว่าสิ่งนี้หมายความว่าอย่างไร ค่อนข้างเป็นไปได้ที่ Apple ยังคงปรับนโยบายนี้ตามคำติชมจากนักพัฒนา
อิอิ Pokemon TCG – 4 GB สั่งซื้อ Chaos ออนไลน์ – 1,6 GB Hearthstone 1,3 GB ฉันอยากรู้เรื่องนี้มาก
มีข้อมูลว่าเกมมีโหมดพิเศษ ฉันกำลังรวบรวมรายละเอียดไว้ด้วยกันและเราจะทำให้บทความเสร็จสมบูรณ์
ฉันทำไม่ได้ และต้องขออภัยล่วงหน้าหากทำให้ใครขุ่นเคือง แต่ฉันแค่มีความยินดีอย่างยิ่ง จริงใจ และจริงใจที่อยากแบ่งปันกับคุณ...
วันรุ่งขึ้นหลังจากการประกาศ Apple TV ใหม่ ฉันไม่ขี้เกียจและลงทะเบียนลอตเตอรีของ Apple (ฉันควรเลือกไหม) โดยมีความเป็นไปได้ที่จะได้รับ Developer Kit ก่อนที่จะวางจำหน่ายด้วยซ้ำ
เมื่อวานเย็น Apple เขียนถึงผมว่าเลือกผมเป็นชุดแรก :)
ฉันไม่เหมือนผู้เขียนบทความนี้เลย และฉันกำลังทำ Preschool Brasnicce สำหรับ Apple TV อยู่โดยสุจริต ซึ่งจะวางจำหน่ายใน App Store ของคุณในช่วงเดือนตุลาคม :)
เลยรู้สึกว่าใครที่ลงทะเบียนไว้ก็น่าจะได้นะ :) เมื่อวานก็สั่งเมื่อวานเหมือนกัน ตั้งตารอเลย... และรู้จักอีกคนหนึ่งที่รอรับของอยู่เหมือนกัน...
อย่างไรก็ตามจนถึงตอนนี้ดูเหมือนว่าจะมีแอพจำนวนมากเมื่อเริ่มขาย :)
ทุกคนคงไม่ได้ - พวกเขาไม่ได้ให้ฉัน :(
:( ผมรู้สึกเสียใจสำหรับคุณ.
หากใครต้องการ ฉันมีสติ๊กเกอร์ Apple สีขาวแปดอัน… ส่งไปให้…