← กลับไปยังบทความทั้งหมด

Shiny เฟรมเวิร์กสำหรับสร้างเว็บแอปพลิเคชันด้วย R และ Python

สรุปใจความสำคัญ

  • Shiny เป็นเฟรมเวิร์ก Open Source ฟรีสำหรับสร้างเว็บแอปพลิเคชันด้วยภาษา R และ Python
  • ใช้ระบบ Reactive Context เพื่อให้การแสดงผลข้อมูลและกราฟเปลี่ยนแปลงตามอินพุตของผู้ใช้แบบทันที
  • มีทางเลือกในการโฮสต์ที่หลากหลาย ตั้งแต่แบบ Open Source อย่าง Shiny Server ไปจนถึงบริการคลาวด์อย่าง shinyapps.io

Shiny คือเฟรมเวิร์กสำหรับพัฒนาเว็บแอปพลิเคชัน (Apps) ที่ช่วยให้นักพัฒนาสามารถสร้างอินเทอร์เฟซที่ตอบสนองได้โดยไม่ต้องมีความรู้ด้านการพัฒนาเว็บแบบดั้งเดิม โดยเริ่มแรกถูกพัฒนาขึ้นสำหรับภาษา R และตั้งแต่ปี 2022 เป็นต้นมา ได้มีการเปิดตัวเวอร์ชันสำหรับภาษา Python ด้วย

คุณสมบัติเด่นของ Shiny

Shiny เป็นซอฟต์แวร์แบบ Open Source และฟรี ซึ่งถูกประกาศเปิดตัวโดย Joe Cheng CTO ของ Posit (เดิมชื่อ RStudio) ในปี 2012 จุดเด่นสำคัญคือการนำมาใช้ในการสร้างต้นแบบ (Fast Prototyping) อย่างรวดเร็ว

การทำงานแบบ Reactive

Shiny สร้างบริบทแบบ Reactive ซึ่งผู้ใช้สามารถกำหนดตัวแปรนำเข้า (Input Variables) เพื่อให้ระบบทำการคำนวณซ้ำหรือแสดงผลกราฟและภาพจำลองข้อมูล (Visualizations) ใหม่ได้เกือบจะในทันที โดยผู้ใช้สามารถสร้างวิดเจ็ต เช่น กล่องข้อความ, ปุ่มวิทยุ และรายการดรอปดาวน์ ได้อย่างง่ายดายผ่านส่วนติดต่อผู้ใช้ (User Interface)

โครงสร้างของแอปพลิเคชัน

ไฟล์ของ Shiny โดยทั่วไปจะแบ่งออกเป็นสองส่วนหลัก ซึ่งอาจเก็บไว้ในไฟล์เดียวหรือแยกเป็นสองไฟล์ก็ได้:

  • User Interface (UI): ส่วนที่กำหนดรูปลักษณ์และการจัดวางของแอปพลิเคชัน แม้ว่าจะมีตัวเลือกเริ่มต้นให้ใช้งาน แต่ก็สามารถขยายความสามารถได้ผ่านแพ็กเกจ R อื่นๆ
  • Server: ส่วนที่จัดการการคำนวณและโค้ดสำหรับสร้างกราฟ โดยสามารถใช้ความสามารถทั้งหมดของภาษา R หรือ Python ได้อย่างเต็มที่

การพัฒนาสำหรับ Python และ Shinylive

ในปี 2022 ได้มีการเปิดตัว Shiny for Python ซึ่งไม่ได้ถูกสร้างมาเพื่อทดแทนเวอร์ชัน R แต่ถูกพัฒนาควบคู่กันไป โดยทั้งสองเวอร์ชันอาจมีฟีเจอร์ที่แตกต่างกันบ้างตามความเหมาะสมของภาษา

นอกจากนี้ยังมี Shinylive ซึ่งช่วยให้สามารถรัน Shiny บนฝั่งไคลเอนต์ (Client-side) ได้ ซึ่งหมายความว่าโค้ดโปรแกรมจะไม่ต้องรันบนเซิร์ฟเวอร์ ช่วยลดภาระของเซิร์ฟเวอร์ให้เหลือเพียงการส่งโค้ดไปยังเบราว์เซอร์ของผู้ใช้เท่านั้น

ทางเลือกในการติดตั้งและโฮสต์แอปพลิเคชัน

การนำแอปพลิเคชัน Shiny (โดยเฉพาะเวอร์ชัน R) ไปใช้งานจริง (Deploy) สามารถทำได้ผ่านหลายช่องทาง ดังนี้:

วิธีการโฮสต์รายละเอียดความเหมาะสม
Shiny Server (Open Source)โฮสต์บนเซิร์ฟเวอร์ของตนเอง (On-premises) โดยไม่มีค่าลิขสิทธิ์องค์กรที่ต้องการควบคุมการตั้งค่าเซิร์ฟเวอร์ด้วยตนเอง
Posit Connectโซลูชันเชิงพาณิชย์สำหรับองค์กร มีระบบยืนยันตัวตนและการรายงานตามกำหนดเวลาองค์กรขนาดใหญ่ที่ต้องการฟีเจอร์ขั้นสูงและการสนับสนุน
shinyapps.ioบริการคลาวด์ที่จัดการโดย Posit ใช้งานง่ายและปรับขนาดได้นักพัฒนาอิสระหรือทีมขนาดเล็กที่ต้องการความรวดเร็ว
shinyproxy.ioเครื่องมือ Open Source ที่ใช้เทคโนโลยี Containerization เพื่อโฮสต์บนคลาวด์หรือเซิร์ฟเวอร์ตนเองผู้ที่ต้องการใช้ Docker เพื่อจัดการแอปพลิเคชัน

คำถามที่พบบ่อย

Shiny คืออะไร?

Shiny คือเฟรมเวิร์กสำหรับสร้างเว็บแอปพลิเคชันที่เน้นการวิเคราะห์ข้อมูลและการสร้างภาพจำลองข้อมูล โดยผู้พัฒนาสามารถเขียนโค้ดด้วยภาษา R หรือ Python ได้โดยไม่ต้องเขียน HTML, CSS หรือ JavaScript

Shiny for Python แตกต่างจาก Shiny for R อย่างไร?

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

Shinylive คืออะไร?

Shinylive คือเทคโนโลยีที่ช่วยให้แอปพลิเคชัน Shiny สามารถทำงานบนเบราว์เซอร์ของผู้ใช้ (Client-side) ได้โดยตรง โดยไม่ต้องพึ่งพาเซิร์ฟเวอร์ในการประมวลผลโค้ด