องค์ประกอบพื้นฐานและความเข้ากันได้
แอปขนาดเล็กเป็นแอปขนาดเล็ก (โดยปกติจะมีขนาด 2-4 MB) ที่ต้องใช้แอปขั้นสูงในการเรียกใช้ สิ่งที่เหมือนกัน โดยเฉพาะกับ Super App ก็คือสร้างขึ้นด้วย ("บทสนทนา") จากเทคโนโลยีเว็บอย่าง HTML, CSS และ JavaScript รันไทม์ของมินิแอปคือ WebView ในแอปขั้นสูง ไม่ใช่ระบบปฏิบัติการพื้นฐาน ซึ่งทำให้แอปขนาดเล็กทำงานข้ามแพลตฟอร์มได้ มินิแอปเดียวกันจะทำงานในแอปขั้นสูงเดียวกันได้ ไม่ว่าแอปขั้นสูงจะทำงานบน Android, iOS หรือระบบปฏิบัติการอื่น อย่างไรก็ตาม แอปขนาดเล็กบางแอปทำงานใน Super App ไม่ได้ และจะมีการดำเนินการอื่นๆ เพิ่มเติมภายหลัง
Discovery
แอปขนาดเล็กมักจะค้นพบเฉพาะกิจผ่านบาร์โค้ด 2 มิติที่มีแบรนด์ ซึ่งช่วยแก้ปัญหาที่สําคัญจากออฟไลน์สู่ออนไลน์ เช่น เปลี่ยนจากเมนูในร้านอาหารจริงไปยังแอปขนาดเล็กสําหรับการชําระเงิน หรือจาก e-Scooter จริงไปยังแอปขนาดเล็กสำหรับเช่า รูปภาพด้านล่างแสดงตัวอย่างบาร์โค้ด 2 มิติของแบรนด์สําหรับแอปขนาดเล็กที่สาธิตใน WeChat โดยตรง เมื่อแอปขนาดเล็กสาธิตของ WeChat เป็นมินิแอปสำเร็จรูปของ WeChat โดยทั่วไปแอปขั้นสูงอื่นๆ จะไม่สามารถจดจำบาร์โค้ดได้
![บาร์โค้ด 2 มิติของแบรนด์ WeChat](https://web.dev/static/articles/mini-apps/mini-app-about/image/wechat-branded-2d-barcode-e6ef7f80e48d8.jpg?authuser=5&hl=th)
มินิแอปยังค้นพบได้ผ่านการค้นหาตามปกติในแอปของ Super App แชร์ในข้อความแชท หรือเป็นส่วนหนึ่งของรายการข่าวในฟีดข่าว แอประดับสูงบางแอปมีคำว่าบัญชีที่ยืนยันแล้ว ซึ่งอาจมีแอปขนาดเล็กในโปรไฟล์ แอปขนาดเล็กสามารถไฮไลต์ได้เมื่ออยู่ใกล้ตำแหน่งทางภูมิศาสตร์ เช่น แอปขนาดเล็กของธุรกิจที่อยู่ตรงหน้าที่ผู้ใช้ยืนอยู่ หรือใกล้จริงๆ เช่น เมื่อผู้ใช้ขอเส้นทางบนแผนที่ที่แสดงในซูเปอร์แอป
ประสบการณ์ของผู้ใช้
แอประดับสูงทั้งหมดมีอินเทอร์เฟซผู้ใช้เหมือนกันมากขึ้นหรือน้อยลงสำหรับแอปขนาดเล็ก แถบด้านบนที่มีธีมได้พร้อมชื่อมินิแอป ที่มุมด้านบนของหน้าจอ มีปุ่มปิดทางด้านขวาสุดซึ่งมีเมนูการทำงานที่ให้คุณเข้าถึงฟีเจอร์ทั่วไป เช่น การแชร์แอป การเพิ่มแอปลงในรายการรายการโปรดหรือหน้าจอหลัก การรายงานแอปที่ไม่เหมาะสม การแสดงความคิดเห็น และการตั้งค่า ภาพหน้าจอด้านล่างแสดงแอปขนาดเล็กสำหรับช็อปปิ้งที่ทำงานอยู่ในบริบทของแอปซูเปอร์ Alipay ที่ เปิดเมนูการทำงานไว้
![ซูเปอร์แอป Alipay ที่ใช้งานแอปขนาดเล็กสำหรับช็อปปิ้งที่ไฮไลต์แถบด้านบน ปุ่มเมนูการทำงาน และปุ่มปิด เมนูการทำงานจะเปิดขึ้น](https://web.dev/static/articles/mini-apps/mini-app-about/image/the-alipay-super-app-runn-39dde18ae385b.jpg?authuser=5&hl=th)
รูปแบบ UI
โดยปกติจะมีแถบแท็บด้านล่างสำหรับการนำทางหลักของมินิแอป ผู้ให้บริการแอปขั้นสูงส่วนใหญ่มีคอมโพเนนต์ที่ช่วยให้นักพัฒนาแอปนำรูปแบบ UI ทั่วไปไปใช้ได้อย่างรวดเร็ว เช่น ภาพสไลด์ แอคคอร์เดียน แถบความคืบหน้า สปินเนอร์ สวิตช์ แผนที่ และอื่นๆ การทำเช่นนี้ยังช่วยให้ ประสบการณ์ของผู้ใช้ระหว่างแอปขนาดเล็กต่างๆ มีความสอดคล้องกัน ซึ่งเป็นไปตามหลักเกณฑ์การออกแบบโปรแกรมขนาดเล็กของ WeChat ซึ่งคล้ายกับที่ Apple ให้สิ่งจูงใจด้วยหลักเกณฑ์อินเทอร์เฟซสำหรับมนุษย์ของ Apple และ Google เกี่ยวกับคำแนะนำด้าน Design for Android
![แอปเดโมขนาดเล็กของ Douyin ที่แสดงคอมโพเนนต์แถบเลื่อนของ Douyin (ภาพสไลด์) พร้อมปุ่มเปิด/ปิดสำหรับการเลื่อนไปข้างหน้าโดยอัตโนมัติ สัญญาณบอกสถานะจุด และอื่นๆ](https://web.dev/static/articles/mini-apps/mini-app-about/image/the-douyin-demo-mini-app-fbf61969fee88.png?authuser=5&hl=th)
ทำงาน
แอปขนาดเล็กจะทำหน้าที่เป็นแอปแบบแพ็กเกจที่เข้ารหัส กล่าวคือเป็นที่เก็บถาวรที่มีทรัพยากรทั้งหมดอยู่ในไฟล์เดียว แทนที่จะแสดงทีละส่วนเป็นทรัพยากรแยกกัน นอกจากนี้ แอปเหล่านี้ไม่ได้รับบริการจากต้นทางที่เจาะจงของผู้สร้างแอปขนาดเล็ก แต่มาจากผู้ให้บริการ Super App โดยตรง ซึ่งต่างจากเว็บแอปทั่วไป ผู้ใช้ยังคงเข้าถึง API จากเซิร์ฟเวอร์ของเครื่องมือสร้างแอปขนาดเล็กได้ แต่ทรัพยากรหลัก (เรียกกันโดยทั่วไปว่า App Shell) จะต้องมีการให้บริการจากผู้ให้บริการซูเปอร์แอป แอปขนาดเล็กต้องประกาศต้นทางที่ขอข้อมูลเพิ่มเติม
การแคช การอัปเดต และการทํา Deep Link
มินิแอปจะเก็บอยู่ในแคชของซูเปอร์แอป ดังนั้นเมื่อผู้ใช้เปิดแอปขนาดเล็กที่แคชไว้ในครั้งต่อไป ระบบก็จะโหลดแอปมินิแอปที่แคชไว้เกือบจะทันที หากมีการอัปเดต ระบบจะโหลดแพ็กเกจแอปใหม่ หมายเลขเวอร์ชันอาจเป็นส่วนหนึ่งของ URI การเปิดใช้ (ดู Discovery) เพื่อให้แอปขั้นสูงทราบล่วงหน้าว่าเวอร์ชันที่แคชไว้ในเครื่องยังคงเป็นเวอร์ชันปัจจุบันหรือไม่ นอกจากนี้ URI การเปิดใช้ยังอาจมีหน้าที่ต้องการของมินิแอปด้วย เพื่อให้มีการทำ Deep Link ไปยังหน้าที่เจาะจงของมินิแอปได้ มินิแอปสามารถประกาศว่าหน้าใดที่ควรจัดทำดัชนีโดยโปรแกรมรวบรวมข้อมูลแอปขนาดเล็กของผู้ให้บริการขั้นสูงได้ผ่านทางแผนผังเว็บไซต์
![เครื่องมือค้นหา macOS แสดงโฟลเดอร์ที่มีไฟล์ WeChat มินิแอป ".wxapkg" ที่แคชไว้](https://web.dev/static/articles/mini-apps/mini-app-about/image/macos-finder-showing-fol-d1f228bbf9ff2.png?authuser=5&hl=th)
ความปลอดภัยและสิทธิ์
มินิแอปได้รับการตรวจสอบจากผู้ให้บริการขั้นสูง ซึ่งหมายความว่าผู้ใช้มองว่าแอปเหล่านี้ปลอดภัยกว่าเว็บแอป โดยจะต้องประกาศสิทธิ์ที่อาจจำเป็นไว้ล่วงหน้าในไฟล์การกำหนดค่าไฟล์ Manifest หรือ Mini App ซึ่งสำหรับผู้ให้บริการบางรายจะต้องมีคำอธิบายเหตุผลที่ต้องใช้สิทธิ์แต่ละรายการด้วย แน่นอนว่าแอปขนาดเล็กจะยังคงโกหกอยู่ แต่ก็คงเป็นเรื่องยากที่จะพิสูจน์เหตุผลได้ เช่น การพยายามเข้าถึงเซ็นเซอร์ตรวจจับการเคลื่อนไหวโดยไม่มีเหตุผลที่ผู้ใช้เห็นได้ชัด สิ่งจูงใจในการสร้างลายนิ้วมือของผู้ใช้นั้นต่ำกว่ามากเมื่อเทียบกับเว็บ เนื่องจากโดยปกติแล้วผู้ใช้มักจะลงชื่อเข้าสู่ระบบ Super App อยู่แล้วอยู่แล้ว (ดูตัวตน การชำระเงิน และกราฟโซเชียล)
เมื่อใดก็ตามที่แอปขนาดเล็กดำเนินการที่ต้องใช้สิทธิ์พิเศษ ระบบจะแสดงข้อความแจ้งให้ผู้ใช้ทราบ ซึ่งหากแพลตฟอร์มบังคับใช้ จะมีการอธิบายเหตุผลในการใช้งานตามที่นักพัฒนาแอประบุไว้ด้วย ภาพหน้าจอด้านล่างแสดง แอปขนาดเล็กการสาธิตของ Douyin ในขณะที่ขอสิทธิ์จากผู้ใช้ในการแชร์ตำแหน่งของตน ใน Super App บางแอปยังมี API ที่จำเป็นซึ่งมินิแอปสามารถใช้ประโยชน์จากการขอสิทธิ์โดยไม่ต้องใช้สิทธิ์ทันที หรือเพื่อตรวจสอบเฉพาะสถานะของสิทธิ์เท่านั้น ซึ่งอาจรวมถึง API เพื่อเปิดการตั้งค่าสิทธิ์ของ Super App ส่วนกลาง ซึ่งสอดคล้องกับการตั้งค่าเว็บไซต์ของ Chrome มินิแอปยังต้องประกาศล่วงหน้าถึงที่มาของเซิร์ฟเวอร์ทั้งหมดที่เซิร์ฟเวอร์เหล่านั้นจะขอข้อมูลด้วย
![แอปสาธิตขนาดเล็กของ Douyin แสดงข้อความแจ้งตำแหน่งทางภูมิศาสตร์ที่มี 2 ตัวเลือก ได้แก่ "ไม่อนุญาต" และ "อนุญาต"](https://web.dev/static/articles/mini-apps/mini-app-about/image/the-douyin-demo-mini-app-bab6b3dbfe49e.png?authuser=5&hl=th)
เข้าถึงฟีเจอร์ที่ทรงประสิทธิภาพ
ซูเปอร์แอปโฮสติ้งให้การเข้าถึง API ที่มีประสิทธิภาพผ่านบริดจ์ JavaScript ที่แทรกลงใน WebView ที่แอปขั้นสูงนำเสนอ (ดูบล็อกการสร้างและความเข้ากันได้) บริดจ์ JavaScript นี้เชื่อมไปยัง API ของระบบปฏิบัติการ เช่น ฟังก์ชัน JavaScript ของมินิแอปอย่าง
getConnectedWifi()
ซึ่งเป็นความสามารถของมินิแอปในการดูชื่อเครือข่าย Wi-Fi ที่ใช้งานอยู่ในปัจจุบัน ภายในระบบได้อำนวยความสะดวกผ่าน
getConnectionInfo()
API ของ Android หรือ
CNCopyCurrentNetworkInfo()
API ของ Android ตัวอย่างอื่นๆ ของ API อุปกรณ์ที่มีประสิทธิภาพซึ่งพบใน Super App ทั่วไป ได้แก่ บลูทูธ, NFC, iBeacon, GPS, คลิปบอร์ดของระบบ, เซ็นเซอร์การวางแนว, ข้อมูลแบตเตอรี่, การเข้าถึงปฏิทิน, การเข้าถึงสมุดโทรศัพท์, การควบคุมความสว่างของหน้าจอ, การเข้าถึงระบบไฟล์, ฮาร์ดแวร์การสั่นสำหรับการตอบสนองทางกายภาพ, การเข้าถึงกล้องและไมโครโฟน, การบันทึกหน้าจอและการสร้างภาพหน้าจอ, สถานะเครือข่าย, ซ็อกเก็ต UDP, การสแกนบาร์โค้ด, ข้อมูลหน่วยความจำของอุปกรณ์ และอีกมากมาย
![แอปขนาดเล็กสาธิตของ WeChat แสดงแถบเลื่อนที่ควบคุมความสว่างของหน้าจออุปกรณ์จนสุด](https://web.dev/static/articles/mini-apps/mini-app-about/image/the-wechat-demo-mini-app-964b40a49071.png?authuser=5&hl=th)
สิทธิ์เข้าถึงบริการระบบคลาวด์
แอประดับสูงหลายแอปให้สิทธิ์เข้าถึงบริการระบบคลาวด์ของผู้ให้บริการแอปขั้นสูงแบบ "ไร้เซิร์ฟเวอร์" ซึ่งนอกจากการประมวลผลระบบคลาวด์ดิบและพื้นที่เก็บข้อมูลระบบคลาวด์แล้ว ยังมักรวมงานระดับสูงขึ้นด้วย เช่น การแปลข้อความ การตรวจจับออบเจ็กต์ หรือการจัดประเภทเนื้อหาในรูปภาพ การจดจำคำพูด หรืองานอื่นๆ เกี่ยวกับแมชชีนเลิร์นนิง แอปขนาดเล็กสามารถสร้างรายได้ด้วยโฆษณา ซึ่งโดยทั่วไปมักพร้อมให้ใช้งานโดยผู้ให้บริการ Super Apps แพลตฟอร์ม Super App มักจะให้ข้อมูลการวิเคราะห์ระบบคลาวด์ด้วย เพื่อให้นักพัฒนาแอปขนาดเล็ก เข้าใจวิธีที่ผู้ใช้โต้ตอบกับแอปได้ดีขึ้น
ข้อมูลระบุตัวตน การชำระเงิน กราฟโซเชียล
ฟีเจอร์ที่สำคัญมากของมินิแอปคือข้อมูลตัวตนและกราฟโซเชียลที่แชร์จาก Super App โดย Super App เช่น Douyin หรือ WeChat เริ่มต้นจากการเป็นเว็บไซต์โซเชียลเน็ตเวิร์กในลักษณะที่กว้างที่สุด ซึ่งผู้ใช้มีตัวตน (บางครั้งอาจได้รับการยืนยันจากรัฐบาล) เพื่อนหรือเครือข่ายผู้ติดตาม และมักจะจัดเก็บข้อมูลการชำระเงินไว้ด้วย ตัวอย่างเช่น แอป Shopping ขนาดเล็กสามารถ (หรือบางครั้งต้อง) ประมวลผลการชำระเงินโดยตรงผ่าน API การชำระเงินของแอป Super และสามารถรับข้อมูลผู้ใช้ เช่น ที่อยู่สำหรับจัดส่ง หมายเลขโทรศัพท์ และชื่อเต็มได้โดยไม่ต้องบังคับให้ผู้ใช้กรอกแบบฟอร์มทั้งหมด ด้านล่างนี้ คุณจะเห็น แอป Walmart ขนาดเล็กที่เรียกใช้ใน WeChat เพิ่งเปิดเป็นครั้งแรก และทักทายฉันด้วยใบหน้าที่คุ้นเคย
![แอป Walmart ขนาดเล็กที่แสดงใบหน้าและชื่อของผู้เขียนบนแท็บ "ฉัน"](https://web.dev/static/articles/mini-apps/mini-app-about/image/the-walmart-mini-app-show-87a18e926c07a.png?authuser=5&hl=th)
แอปขนาดเล็กจะได้รับความนิยมสูงจากการให้ผู้ใช้แชร์ความสำเร็จ เช่น คะแนนสูงสุดในเกม และท้าทายรายชื่อติดต่อผ่านการอัปเดตสถานะ เพียงแตะครั้งเดียวก็ใช้แอปขนาดเล็กผู้ใช้เข้าสู่การแข่งขันได้โดยไม่ติดขัด และแอปเล็กๆ ก็ช่วยเพิ่มการเข้าถึงได้
กิตติกรรมประกาศ
บทความนี้ได้รับการตรวจสอบโดย Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kent และ Keith Gu