Tags:
Node Thumbnail

OpenStack โครงการพัฒนาโครงสร้างพื้นฐานคลาวด์แบบโอเพ่นซอร์สได้แยกโครงการพัฒนาแพลตฟอร์ม CI/CD (continuous integration and continuous delivery) ที่ชื่อว่า Zuul ออกมาเป็นโครงการอิสระอย่างเป็นทางการพร้อมกับการออกเวอร์ชัน 3

Zuul นั้นเป็นโครงการพัฒนาที่เน้นทำระบบการรวม, build และทดสอบการเปลี่ยนแปลงของโปรเจค โดยโครงการ Zuul นี้อยู่ภายใต้ OpenStack ซึ่งแม้ว่าจะแยกโครงการออกมาแล้วแต่ตัวโครงการจะยังอยู่ภายใต้การดูแลของ OpenStack Foundation เหมือนกับ Kata Containers ซึ่งเป็นโครงการที่เคยอยู่ภายใต้ OpenStack และแยกออกมาก่อนหน้านี้

Tags:
Node Thumbnail

ไมโครซอฟท์ออกอัพเดตให้ VS Code ขยับเลขเวอร์ชันเป็น 1.23 มาพร้อมกับการปรับปรุงหลายอย่าง

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

Tags:
Node Thumbnail

ในรอบ 2 ปีที่ผ่านมา (2017-2018) กูเกิลยกเครื่องหลายส่วนของแพลตฟอร์ม Android ไปเยอะมาก ในระดับที่ว่าตำราพัฒนาแอพ Android ที่อายุเก่าเกิน 2-3 ปีอาจล้าสมัยไปหมดแล้ว แพลตฟอร์ม Android ในปี 2018 มีความแตกต่างจาก Android ปี 2008 แบบที่เรียกได้ว่าไม่เหมือนกันเลยอย่างสิ้นเชิง

ในงาน Google I/O 2018 มีหัวข้อที่พูดถึงประเด็นนี้โดยตรง ผู้นำเสนอเป็นคนที่โลก Android คุ้นหน้ากันมานานอย่าง Romain Guy และ Chet Haase ใช้คำว่าตอนนี้เราเข้าสู่ "Android ยุคใหม่" (Modern Android) แล้ว ธรรมเนียมปฏิบัติต่างๆ ที่สอนกันมาในหมู่นักพัฒนาอาจใช้งานไม่ได้อีกต่อไป

Tags:
Node Thumbnail

AWS เปิดตัว Amazon Sumerian เครื่องมือสร้างโมเดล 3D สำหรับงาน VR/AR เมื่อปลายปีที่แล้ว ล่าสุดมันเข้าสถานะ GA (generally available) เปิดบริการแก่ผู้ใช้ทั่วไป

จุดเด่นของ Amazon Sumerian คือมันทำงานผ่านเบราว์เซอร์ได้ทั้งหมด ไม่ต้องลงโปรแกรมใดๆ แถมยังสามารถเชื่อมต่อกับบริการอื่นๆ ของ AWS ไม่ว่าจะเป็น Amazon Lex, Polly, AWS Lambda, AWS IoT, Amazon DynamoDB ช่วยให้การสร้างโปรแกรม VR/AR ยุคใหม่บนคลาวด์ทำได้รวดเร็วขึ้นด้วย

ผลงานที่ได้จาก Sumerian สามารถแปลงได้ทั้งเป็นเว็บ (ผ่าน WebGL/WebVR) หรือจะเป็นแอพ VR ใช้บนแว่นยี่ห้อดังๆ ทั้ง Oculus/HTC Vive รวมถึงเป็นแอพ AR บน Android/iOS ได้ด้วย

Tags:
Node Thumbnail

ในงาน Build 2018 เมื่อสัปดาห์ที่ผ่านมาไมโครซอฟท์ได้ประกาศแผนการออก .NET Core 3.0 และ .NET Framework 4.8 ซึ่งได้ให้ความสำคัญกับการปรับปรุงการพัฒนาแอพเดสก์ท็อปเดิมให้ทันสมัย โดยนอกเหนือจากการทำให้ .NET Core 3 รองรับการรันแอพเดสก์ท็อปแบบเก่าอย่าง WPF และ Windows Forms ได้ในข่าวก่อนหน้านี้

ไมโครซอฟท์ยังได้ประกาศเพิ่มของใหม่อีกอย่างให้กับการพัฒนาแอพเดสก์ท็อปในชื่อ UWP XAML Islands ซึ่งเป็นการปรับปรุงให้แอพพลิชั่นที่พัฒนาด้วยชั้น UI แบบเก่าทั้ง WPF, Windows Forms และ Win32 สามารถเรียกใช้ชุด UI Control ใหม่ๆ ที่ UWP มีให้ได้ ไม่ว่าจะเป็นตัวเล่นมีเดีย, แผนที่, Ink Canvas ไปจนถึง Edge WebView

Tags:
Node Thumbnail

เราเริ่มเห็นกูเกิลทำตลาด Android Go มาสักระยะแล้ว (มือถือที่ขายในบ้านเราแล้วคือ Nokia 1) ในงาน Google I/O 2018 ก็มีหัวข้อหนึ่งที่พูดถึงเรื่องนี้โดยเฉพาะ

Android Go เป็นส่วนหนึ่งของแผนการ Next Billion Users ของกูเกิล (ชื่อภายในเรียกกันว่า NBU) เน้นเจาะตลาดประเทศกำลังพัฒนา ที่คนใช้งานอินเทอร์เน็ตผ่านมือถือเพียงช่องทางเดียวเท่านั้น

Tags:
Node Thumbnail

ทิศทางของ Chrome OS และ Android เข้าใกล้กันมากขึ้นเรื่อยๆ แต่คนที่มีอุปกรณ์ Chrome OS อาจยังมีไม่เยอะมากนัก นักพัฒนาที่ต้องการนำแอพ Android ไปรันทดสอบใน Chrome OS จึงมีอุปสรรคพอสมควร

ล่าสุดปัญหานี้ถูกแก้ไขแล้ว เพราะกูเกิลเพิ่ม Chrome OS Emulator เข้ามาเป็นส่วนหนึ่งของ Android Studio เรียบร้อยแล้ว

การใช้งานเราต้องมี Android Studio ติดตั้งพร้อมกับ Android Emulator ก่อน จากนั้นค่อยติดตั้งส่วนขยาย Chrome OS SDK add-ons เข้ามา แล้วค่อยสร้าง virtual device ใหม่ขึ้นมาเป็น Pixelbook สำหรับทดสอบ

Tags:
Node Thumbnail

กูเกิลปล่อย Android Studio 3.2 ให้ทดสอบพร้อมของใหม่ๆ ที่ประกาศในงาน Google I/O 2018 โดยสถานะตอนนี้ยังเป็นรุ่น canary และต้องใช้เวลาอีกสักพักกว่าจะเป็น stable

ของใหม่ที่มีใน Android Studio 3.2 ได้แก่ ปรับเวอร์ชันมาใช้ IntelliJ IDEA 2018.1.1 เป็นฐาน, Slices, AndroidX, Android Jetpack, App Bundle

ฟีเจอร์ใหญ่ที่น่าสนใจคือ Navigation Editor ช่วยให้เราเห็นภาพการนำทาง (navigation) ในแต่ละหน้าจอของแอพ ว่ากดจากหน้าจอไหนแล้วจะไปโผล่หน้าจอไหน

Tags:
Node Thumbnail

ฟีเจอร์ใหม่ที่น่าสนใจใน Android P สำหรับนักพัฒนาแอพคือ Slices และ App Actions ที่มาพร้อมแนวคิดใหม่ว่า เราไม่จำเป็นต้องใช้งานแอพทั้งตัวก็ได้

Slices และ App Actions ออกแบบมาเพื่ออนาคตที่เราทำงานต่างๆ ผ่าน Google Assistant มากกว่าเรียกแอพขึ้นมาตามปกติ ทำให้นักพัฒนาสามารถ "หั่น" (slice) หน้าจอบางส่วนมาแสดงในหน้าจอของ Google Assistant ได้

Tags:
Node Thumbnail

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

Jetpack ไม่ใช่ของใหม่ซะทั้งหมด หลายอย่างมีในโลกของ Android มานานแล้ว (เช่น Fragment/Layout) แต่ถูกนำมาจัดชุดใหม่ให้อยู่ภายใต้แบรนด์เดียว แต่ก็มีของใหม่บางอย่างเพิ่มเข้ามา เช่น Kotlin Extension (KTX) หรือ Slices ที่เป็นแนวคิดใหม่ใน Android P

Android Jetpack ประกอบด้วยคอมโพเนนต์ (components) เครื่องมือ (tools) และคำแนะนำในเชิงสถาปัตยกรรม (architectural guidance) ถ้าอิงตามการแบ่งหมวดของกูเกิลเองจะมี 4 หมวดคือ พื้นฐาน (fundamental) สถาปัตยกรรม (architecture) พฤติกรรม (behavior) และ UI

Tags:
Node Thumbnail

กูเกิลโชว์เทคนิคใหม่สำหรับการจัดแพ็กเกจ Android ช่วยให้ขนาดไฟล์ APK ลดลงได้สูงสุดถึง 50%

เทคนิคใหม่เรียกว่า Android App Bundle หลักการของมันคือ Dynamic Delivery ให้ผู้ใช้ดาวน์โหลดไฟล์เฉพาะส่วนที่ต้องใช้เท่านั้น ไม่ต้องโหลด APK ทั้งก้อนที่มีส่วนที่ไม่ได้ใช้งาน (เช่น ไฟล์ที่คอมไพล์มาสำหรับสถาปัตยกรรมอื่น) แถมยังสามารถดาวน์โหลดส่วนอื่นเข้ามาภายหลังได้เมื่อต้องใช้งาน

ในมุมของนักพัฒนาก็ทำงานง่ายขึ้น เพราะสร้างไฟล์ทั้งหมดชุดเดียว สร้าง APK ไฟล์เดียว ไม่ต้องสร้าง APK หลายชุดสำหรับการใช้งานแต่ละแบบ ที่เหลือนั้น Google Play จัดการต่อให้เราเอง

Tags:
Node Thumbnail

ในยุคสมัยที่อะไรๆ ก็ชื่อลงท้ายด้วย X กูเกิลเองก็เลยมี AndroidX กับเขาด้วย แต่มันไม่ใช่ของใหม่ทั้งหมด เพราะเป็นเวอร์ชันอัพเกรดของ Android Support Library ที่นักพัฒนาแอพส่วนใหญ่ใช้งานอยู่แล้ว

ชื่อ AndroidX มาจากคำว่า Android extension libraries ส่วนเหตุผลที่ต้องมีชื่อใหม่ก็เพราะว่าไลบรารีในชุด Android Support Library งอกมาเพิ่มเรื่อยๆ ตลอด 7 ปีที่ผ่านมา จนทำให้นักพัฒนาเริ่มสับสนว่าต้องเรียกใช้ไลบรารีตัวไหนกันแน่ (ที่ชื่อดันแตกต่างกันด้วย)

กูเกิลเลยจัดระเบียบชื่อทั้งหมดใหม่ให้อยู่ภายใต้ชื่อ androidx ดังนั้นเวลาอ้างอิง namespace ในโค้ดก็จะขึ้นต้นด้วย androidx.* แทนของเดิมที่เป็น android.* (แต่ไม่ใช่ทุกอย่างที่ย้ายไปอยู่ใต้ androidx)

ตัวอย่าง

Tags:
Node Thumbnail

ในงาน Microsoft Build 2018 มีประกาศเล็กๆ ที่น่าสนใจเพราะแอพที่ไม่เคยอัพเดตมานานแล้วอย่าง Notepad จะได้ฟีเจอร์ใหม่กับเขาด้วย

ฟีเจอร์ที่ว่าคือ Notepad จะสามารถตัดบรรทัดแบบ Linux/Unix ได้เป็นครั้งแรก ส่งผลให้การใช้ Notepad เปิดไฟล์ข้อความที่สร้างจากระบบปฏิบัติการฝั่งยูนิกซ์จะไม่ติดกันเป็นพรืดแล้ว

Tags:
Node Thumbnail

นักพัฒนาที่ใช้ Visual Studio คงรู้จักฟีเจอร์ช่วยเติมโค้ด IntelliSense กันเป็นอย่างดี ล่าสุดไมโครซอฟท์ยกระดับมันอีกขั้น และเปลี่ยนชื่อเป็น IntelliCode

จุดแตกต่างสำคัญของ IntelliCode คือไมโครซอฟท์เทรน AI ให้อ่านโค้ดคุณภาพระดับ 100 ดาวบน GitHub กว่า 2,000 โครงการเพื่อศึกษาว่าโค้ดที่ดีเป็นอย่างไร จากนั้นนำโมเดลที่เรียนได้มาประยุกต์ใช้กับโค้ดที่เรากำลังเขียนอยู่

สิ่งที่ IntelliCode จะทำให้เราคือช่วยแนะนำโค้ดจาก API อย่างแม่นยำมากขึ้น เหมาะกับบริบทและสถานการณ์ของโค้ดในแต่ละบรรทัดที่แตกต่างกันออกไป แถม IntelliCode จะยังช่วยเราเขียนคอนฟิกไฟล์ .editorconfig ให้เหมาะกับสไตล์การเขียนโค้ดของเรา เพื่อให้โค้ดออกมาเป็นระเบียบและสม่ำเสมอด้วย

Tags:
Node Thumbnail

ไมโครซอฟท์ประกาศแผนการออก .NET Core 3.0 ที่มาพร้อมฟีเจอร์สำคัญคือรองรับแอพแบบเดสก์ท็อป และการออก .NET Framework 4.8 ที่ทำงานคู่ขนานกันไป

สำหรับคนที่ไม่ได้ตาม .NET Core คือ .NET เวอร์ชันโอเพนซอร์สที่รองรับฟีเจอร์บางส่วนของ .NET Framework เดิม แต่สามารถทำงานได้ข้ามแพลตฟอร์ม (รองรับแมคและลินุกซ์ด้วย) ที่ผ่านมา .NET Core เน้นการใช้งานแอพพลิเคชันประเภท ASP.NET, คอมมานด์ไลน์ และแอพเดสก์ท็อปแบบ UWP เท่านั้น

ส่วนใน .NET Core 3 ไมโครซอฟท์ประกาศว่าจะรองรับแอพเดสก์ท็อปแบบเก่าอย่าง Windows Forms และ Windows Presentation Framework (WPF) ด้วย ทำให้ .NET Core จะสามารถรันแอพเดสก์ท็อป .NET รุ่นเก่าๆ ได้อย่างสมบูรณ์ (WPF และ WinForms ใช้ได้เฉพาะบนวินโดวส์)

Tags:
Node Thumbnail

Chainfire นักพัฒนาชื่อดังในโลกของ Rooted Android ผู้สร้างชื่อจากแอพ SuperSU (แต่ก็ยังมีผลงานทำแอพอื่นๆ อีกมาก) ประกาศเลิกทำงานทั้งหมดที่เกี่ยวข้องกับการ root เครื่องแล้ว

Chainfire ประกาศหยุดพักงานเกี่ยวกับ Android และ SuperSU เมื่อครึ่งปีก่อน เพื่อทบทวนว่าเขาอยากทำอะไรต่อไป หลังเวลาผ่านมาครึ่งปี เขาพบว่าตัวเองไม่อยากกลับมาทำงานเดิมๆ ต่ออีก จึงตัดสินใจประกาศหยุดยุ่งเกี่ยวกับงานเหล่านี้

ผลคือในอีกไม่ช้า แอพบางตัวของ Chainfire จะหายไปเลย บางตัวจะขึ้นข้อความเตือนว่าหยุดพัฒนาและไม่อัพเดตแล้ว แต่เขาก็ยังไม่ได้บอกรายละเอียดว่าตัวไหนบ้าง

Chainfire ระบุว่าตอนนี้เขากำลังทำโครงการอื่นที่ไม่เกี่ยวข้องกับ Android และไม่เปิดเผยว่าเป็นโครงการอะไร

Tags:
Node Thumbnail

ไมโครซอฟท์ออก .NET Framework 4.7.2 อัพเดตย่อยของ .NET Framework (ไม่พัฒนาฟีเจอร์ใหม่แล้ว ย้ายไปอยู่ใน .NET Core) โดยเวอร์ชัน 4.7.2 เป็นเวอร์ชันที่ถูกผนวกมาพร้อมกับ Windows 10 April 2018 Update ด้วย

ของใหม่ (บางส่วน) ในเวอร์ชันนี้ได้แก่

Tags:
Node Thumbnail

Facebook ยังเดินหน้าปรับเปลี่ยน API ของตัวเองใหม่เพื่อรักษาความเป็นส่วนตัวของผู้ใช้อย่างเข้มงวดมากขึ้น เพิ่มเติมจากที่เคยประกาศไปแล้วรอบหนึ่ง และการปรับนโยบาย Facebook Login

การเปลี่ยนแปลงสำคัญมีดังนี้

Tags:
Node Thumbnail

ไมโครซอฟท์ออกอัพเดตให้ Visual Studio Code ขยับเลขรุ่นเป็น 1.22 โดยมาพร้อมกับการปรับปรุงใหม่ๆ หลายอย่าง

การปรับปรุงที่น่าสนใจของอัพเดตนี้อย่างแรกคือ code folding ให้สามารถซ่อน / แสดงโค้ดตาม syntax ของภาษา CSS, HTML, JSON และ Markdown ได้โดยอัตโนมัติ ไม่ต้องอาศัยการจัดย่อหน้าโค้ดด้วยตัวเองอย่างเวอร์ชันก่อนๆ

Node Thumbnail

กูเกิลมีบริการสร้างบ็อตสนทนา (ทั้งที่เป็นแชทและเสียงพูด) ชื่อ Dialogflow ซึ่งเปลี่ยนชื่อมาจากบริษัท API.AI ที่เคยซื้อกิจการมา ที่ผ่านมา Dialogflow เป็นเครื่องมือสำคัญในการสร้างบทสนทนา (Actions) ที่เชื่อมต่อกับผู้ช่วยส่วนตัว Google Assistant (แถมรองรับภาษาไทยด้วย)

Dialogflow ใช้เทคนิคด้าน machine learning และ natural language processing (NLP) ทำให้เข้าใจการสนทนาของมนุษย์ ตัวมันสามารถใช้ได้กับบริการหลากหลาย (ไม่จำกัดเฉพาะกูเกิล) เชื่อมต่อกับ Alexa, Facebook, Twitter, Slack, Cortana ได้หมด มันยังสามารถเชื่อมต่อกับบริการแปลงเสียงพูด Google Cloud Speech-to-Text ได้ด้วย

Tags:
Node Thumbnail

เป็นที่รู้กันดีว่า Mozilla ผลักดันเทคโนโลยี WebAssembly แบบสุดตัว ปัจจุบันเว็บเบราว์เซอร์ 4 ค่ายใหญ่ล้วนรองรับ WebAssembly กันหมดแล้ว ผลงานใหม่ล่าสุดของ Mozilla จึงหันไปจับตลาดนักพัฒนา ด้วยการเปิดตัว IDE สำหรับ WebAssembly โดยเฉพาะ

IDE ตัวนี้ชื่อว่า WebAssembly Studio มันเป็น IDE แบบออนไลน์ใช้งานผ่านเว็บ โดย Mozilla พัฒนาขึ้นจากโค้ดของซอฟต์แวร์โอเพนซอร์สหลายโครงการ เช่น Monaco Editor ของไมโครซอฟท์ (ตัวเดียวกับที่ใช้ใน VS Code), Binaryen, Clang Format ผสมกันออกมาเป็น IDE ที่สามารถเขียนโค้ดในภาษา C/C++/Rust แล้วแปลงเป็น WebAssembly ได้ทันที (กดเข้าไปลองเล่น)

Tags:
Node Thumbnail

Mozilla ประกาศแผนการพัฒนาให้ภาษา Rust ทำงานร่วมกับ JavaScript ในการใช้เขียนเว็บร่วมกัน

แนวทางของ Mozilla ไม่ได้ต้องการให้ Rust มาแทน JavaScript แต่มองว่าถ้าส่วนไหนจำเป็นต้องใช้ Rust เพื่อประสิทธิภาพที่ดีกว่า (เช่น การ parse ข้อมูลขนาดใหญ่) ก็สามารถใช้ Rust เขียนส่วนนั้น แล้วนำมาใช้ร่วมกับ JavaScript ในส่วนอื่นได้

วิธีการที่ Mozilla ใช้คือคอมไพล์ Rust เป็น WebAssembly ก่อน แล้วค่อยให้ WebAssembly ทำงานร่วมกับ JavaScript อีกทอดหนึ่ง ซึ่งวิธีนี้จะเปิดให้ใช้ภาษาอื่นนอกจาก Rust ในระยะยาว โดย Mozilla ระบุว่ามีแผนจะแปลง C/C++ เป็น WebAssembly ในอนาคตด้วย

Tags:
Topics: 
Node Thumbnail

Travis CI ผู้ให้บริการ continuous integration (CI) ทำฐานข้อมูลหายทั้งระบบเมื่อเดือนมีนาคมที่ผ่านมา หลังพลาดรันชุดทดสอบโดยกำหนดคอนฟิกตัวแปร DATABASE_URL เป็นเซิร์ฟเวอร์ production ทำให้สคริปต์สั่งล้างฐานข้อมูลเพื่อเตรียมทดสอบ และเมื่อสัปดาห์ที่แล้วทีมงานก็เขียนบล็อครายงานสาเหตุและแนวทางแก้ไข

ความผิดพลาดนี้เกิดจากนักพัฒนาใช้หน้าจอ tmux เปิดฐานข้อมูล production เพื่อตรวจสอบปัญหา จึงคอนฟิกให้ตัวแปรชี้ไปยังฐานข้อมูลจริง หลังจากนั้นก็ทิ้งเทอร์มินัลนี้ไว้หลายวัน แล้วกลับมาใช้รันทดสอบโดยลืมไปว่าตั้งให้ใช้ฐานข้อมูลจริงไว้

Tags:
Node Thumbnail

ท่าทีของไมโครซอฟท์ชัดเจนว่าทุ่มสุดตัวให้คนย้ายไปดาวน์โหลดแอพผ่าน Microsoft Store แต่วิธีการทำงานของ Microsoft Store ก็ยังมีข้อจำกัดอยู่ เพราะการส่งแอพขึ้น Store แปลว่าผู้ใช้ทุกคนมีสิทธิดาวน์โหลดแอพของเรา แม้ว่าเรายังไม่พร้อมขนาดนั้นก็ตาม

ล่าสุดไมโครซอฟท์จึงเพิ่มฟีเจอร์ใหม่ชื่อ Private Audience ให้เราส่งแอพขึ้น Store และมีแค่ผู้ใช้บางกลุ่มเท่านั้นที่มองเห็นแอพตัวนี้ (คนอื่นแม้ว่าจะรู้ลิงก์เข้าตรงก็เข้าไม่ได้) เหมาะสำหรับนักพัฒนาที่ต้องการทดสอบแอพในวงปิด หรือแอพบางตัวที่ออกแบบมาสำหรับผู้ใช้เฉพาะกลุ่มจริงๆ

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

Tags:
Node Thumbnail

ในงานแถลงข่าวของธนาคารไทยพาณิชย์วันนี้ (28 มีนาคม) นายธนา โพธิกำจร ผู้อำนวยการอาวุโส ผู้บริหารสาย Digital Banking ประกาศว่าธนาคารไทยพาณิชย์จะเปิด API ให้นักพัฒนาภายนอกเข้าถึงในเร็วๆ นี้ (ยังไม่ระบุวันที่ชัดเจน) โดยจะเปิดพอร์ทัล developers.scb.co.th ให้นักพัฒนาใช้งานและเรียนรู้ API ของธนาคาร

จากแผนภาพที่โชว์ในงาน จะเห็นว่า API มีสองส่วนคือส่วนของ SCB API สำหรับเข้าถึงบริการหลักของธนาคาร และ SCB Easy API สำหรับเข้าถึงแอพ SCB Easy เช่น tile ที่ปรากฏบนหน้าแอพด้วย

Pages