จากประเด็นร้อนแรงที่เกิดขึ้นในกระทู้บน Pantip กับข้อสงสัยที่ว่า Shopee แอปขโมยรูปในเครื่องหรือป่าว เพราะมีผู้ใช้พบว่ามีไฟล์รูปอยู่ในโฟลเดอร์ของ Shopee ทั้งๆที่ไม่ได้มีความเกี่ยวข้องแต่อย่างใดเลย จึงทำให้เกิดคำถามต่างๆนานามากมาย จนกระทั่งทาง Shopee ชี้แจง รวมไปถึงเพจ nuuneoi.com ได้อธิบายถึงปัญหาที่เกิดขึ้นจากคำตอบของนักพัฒนาแอปจาก Shopee เองเลย ถ้าผู้อ่านคิดว่าพลาดเหตุการณ์ช่วงไหนไปบ้างก็สามารถอ่านข่าว Shopee ยอมรับ กรณีแอปดึงรูปเข้าโฟลเดอร์ Sharing เกิดจาก Bug ยืนยันไม่ได้ส่งไฟล์อัปโหลดไปที่อื่น ที่ทีมงาน Droidsans ของเรารวมรวบไว้ได้เลยครับ

และสำหรับข่าวนี้ทางทีมงาน Droidsans ก็จะมาอธิบายเพิ่มเติมในรายละเอียดของบั๊กดังกล่าว (ปัญหาที่เกิดขึ้นในการทำงานของแอป) โดยอ้างอิงจากคำตอบที่นักพัฒนาแอปของ Shopee ได้อธิบายให้กับ NuuNeoi และผู้เขียนจากการพูดคุยด้วยกันเมื่อตอนบ่ายของวันที่ 1 กันยายน 2563 ครับ ว่าเกิดจากอะไร เกิดขึ้นได้อย่างไร น่ากังวลมากน้อยแค่ไหน และทาง Shopee จะทำอย่างไรต่อ ทั้งนี้เพื่อให้ผู้อ่านที่มีความกังวลสามารถเข้าใจมากขึ้นครับ โดยเนื้อหาจะแบ่งเป็น 2 ส่วน สามารถกระโดดข้ามไปอ่านได้ครับ

Disclaimer : เนื้อหาที่จะพูดถึงในต่อไปนี้ จะอ้างอิงจากการพูดคุยกับ Engineer ของทาง Shopee ที่เกี่ยวข้องกับปัญหาดังกล่าว ทั้งนี้เพราะ NuuNeoi และผู้เขียนไปในฐานะ Android Developer ดังนั้นการพูดคุยทั้งหมดในครั้งนั้นจะเป็นแบบ Android Developer พูดคุยด้วยกันหรือพูดง่ายๆว่า Geek สุดๆนั่นเอง จึงต้องมีการสรุปเนื้อหาและเรียบเรียงใหม่เพื่ออธิบายให้กับผู้อ่านสามารถทำความเข้าใจได้ง่ายขึ้นนั่นเอง

โฟลเดอร์ sharing ที่อยู่ใน shopeeTH มีไว้ทำอะไร?

จุดประสงค์หลักของโฟลเดอร์ shopeeTH/images/sharing ที่อยู่ภายในเครื่องของผู้ใช้ มีไว้สำหรับให้ผู้ใช้สามารถกดเซฟภาพที่อยู่ในแอป Shopee เพื่อแชร์ผ่านแอปอื่นๆได้สะดวกมากขึ้น โดยจะเซฟรูปไว้ในโฟลเดอร์ดังกล่าว เพื่อให้แอปอื่นๆสามารถมองเห็นได้ง่าย เช่น เปิดแอป Gallery ในเครื่อง หรือกดเลือกรูปในเครื่องจาก Facebook Messenger ได้เลย

ดังนั้นจุดประสงค์ดั้งเดิมของไฟล์รูปภาพที่อยู่ในนี้จึงเป็น “ภาพที่สร้างขึ้นมาจาก Shopee เพื่อให้ผู้ใช้นำไปแชร์ต่อ” แต่ทว่าสิ่งที่ผู้ใช้เจอนั้นกลับกลายเป็นว่ามีรูปอื่นๆที่ไม่เกี่ยวข้องกับแอป Shopee โดยตรง มาโผล่อยู่ในโฟลเดอร์นี้ด้วยนั่นเอง

แล้วภาพเหล่านั้นมาจากไหน? ทำไมถึงไปอยู่ผิดที่ผิดทางแบบนั้น?

ในแอป Shopee จะมีการทำงานอย่างหนึ่งที่เรียกว่าการทำภาพให้เป็น Thumbnail เพื่อแสดงในแอป ซึ่งเป็นวิธีปกติที่นักพัฒนาทำกัน เพราะถ้าเอาไฟล์ภาพต้นฉบับมาแสดงอาจจะมีขนาดใหญ่เกินจำเป็น จึงต้องเอามาย่อขนาดให้เล็กลงก่อนแล้วนำไปแสดงในแอป

นั่นหมายความว่าการทำงานของฟีเจอร์จำพวกนี้จะมีโอกาสที่จะนำรูปของในเครื่องของเราไปทำเป็น Thumbnail เพื่อแสดงในแอปนั่นเอง โดยจะทำการก๊อปบางรูปในเครื่องของเรา (บางภาพก็จะแก้ไขปัญหาแสดงรูปแล้วพลิกกลับด้านด้วย) เพื่อทำเป็น Thumbnail และรูปภาพที่เป็นปัญหากันก็คือเหล่ารูปภาพที่ถูกก๊อปเพื่อนำไปทำเป็น Thumbnail นั่นเอง

แต่เหตุผลที่ภาพถูกก๊อปไปไว้ในโฟลเดอร์ดังกล่าวเป็นความผิดพลาดที่เกิดขึ้นจากการเรียกใช้งานโค้ดที่เรียกใช้งานซ้ำๆ (Reuse Code) ภายในแอป Shopee

โค้ดที่เรียกใช้งานซ้ำๆ (Reuse Code) คืออะไร?

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

เมื่อเกิดการใช้งานโค้ดในรูปแบบนี้มากขึ้นเรื่อยๆ ก็สามารถทำให้นักพัฒนานั้นไม่ได้สนใจโค้ดที่อยู่ข้างในแม้แต่น้อย (รู้แค่ว่าทำงานในสิ่งที่ต้องการ แต่ไม่รู้ว่าข้างในนั้นทำอะไรบ้าง) ยิ่งเป็นบริษัทขนาดใหญ่ที่มีนักพัฒนาหลายๆคนก็ยิ่งไม่ต้องพูดถึง (อาจจะไม่ได้เป็นคนเขียนขึ้นมาเอง แต่ต้องเรียกใช้งาน)

ซึ่งการก๊อปรูปเพื่อนำไปทำ Thumbnail ของแอป Shopee ที่ใช้โค้ดสำหรับเรียกใช้งานซ้ำๆนี่แหละที่เกิดปัญหาขึ้น เพราะแทนที่จะต้องก๊อปรูปเก็บไว้ใน Private Folder ของแอป กลับไปกำหนดที่อยู่ปลายทางเป็น shopeeTH/images/sharing แทนซะงั้น และที่สำคัญก็คือไม่ได้ลบรูปเหล่านั้นทิ้งหลังจากทำ Thumbnail เสร็จด้วย จึงกลายเป็นไฟล์รูปที่ตกค้างอยู่ในโฟลเดอร์เจ้าปัญหานั่นเอง

การแก้ไขปัญหาของ Shopee ที่ผ่านมา และในวันข้างหน้า

ถ้าลองดู Timeline ของเหตุการณ์ที่เกิดขึ้นก็จะพบว่าเหตุการณ์นั้นเริ่มขึ้นประมาณ​ตี 1 ของวันศุกร์ที่ 28 สิงหาคม 2563 ที่มีผู้ใช้ตั้งกระทู้บน Pantip และทาง Shopee ก็ทำการแก้ไขภายในบ่าย 2 – 3 โมง ของวันเดียวกัน ซึ่งระยะเวลาอยู่ที่ประมาณ​ 13-14 ชั่วโมงเท่านั้น (ถ้าสมมติว่าคนของ Shopee มาเห็นกระทู้นั้นพอดีและสามารถโทรปลุกนักพัฒนาให้ตื่นขึ้นมากลางดึกเพื่อแก้ไขได้เลย) ซึ่งถือว่าเป็นเวลาที่น้อยเกินไปสำหรับนักพัฒนาที่จะต้องวิเคราะห์ว่าปัญหานั้นเกิดจากอะไรได้บ้าง กระทบกับผู้ใช้กลุ่มไหนบ้าง และจะแก้ไขปัญหาดังกล่าวได้อย่างไร

และเนื่องจากปัญหาดังกล่าวอยู่ในระดับร้ายแรง (Critical Issue) ที่ส่งผลกระทบกับแอป Shopee มากในระดับนึง จึงทำให้นักพัฒนาเลือกใช้วิธีที่รวดเร็วที่สุดก่อนนั่นก็คือใช้คำสั่งเหมือนเดิมแต่ย้ายที่อยู่ของภาพให้ไปอยู่ใน Private Folder และเพิ่มโค้ดเพื่อลบไฟล์รูปในโฟลเดอร์ที่มีปัญหาออกไปก่อน ซึ่งเป็นขั้นตอนปกติของการรับมือกับปัญหาที่อยู่ในระดับร้ายแรงแบบนี้ แล้วค่อยแก้ปัญหาให้ถูกต้องอย่างสมบูรณ์ตามมาทีหลัง (ซึ่งจากการพูดคุยทาง Shopee ได้รับคำแนะนำว่าจะเปลี่ยนโค้ดที่ใช้ในการทำ Thumbnail ให้เหมาะสมกว่าเดิม โดยการทำ Thumbnail จากรูปต้นฉบับโดยตรง ไม่ต้องก๊อปไฟล์ไปไว้ใน Private Folder ไปแล้ว)

นั่นหมายความว่าในตอนนี้ยังเป็นแอปในเวอร์ชันที่ทำการแก้ไขแบบเร่งด่วนอยู่ และในวันข้างหน้าเมื่อแก้ไขเสร็จสมบูรณ์แล้วก็จะอัปเดตตามมาให้ทีหลังนั่นเอง

ทำไมบางคนถึงเจอปัญหานี้ บางคนก็ไม่เจอ

เพราะปัญหานี้เกิดขึ้นกับผู้ใช้ที่ใช้งานเฉพาะบางฟีเจอร์เท่านั้น ซึ่งการตรวจสอบว่าปัญหาดังกล่าวนั้นกระทบส่วนไหนบ้างเป็นเรื่องที่ต้องใช้เวลาในการค้นหานานพอสมควรและทำได้ยาก แต่เบื้องต้นนักพัฒนาของทาง Shopee สามารถยืนยันได้ว่าการใช้ Image Search (ค้นหาสินค้าด้วยรูปภาพในเครื่อง) เป็นอีกหนึ่งฟีเจอร์ที่ทำให้ผู้ใช้ได้รับผลกระทบจากปัญหาดังกล่าว

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

รูปภาพในเครื่องของเราจะถูกแอบอัปโหลดขึ้น Server ของ Shopee หรือไม่?

เรื่องนี้ทางนักพัฒนาแอปของ Shopee ได้ยืนยันอย่างชัดเจนว่าไม่มีการลักลอบแอบอัปโหลดรูปภาพจากในเครื่องของผู้ใช้ขึ้น Server ของ Shopee อย่างแน่นอน เพราะจริงๆแล้วการทำงานภายในบริษัท Shopee นั้น จะซีเรียสเรื่อง Privacy และ Security เป็นอย่างมาก ดังนั้นถ้าจะมีการอัปโหลดรูปขึ้น Server ของ Shopee ก็จะเป็นการใช้งานภายในแอปตามปกติที่ผู้ใช้เป็นคนเลือกเองอยู่แล้ว (เช่น รูปรีวิวสินค้า, รูปสินค้าในร้านของตัวเอง เป็นต้น)

และจากการแกะโค้ดของ Shopee ก็ไม่เจอโค้ดแปลกๆที่จะแอบอัปโหลดรูปจากเครื่องผู้ใช้ด้วย มีแค่ฟีเจอร์ทั่วๆไปที่ต้องให้ผู้ใช้เลือกอัปโหลดรูปด้วยตัวเอง โดย NuuNeoI และผู้เขียนต่างคนต่างแยกกันแกะโค้ดของ Shopee อยู่แล้ว แล้วนำผลที่ได้มาแลกเปลี่ยนกัน จึงถือว่าเป็นการ Double Check กันได้ประมาณนึง ส่วนการดักข้อมูลที่ส่งผ่าน Network ทาง NuuNeoI ก็ยืนยันว่าไม่มีการแอบอัปโหลดรูปภาพ ซึ่งผู้เขียนไม่ได้ทดสอบเรื่องนี้ (เพราะเป็นเรื่องที่ใช้เวลาทดสอบนานมากกว่าการแกะโค้ดเสียอีก)

ปัญหานี้เกิดขึ้นเฉพาะแอป Shopee ในประเทศไทยหรือไม่?

อันนี้เป็นคำถามเพิ่มเติมจากผู้เขียน ซึ่งนักพัฒนาของ Shopee ก็ได้ให้คำตอบว่าเกิดขึ้นกับแอป Shopee ทั้งหมด ไม่ใช่แค่เฉพาะแอปของประเทศไทย เพราะพัฒนาขึ้นมาจากโค้ดชุดเดียวกัน

สรุปคำตอบจากทาง Shopee

ปัญหานี้เกิดขึ้นจากการทำงานของโค้ดภายในแอป Shopee ที่ทำงานผิดพลาดด้วยความไม่ได้ตั้งใจ ทำให้รูปภาพที่จะนำไปทำเป็น Thumbnail ถูกก๊อปอยู่ในโฟลเดอร์ที่ไม่ถูกต้อง และไม่มีการแอบส่งภาพขึ้น Server อย่างแน่นอน

 

เนื้อหาข้างบนทั้งหมดนี้มาจากการพูดคุยกับนักพัฒนาของทาง Shopee โดยตรง ส่วนเนื้อหาต่อจากนี้จะเป็นเนื้อหาเพิ่มเติมจากมุมมองของผู้เขียนที่เป็นนักพัฒนาแอปแอนดรอยด์ครับ

มีความคิดเห็นอย่างไรกับคำตอบจากทาง Shopee

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

เป็นไปได้มั้ยที่ Shopee แอบส่งรูปขึ้น Server จริงๆ แต่โดนจับได้ เลยทำเนียนว่าเป็น Bug?

ถ้าไม่นับที่ NuuNeoI ทำการดัก Network ของแอปเพื่อตรวจสอบการทำงาน แต่ไม่เจออะไรที่น่าสงสัย เราก็สามารถสันนิษฐานได้ครับ

แต่สิ่งนึงที่ควรใช้ประกอบในการสันนิษฐานก็คือ

จริงๆแล้วการเขียนแอปให้แอบส่งรูปขึ้น Server ไม่จำเป็นต้องก๊อปรูปเลย ส่งรูปต้นฉบับขึ้น Server ได้ทันทีเลย เขียนโค้ดน้อยและง่ายกว่าด้วย

ดังนั้นถ้าถามว่าเป็นไปได้มั้ย ก็ต้องบอกว่าเป็นไปได้ครับ แต่น้ำหนักนั้นค่อนข้างน้อยเกินไปเมื่อเทียบกับวิธีที่ง่ายกว่า

ทำไมทาง Shopee ไม่ชี้แจงถึงปัญหานี้ตรงๆไปเลยว่าเกิดจากอะไร

จากที่ผู้เขียนได้อธิบายถึงรายละเอียดของปัญหาดังกล่าวจะเห็นได้ว่าเป็นปัญหาทางด้าน Technical ที่ส่งผลกระทบต่อผู้ใช้ แต่ปัญหาดังกล่าวก็ไม่สามารถอธิบายให้เป็นคำพูดที่เข้าใจได้ง่ายสำหรับทุกคนด้วย ดังเช่นที่ผู้เขียนต้องเรียบเรียงการอธิบายเพื่อให้ผู้อ่านเข้าใจมากที่สุด ในขณะที่ตอนพูดคุยกับทาง Shopee จะมีความเป็น Technical มากกว่านี้เยอะมาก (ลองนึกภาพว่าทาง Shopee ใช้คำว่า “ปัญหาดังกล่าวเกิดขึ้นเพราะ Reuse Code ที่ใช้อยู่ทำงานผิดพลาด” ดูสิครับ 😆 ) ดังนั้นในมุมมอง PR ของ Shopee การประกาศถึงปัญหาด้วยข้อความที่สามารถอ่านแล้วเข้าใจได้ทุกคนจึงเป็นสิ่งที่ถูกต้องครับ แต่การทำเช่นนั้นก็จะทำให้เนื้อหาในส่วนที่สำคัญจริงๆถูกลดทอนลงด้วยเช่นกัน

ถือว่าเป็นการกระทำที่ผิดกฏหมายหรือไม่?

จากการชี้แจงของทาง Shopee ปัญหานี้ในครั้งเป็นการย้ายหรือคัดลอกไฟล์ภาพอยู่ภายในเครื่องเพียงอย่างเดียว ไม่ได้ส่งขึ้น Server แต่อย่างใด ดังนั้นสุดท้ายแล้วไฟล์ภาพนั้นก็ยังคงอยู่ในเครื่องของผู้ใช้อยู่ดี จึงไม่ถือว่าเป็นการลักลอบนำข้อมูลส่วนตัวของผู้ใช้ไปเผยแพร่ให้แก่บุคคลภายนอกโดยไม่ได้รับอนุญาต

ปัญหานี้เกิดขึ้นกับ iOS หรือไม่?

เป็นคำถามที่ไม่ได้ถามกับทาง Shopee ครับ แต่โดยปกติแล้วเวลาการพัฒนาแอปบน Android และ iOS จะใช้นักพัฒนาแยกกันสำหรับแต่ละ OS และมีการเขียนโค้ดที่ใช้ภาษาแตกต่างกัน จึงมีโอกาสที่โค้ดแตกต่างกันอยู่แล้ว จึงมีโอกาสที่ iOS จะไม่เจอปัญหานี้ก็ได้ แต่สิ่งที่ทาง Shopee ตอบและส่งผลกับ iOS ด้วยก็คือไม่มีการแอบส่งรูปขึ้น Server นั่นเอง

ในฐานะนักพัฒนาแอปควรเรียนรู้อะไรจากเรื่องราวนี้

โค้ดเพียงไม่กี่บรรทัดที่เราเขียนไว้ในแสนบรรทัดก็สามารถส่งผลกระทบที่ร้ายแรงกับแอปได้เสมอ โดยเฉพาะอย่างยิ่งเรื่องของ User Privacy ที่ในปัจจุบันผู้คนเริ่มตื่นตัวกับเรื่องนี้มากขึ้นเรื่อยๆ ดังนั้นนอกจากความถูกต้องของโค้ดแล้ว ควรตรวจสอบการทำงานของแอปให้ดีๆว่ามีการทำงานส่วนไหนที่สุ่มเสี่ยงที่จะทำให้ผู้ใช้เข้าใจผิดหรือไม่ ถ้าไม่จำเป็นก็ควรเลี่ยง แต่ถ้าจำเป็นเพื่อให้แอปสามารถทำงานได้ การอธิบายและชี้แจงด้วยเหตุผลถือเป็นสิ่งสำคัญที่ไม่ควรมองข้าม

ในฐานะผู้ใช้งานแอปทั่วๆไปควรรับมืออย่างไร

ถึงแม้ว่าข้อผิดพลาดที่เกิดขึ้นจากการทำงานของแอปตั้งแต่เรื่องเล็กๆน้อยๆไปจนถึงเรื่องใหญ่ๆนั้นเป็นเรื่องที่สามารถเกิดขึ้นได้เสมอ ไม่ว่าจะเป็นแอปขนาดเล็กหรือใหญ่แค่ไหน ทีมพัฒนามีความชำนาญมากน้อยแค่ไหน ก็สามารถเกิดขึ้นได้เสมอ (ขนาดแอประดับโลกอย่าง Facebook เราก็ยังเคยเจอ Bug กันเลยเนอะ) และในฐานะผู้ใช้อย่างเราก็มีสิทธิ์เช่นกันครับ ไม่ว่าจะเป็นการหวาดระแวง ตั้งคำถาม สงสัย เรียกร้องคำอธิบาย หรือแม้กระทั่งตัดสินใจลบแอปออกไปจากเครื่องก็สามารถทำได้เช่นกันครับ (แต่ถ้าจะฟ้องร้องบริษัททั้งๆที่ไม่มีหลักฐานที่ชัดเจน อันนั้นก็จะสุ่มเสี่ยงไปหน่อย 😅 )

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

ไม่ว่าแอปนั้นจะขอ Permission เยอะแค่ไหน ตราบใดที่เราไม่อนุญาต แอปก็ทำอะไรไม่ได้

ถ้ายังจำกันได้ เราสามารถกดดูรายชื่อ Permission ทั้งหมดที่แอปสามารถขอใช้งานได้ แต่ถึงแม้ว่าจะมี Permission เยอะแค่ไหนก็ตาม ตราบใดที่เราไม่ได้กดให้อนุญาต (Grant) แอปก็ไม่สามารถเรียกใช้คำสั่งที่เกี่ยวข้องกับ Permission นั้นๆได้ครับ (เพิ่มเข้ามาใน Android 6.0 Marshmallow)

และนอกจากนี้บนแอนดรอยด์เวอร์ชันใหม่ๆ บาง Permission ที่มีความสำคัญมากๆอย่าง Location และ Camera จะสามารถเลือกได้ว่าจะให้อนุญาต Permission ด้วยเงื่อนไขใด ไม่ว่าจะเป็นการอนุญาตให้ใช้งานได้ตลอดเวลา, อนุญาตให้เฉพาะตอนเปิดใช้งานแอปเท่านั้น หรืออนุญาตให้แค่ครั้งนี้ครั้งเดียวเท่านั้น

หรือถ้าเป็นเวอร์ชันเก่ากว่านี้ ก็สามารถใช้วิธีให้อนุญาตเฉพาะตอนที่ต้องใช้งานจริงๆแล้วค่อยไปปิดใน App Info ก็ได้เช่นกันครับ

แอนดรอยด์เวอร์ชันใหม่ๆจะเน้นเรื่อง Privacy มากขึ้นเรื่อยๆ

ในทุกๆปีที่แอนดรอยด์เปิดตัวเวอร์ชันใหม่ สิ่งหนึ่งที่มีการเปลี่ยนแปลงและเห็นได้อย่างชัดเจนก็คือเรื่อง Privacy ครับ ในทุกๆเวอร์ชันจะมีการปรับเปลี่ยนการทำงานให้สอดคล้องกับเรื่องนี้มากขึ้นเรื่อยๆ เช่น ตั้งแต่ Android 10 ขึ้นไป แอปจะเปิดใช้งานกล้องได้ก็ต่อเมื่อแอปเปิดอยู่บนหน้าจอเท่านั้น ถ้าแอปถูกย่อในระหว่างนั้นก็จะถูกระบบแอนดรอยด์ปิดกล้องทันที เป็นต้น

Scoped Storage บน Android 10 (สำหรับบางแอป) และ Android 11 (สำหรับทุกแอป)

Scoped Storage on Android 11. This is a follow-up from my previous… | by Fernando García Álvarez | ProAndroidDev

ปัญหาเรื้อรังอย่างหนึ่งที่เกี่ยวกับ Permission บนแอนดรอยด์ก็คือเรื่องของการเข้าถึง Public Storage ของเครื่อง (นักพัฒนาจะเรียกกันว่า External Storage) ที่มีแค่ Permission เพียงตัวเดียวก็สามารถเข้าถึงได้ทุกไฟล์ใน Public Storage แล้ว แต่ด้วยความสามารถของ Scoped Storage จะแบ่งการเข้าถึงข้อมูลใน Public Storage ให้ชัดเจนมากขึ้น การเข้าถึงข้อมูลเฉพาะบางโฟลเดอร์ การเขียนอ่านไฟล์แต่ละประเภท สิ่งเหล่านี้จะถูกจำกัดมากขึ้น

เพราะ Privacy ของคุณเป็นเรื่องสำคัญ ระบบแอนดรอยด์จึงเปลี่ยนแปลงอยู่เรื่อยๆ แค่คุณใส่ใจ นักพัฒนาแอปก็ดีใจครับ เพราะต้องเขียนโค้ดเยอะขึ้นกว่าเดิมในทุกการเปลี่ยนแปลง 😂

สุดท้ายนี้ก็ต้องขอบคุณทาง Shopee ที่ให้โอกาสให้ทีมงาน Droidsans และ NuuNeoI ได้เข้าไปพูดคุยกับนักพัฒนาแอปของ Shopee โดยตรงเพื่ออธิบายถึงปัญหาดังกล่าว ถือว่าเป็นเรื่องที่น่าประทับใจมากๆเลยล่ะ