เลย์ออฟแผ่นดิน

Peter Conn
Peter Conn

ระบบนิเวศของกิจกรรมบนเว็บที่เชื่อถือได้ค่อนข้างซับซ้อน และอาจเป็นเรื่องยากที่จะดูว่าทุกอย่างมีความเกี่ยวข้องกันอย่างไรและคุณควรใช้อะไร บทความนี้จะช่วยแก้ปัญหาดังกล่าว

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

  • Bubblewrap: เครื่องมือ NodeJS ที่ช่วยนักพัฒนาแอปสร้างและสร้าง APK ของ Android ที่รวม PWA ที่มีอยู่ แอปพลิเคชันที่สร้างขึ้นจะทำงานด้วยกิจกรรมบนเว็บที่เชื่อถือได้ แต่นักพัฒนาแอปจะทราบเรื่องนี้ ไม่จำเป็นต้องมีประสบการณ์การพัฒนาแอป Android มาก่อน โปรดดูเอกสารประกอบของ Bubblewrap เพื่อเริ่มต้นใช้งาน
  • android-browser-helper: ไลบรารี Android ที่รวมโปรโตคอลกิจกรรมบนเว็บที่เชื่อถือได้ แนะนำสำหรับนักพัฒนาซอฟต์แวร์ที่คุ้นเคยกับการพัฒนา Android และต้องการใช้กิจกรรมบนเว็บที่เชื่อถือได้เป็นหนึ่งในกิจกรรมในแอป Android หรือทำการปรับเปลี่ยนที่ Bubblewrap ไม่รองรับ หากต้องการเริ่มต้นใช้งาน android-browser-helper โปรดดูเอกสารประกอบและเดโม

ส่วนถัดไปจะแสดงข้อมูลสรุปสั้นๆ ของโปรเจ็กต์ทั้งหมดที่เกี่ยวข้องกับโปรเจ็กต์อื่นๆ สุดท้าย (สําหรับผู้ที่อยากรู้จริงๆ) ยังมีส่วนประวัติที่แสดงให้คุณเห็นถึงเส้นทางที่เราเดินมาและจุดหมายที่เราวางแผนจะมุ่งไปในอนาคตอันใกล้

ภาพรวมของไลบรารี

ต่อไปนี้เป็นข้อมูลสรุปสั้นๆ 1 ประโยคของไลบรารีแต่ละรายการที่คุณอาจต้องใช้

  • androidx.browser ซึ่งเป็นไลบรารี Android สําหรับโต้ตอบกับเบราว์เซอร์ที่ติดตั้งในอุปกรณ์ของผู้ใช้
  • Android Browser Helper ซึ่งเป็นไลบรารีที่สร้างขึ้นจาก androidx.browser สําหรับไคลเอ็นต์กิจกรรมบนเว็บที่เชื่อถือได้ ซึ่งให้วิธีการที่สะดวกและค่าเริ่มต้นที่เหมาะสม
  • Bubblewrap เป็นเครื่องมือสร้างกิจกรรมบนเว็บที่เชื่อถือได้จาก PWA โดยไม่ต้องเขียนโค้ด Java

นอกจากนี้ ไลบรารี/เครื่องมือแต่ละรายการเหล่านี้จะแทนที่ไลบรารี/เครื่องมือเวอร์ชันเก่า

ประวัติ

ไลบรารีการสนับสนุนของ Android

Android Support Library ขยายแพลตฟอร์ม Android ด้วย API และฟีเจอร์ใหม่ๆ ที่เข้ากันได้ โดยแบ่งออกเป็นหลายแพ็กเกจ โดยมีคลังการสนับสนุนแท็บที่กำหนดเองที่มีฟังก์ชันการทำงานสำหรับการโต้ตอบกับเบราว์เซอร์ในระบบของผู้ใช้ การพัฒนาไลบรารีการสนับสนุนแท็บที่กำหนดเองส่วนใหญ่เกิดขึ้นในรีโป GitHub ของ custom-tabs-client โดยมีการอัปสตรีมการเปลี่ยนแปลงกลับไปยังไลบรารีการสนับสนุน Android

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

เนื่องจากกิจกรรมบนเว็บที่เชื่อถือได้สร้างขึ้นจากแท็บที่กำหนดเอง กิจกรรมเหล่านี้จึงเริ่มต้นขึ้นในไลบรารี custom-tabs-client นี้ กิจกรรมบนเว็บที่เชื่อถือได้จะนำแถบด้านบนของแท็บที่กำหนดเองออกเมื่อผู้ใช้ท่องเว็บไซต์ที่เป็นของ developer แอป ซึ่งเปิดโอกาสให้ผสานรวมเว็บไซต์กับแอป Android เนทีฟได้อย่างราบรื่น และสามารถใช้สร้างแอปที่ฟังก์ชันการทำงานทั้งหมดมาจากเว็บ

AndroidX

ต่อมา Android Support Library ได้เปลี่ยนชื่อเป็น AndroidX ซึ่งเป็นส่วนหนึ่งของความพยายามที่ยิ่งใหญ่กว่าในการปรับปรุงประสบการณ์การใช้งานของนักพัฒนาแอปที่เรียกว่า JetPack ด้วยเหตุนี้ แท็บที่กำหนดเองและกิจกรรมในเว็บที่เชื่อถือได้จึงต้องย้ายจากไลบรารีการสนับสนุนแท็บที่กำหนดเองไปยัง androidx.browser ใหม่

โค้ดบางส่วนที่เราเขียนใน custom-tabs-client เหมาะสำหรับคลังคลาสตัวช่วยของกิจกรรมบนเว็บที่เชื่อถือได้ แต่ใช้กับ Android API ไม่ได้ โค้ดที่จัดการกับการตรวจสอบเวอร์ชัน Chrome ที่ล้าสมัยและแจ้งให้ผู้ใช้อัปเดตหรือตัดสินใจเกี่ยวกับวิธีจัดเก็บข้อมูลไม่สามารถย้ายไปยัง AndroidX ได้ เราจึงสร้างไลบรารีทางเลือกเพื่อเก็บชิ้นส่วนเหล่านี้ของ custom-tabs-client ที่ไม่สามารถใส่ไว้ใน androidx.browser ด้วยเหตุนี้ Android Browser Helper จึงถือกำเนิดขึ้น

Android Browser Helper สร้างขึ้นเพื่อให้มีโค้ดที่เจาะจงสำหรับเบราว์เซอร์ (ไม่ใช่แค่ Chrome เราเปิดรับโค้ดสำหรับเบราว์เซอร์อื่นๆ โดยเฉพาะ) และสามารถทําการตัดสินใจที่แน่ชัดซึ่งไลบรารีไม่ควรทํา เราจึงถือโอกาสนี้แยกบทบาทของคลังภาพ 2 รายการนี้โดยทั่วไป ดังนี้

  • androidx.browser มีองค์ประกอบพื้นฐานสำหรับการโต้ตอบกับเบราว์เซอร์ในระบบของผู้ใช้
  • เครื่องมือช่วยของเบราว์เซอร์ Android มีการใช้งานเริ่มต้นที่สะดวกและเหมาะสม

การเริ่มต้นใช้งาน

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

รายการแรก (และเก่าที่สุด) คือ svgomg-twa ซึ่งเป็นโปรเจ็กต์ Android ที่โฮสต์บน GitHub ซึ่งเปิดกิจกรรมบนเว็บที่เชื่อถือได้ เดิมทีโปรเจ็กต์นี้ออกแบบมาเพื่อเป็นโปรเจ็กต์สาธิตที่พัฒนามาเป็นเทมเพลต ผู้ใช้สามารถโคลนที่เก็บดังกล่าวและแก้ไขไฟล์ build.gradle ให้ชี้ไปยังเว็บไซต์ของตนเอง คอมไพล์ และสร้างกิจกรรมบนเว็บที่เชื่อถือได้โดยไม่ต้องแตะโค้ด Java ใดๆ (การยืนยันลิงก์เนื้อหาดิจิทัลนั้นต้องใช้ความพยายามมากกว่า โปรดอ่านข้อมูลเพิ่มเติมที่นี่)

svgomg-twa เริ่มต้นโดยขึ้นอยู่กับ custom-tabs-client แต่ต่อมาได้เปลี่ยนไปใช้ Android Browser Helper (และ androidx.browser โดยอ้อม)

เครื่องมือใหม่ล่าสุดและทันสมัยที่สุดคือ Bubblewrap ซึ่งเป็นเครื่องมือ Node.js ที่จะนํา Web App Manifest ของคุณไปสร้างกิจกรรมบนเว็บที่เชื่อถือได้ให้คุณ วิธีนี้เป็นวิธีที่ง่ายที่สุดในการสร้างกิจกรรมบนเว็บที่เชื่อถือได้จาก PWA ที่มีอยู่และไม่จำเป็นต้องมีความรู้ด้านการพัฒนา Android

อนาคตอันใกล้

เราจะเลิกใช้งาน svgomg-twa ด้วยเหตุผล 2 ข้อต่อไปนี้

  • Bubblewrap มีหน้าที่สร้าง svgomg-twa ที่กรอกข้อมูลไว้แล้วสำหรับนักพัฒนาแอป โดยการดำเนินการนี้เป็นแบบอินเทอร์แอกทีฟและสามารถนําการกำหนดค่าจากไฟล์ Manifest ของเว็บแอป (ซึ่ง PWA มีอยู่แล้ว)
  • หากต้องการข้อมูลอ้างอิงเกี่ยวกับวิธีเริ่มต้นโปรเจ็กต์กิจกรรมบนเว็บที่เชื่อถือได้ตั้งแต่ต้น นักพัฒนาแอปสามารถดูไดเรกทอรีเดโมของเครื่องมือช่วยของ Android Browser

นักพัฒนาแอปรายใหม่ควรใช้ Bubblewrap เพื่อสร้างโปรเจ็กต์แทน หากคุณใช้ svgomg-twa อยู่แล้วและทำการแก้ไขอย่างหนัก คุณก็ใช้ต่อไปได้ แต่จะไม่ได้รับอัปเดต

เราวางแผนที่จะทำให้ Bubblewrap มีประสิทธิภาพมากที่สุด ดังนั้นหากมีฟีเจอร์ที่ขาดหายไปอย่างชัดเจนหรือคุณพบข้อบกพร่อง โปรดสร้างปัญหา