Web as native application

ขอเขียนเป็นข้อๆ ไว้ก่อนไม่รู้จะเรียบเรียงให้ดียังไง แต่ก็กลัวจะคิดออกมาไม่ได้อย่างนี้อีก

  • พยายามเขียนเรื่องนี้มาซักพักแล้ว จนช่วงนี้ลองเขียนโปรแกรมเล่นเองก็ยิ่งทำให้เชื่อว่า Web ยุคถัดไปจะมาแนวนี้ไปใหญ่ ถ้าให้เห็นโปรแกรมแนวนี้ก็คงตั้งแต่ห้าปีก่อนแล้วมั้ง โปรแกรมวาด Diagram สามารถมาอยู่บนเว็บได้ ซึ่งต้องขอบคุณ Adobe (หรือ Macromedia ในสมัยนั้นไม่แน่ใจ) ที่ทำ Flash จนกลายมาเป็น VM ที่รันบนเว็บได้อย่างมีประสิทธิภาพที่สุด จนแทบจะไม่มีคู่แข่ง
  • แนวทางการสร้าง Application ด้วยเว็บตอนนี้คนที่ผลักดันในยุคถัดมาก็คงหนีไม่พ้น Google ที่ขนาดสร้าง Google Gear ทำให้เว็บต่างๆ สามารถทำงานได้โดยไม่ต้องเชื่อมอินเทอร์เนท แต่สิ่งหนึ่งที่ยังขาดไปในยุคนี้คือการเก็บ Resource ต่างๆ ไว้โดยไม่ต้องโหลดใหม่อย่างถาวร มีเพียงข้อมูลเท่านั้นที่เก็บไว้ แต่ก็เป็นจุดเริ่มต้นที่ API/VM ต่างๆ ที่เคยอยู่ใน Flash เริ่มถูกเอามารวมกับ Browser แล้วผ่าน Extension
  • หลังจากที่ Google ทดลองกับ Gear เพื่อให้เว็บมีโหมด Offline สิ่งที่ Google ทำต่อมาคือลงมาทำ Browser เองซึ่งก็หวือหวาพอสมควร แต่มันก็ไม่แตกต่างจาก Browser อื่นซักเท่าไหร่คือเป็นเพียงสิ่งที่ทำงานอยู่บน OS และไว้เข้าถึงเนื้อหาต่างๆ แต่สิ่งที่คิดว่า Google และ Apple มองไว้แต่แรกแล้วคงเป็นการเอา Web มาทำงานเป็น Application นึงแบบ Native เลยต่างหาก จากการสร้าง Chrome OS ของ Google และความสามารถในการ Pin web ของ iOS
  • ตอนนี้ Application แนวนี้ถ้าจะให้หยิบแล้วบอกว่าเห็นชัดที่สุดเพื่อเป็นตัวแทน คงจะบอกได้ตัวเดียวคือ Kindle Reader ของ Amazone ไม่มีโปรแกรมไหนที่ทำให้รู้สึก Native ได้เท่านี้อีกแล้วโดยเฉพาะเมื่อเอาไปใช้บน iPad ที่เมื่อเลือก Bookmark หน้านั้นและกลายเป็น icon หนึ่งให้เลือกเหมือนโปรแกรมใน iOS เราสามารถเปิดแล้วอ่านหนังสือได้เลย แม้จะไม่ได้เชื่อมต่อ Internet หรือเปิด Airplane mode
  • ที่ Kindle สามารถทำได้อย่างนั้นก็ด้วย API ต่างๆ ที่มีมาใน Browser ยุคปัจจุบันบน iOS และ Desktop ทำให้ Web สามารถทำงานได้อย่าง Application ทั่วไปได้เช่นนี้ API พวกนั้นก็ได้แก่

    1. Web Storage – แม้ชื่อจะบอกว่าเป็น Web แต่ที่จริงมันคือฐานข้อมูลหรือไฟล์ที่อยู่ภายในเครื่องให้โปรแกรมสามารถเข้าถึงได้แบบ Key-Value pair โดยไม่ต้องไปถามที่ Server อีก
    2. Cache Manifest – สำหรับบอกว่า Resource ไหนให้เก็บไว้ถาวรบ้าง ไม่ต้องไปโหลดจาก Server ใหม่

    สองอย่างนี้แหละที่จะทำให้ Web กลายเป็น Native Application ได้

  • จริงๆ ยังมี Feature อื่นๆ อีกที่หลายๆ ค่ายก็ช่วยผลักดันทั้ง Mozilla และ Google เช่น WebGL, Hardware Accelerator แต่นั้นก็เป็น Feature สำหรับใช้ในการ Render แล้วคงเทียบไม่ได้กับสองอย่างด้านบน

About llun

Just a programmer

, ,