เบื้องหลังโลโก้ Bluesky ในภาพหน้าจอ: เคล็ดลับจาก UITextField ที่ไม่ธรรมดา

เคยสังเกตไหมว่าเวลาเราแคปเจอร์หน้าจอแอปพลิเคชันบางตัว โลโก้หรือเนื้อหาบางอย่างกลับหายไป หรือเปลี่ยนไปปรากฏเป็นโลโก้ของแอปพลิเคชันแทน? หนึ่งในนั้นคือแอป Bluesky ที่มีวิธีซ่อนโลโก้ของตัวเองในภาพหน้าจอได้อย่างน่าสนใจ ทีมงาน timmarinin.net ได้ลองสืบค้นและพบเบื้องหลังที่น่าทึ่งว่าทำได้อย่างไร

ทำไมโลโก้ Bluesky ถึงปรากฏในภาพหน้าจอ?

หลายครั้งที่เราเห็นโพสต์ที่น่าสนใจใน Bluesky แล้วอยากจะแคปเจอร์เก็บไว้ หรือส่งต่อให้เพื่อนๆ แต่ก็สังเกตเห็นโลโก้ของ Bluesky ปรากฏอยู่ที่มุมขวาของภาพหน้าจอเสมอ ซึ่งเป็นเรื่องที่น่าสงสัย เพราะปกติแล้วเวลาใช้งานแอปพลิเคชัน โลโก้นี้จะไม่ได้แสดงอยู่ตลอดเวลา บางครั้งก็ถูกแทนที่ด้วยปุ่ม "Follow"

ความสงสัยในกลไกการทำงาน

ในตอนแรกอาจจะคิดว่านี่เป็นกลไกที่ซ่อนโลโก้ไว้ในบริเวณที่มี "รอยบาก" (notch) ของ iPhone เพื่อไม่ให้เกะกะสายตาเวลาใช้งานปกติ แต่เมื่อลองสังเกตดีๆ โลโก้กลับปรากฏขึ้นมาในภาพหน้าจออย่างชัดเจน ทำให้เกิดคำถามว่าแอปพลิเคชันทำได้อย่างไร?

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

การค้นพบเบื้องหลังจากโค้ดโอเพนซอร์ส

โชคดีที่แอปพลิเคชัน Bluesky เป็นโอเพนซอร์ส ทำให้สามารถเข้าไปตรวจสอบโค้ดเพื่อหาคำตอบได้

คำตอบที่ค้นพบอยู่ในไฟล์ชื่อ GrowthHack.tsx ซึ่งถูกเพิ่มเข้ามาโดยผู้ใช้งานชื่อ mozzius แต่ไฟล์ดังกล่าวกลับไปเรียกใช้ไลบรารีอื่น คือ expo-privacy-sensitive เมื่อเจาะลึกเข้าไปในไลบรารีนี้ ก็พบว่าเบื้องหลังทั้งหมดคือการใช้ UITextField ซึ่งเป็นส่วนประกอบมาตรฐานของ iOS สำหรับการป้อนข้อความ แต่มีการตั้งค่าคุณสมบัติ isSecureTextEntry ให้เป็น true

กลไกการซ่อนโลโก้ด้วย UITextField

เมื่อตั้งค่า isSecureTextEntry เป็น true ระบบ iOS จะทำการซ่อนเนื้อหาที่แสดงผลใน UITextField นั้นๆ ด้วยการทำให้เลเยอร์ (layer) ว่างเปล่า หรือแสดงเป็นสีดำ ทำให้โลโก้ของ Bluesky ซึ่งถูก "ซ้อน" อยู่ภายใน UITextField นี้ สามารถปรากฏให้เห็นได้ในภาพหน้าจอ

สำหรับแพลตฟอร์มอื่นๆ ที่ไม่ใช่ iOS แอปพลิเคชันจะแสดงผลเนื้อหาตามปกติ โดยไม่มีการซ่อนใดๆ

ทำไมถึงไม่ทำงานตอนสลับแอป?

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

เทคนิคที่น่าสนใจ หรือการใช้ API ที่ไม่เหมาะสม?

เทคนิคนี้ถูกมองว่าเป็นกลไกที่สร้างสรรค์ หรืออาจเป็นการใช้ API ที่มีไว้เพื่อความเป็นส่วนตัว (privacy) ในทางที่ผิด ผู้พัฒนาบางส่วนในเธรดพูดคุยกันก็ไม่ค่อยชอบนัก แต่ก็มีมุมมองที่มองว่ามันน่ารักและเป็นลูกเล่นที่น่าสนใจ

ความแพร่หลายของเทคนิคนี้

จากการสืบค้นเพิ่มเติม พบว่าเทคนิคนี้ไม่ใช่เรื่องใหม่เสียทีเดียว แอปพลิเคชันอย่าง Telegram และ Signal ก็เคยนำกลไกที่คล้ายกันนี้มาใช้ในส่วนของ "แชทลับ" (secret chats) ทำให้ไม่น่าแปลกใจหาก Apple จะไม่รีบแก้ไขหรือปิดกั้นการใช้งานเทคนิคนี้ในอนาคตอันใกล้

#Bluesky #UIUX #iOSDevelopment #AppDesign #TechExplained

ขอบคุณ แหล่งข้อมูล
https://timmarinin.net/2026/bluesky-screenshots/

เบื้องหลังโลโก้ Bluesky ในภาพหน้าจอ: เคล็ดลับจาก UITextField ที่ไม่ธรรมดาเคยสังเกตไหมว่าเวลาเราแคปเจอร์หน้าจอแอปพลิเคชันบางตัว โลโก้หรือเนื้อหาบางอย่างกลับหายไป หรือเปลี่ยนไปปรากฏเป็นโลโก้ของแอปพลิเคชันแทน? หนึ่งในนั้นคือแอป Bluesky ที่มีวิธีซ่อนโลโก้ของตัวเองในภาพหน้าจอได้อย่างน่าสนใจ ทีมงาน timmarinin.net ได้ลองสืบค้นและพบเบื้องหลังที่น่าทึ่งว่าทำได้อย่างไรทำไมโลโก้ Bluesky ถึงปรากฏในภาพหน้าจอ?หลายครั้งที่เราเห็นโพสต์ที่น่าสนใจใน Bluesky แล้วอยากจะแคปเจอร์เก็บไว้ หรือส่งต่อให้เพื่อนๆ แต่ก็สังเกตเห็นโลโก้ของ Bluesky ปรากฏอยู่ที่มุมขวาของภาพหน้าจอเสมอ ซึ่งเป็นเรื่องที่น่าสงสัย เพราะปกติแล้วเวลาใช้งานแอปพลิเคชัน โลโก้นี้จะไม่ได้แสดงอยู่ตลอดเวลา บางครั้งก็ถูกแทนที่ด้วยปุ่ม "Follow"ความสงสัยในกลไกการทำงานในตอนแรกอาจจะคิดว่านี่เป็นกลไกที่ซ่อนโลโก้ไว้ในบริเวณที่มี "รอยบาก" (notch) ของ iPhone เพื่อไม่ให้เกะกะสายตาเวลาใช้งานปกติ แต่เมื่อลองสังเกตดีๆ โลโก้กลับปรากฏขึ้นมาในภาพหน้าจออย่างชัดเจน ทำให้เกิดคำถามว่าแอปพลิเคชันทำได้อย่างไร?มีการตั้งสมมติฐานว่าอาจจะเป็นการตั้งค่าให้ตรวจจับการกดปุ่มเพื่อแคปเจอร์หน้าจอพร้อมๆ กับการสลับแอปพลิเคชัน แล้วทำการสลับภาพในเสี้ยววินาทีสุดท้าย แต่เนื่องจากผู้ที่ตั้งข้อสังเกตไม่ใช่ผู้พัฒนา iOS โดยตรง จึงไม่แน่ใจว่ากลไกดังกล่าวเป็นไปได้จริงหรือไม่การค้นพบเบื้องหลังจากโค้ดโอเพนซอร์สโชคดีที่แอปพลิเคชัน Bluesky เป็นโอเพนซอร์ส ทำให้สามารถเข้าไปตรวจสอบโค้ดเพื่อหาคำตอบได้คำตอบที่ค้นพบอยู่ในไฟล์ชื่อ GrowthHack.tsx ซึ่งถูกเพิ่มเข้ามาโดยผู้ใช้งานชื่อ mozzius แต่ไฟล์ดังกล่าวกลับไปเรียกใช้ไลบรารีอื่น คือ expo-privacy-sensitive เมื่อเจาะลึกเข้าไปในไลบรารีนี้ ก็พบว่าเบื้องหลังทั้งหมดคือการใช้ UITextField ซึ่งเป็นส่วนประกอบมาตรฐานของ iOS สำหรับการป้อนข้อความ แต่มีการตั้งค่าคุณสมบัติ isSecureTextEntry ให้เป็น trueกลไกการซ่อนโลโก้ด้วย UITextFieldเมื่อตั้งค่า isSecureTextEntry เป็น true ระบบ iOS จะทำการซ่อนเนื้อหาที่แสดงผลใน UITextField นั้นๆ ด้วยการทำให้เลเยอร์ (layer) ว่างเปล่า หรือแสดงเป็นสีดำ ทำให้โลโก้ของ Bluesky ซึ่งถูก "ซ้อน" อยู่ภายใน UITextField นี้ สามารถปรากฏให้เห็นได้ในภาพหน้าจอสำหรับแพลตฟอร์มอื่นๆ ที่ไม่ใช่ iOS แอปพลิเคชันจะแสดงผลเนื้อหาตามปกติ โดยไม่มีการซ่อนใดๆทำไมถึงไม่ทำงานตอนสลับแอป?สาเหตุที่กลไกนี้ไม่ทำงานเมื่อสลับแอปพลิเคชัน อาจเป็นเพราะ iOS ทำการจับภาพหน้าจอ (snapshot) ตั้งแต่เริ่มต้นของการกดปุ่มสลับแอปฯ โดยที่ยังไม่ได้เรียกใช้การซ่อนเลเยอร์ของ UITextField และเมื่อถึงเวลาที่ทำการแคปเจอร์จริงๆ นั้น UITextField ที่มีชีวิตชีวาและสามารถตอบสนองต่อคำสั่งได้ ก็ไม่ได้ถูกเรียกใช้งานแล้ว เหลือเพียงภาพนิ่งที่ถูกจับไว้ก่อนหน้าเทคนิคที่น่าสนใจ หรือการใช้ API ที่ไม่เหมาะสม?เทคนิคนี้ถูกมองว่าเป็นกลไกที่สร้างสรรค์ หรืออาจเป็นการใช้ API ที่มีไว้เพื่อความเป็นส่วนตัว (privacy) ในทางที่ผิด ผู้พัฒนาบางส่วนในเธรดพูดคุยกันก็ไม่ค่อยชอบนัก แต่ก็มีมุมมองที่มองว่ามันน่ารักและเป็นลูกเล่นที่น่าสนใจความแพร่หลายของเทคนิคนี้จากการสืบค้นเพิ่มเติม พบว่าเทคนิคนี้ไม่ใช่เรื่องใหม่เสียทีเดียว แอปพลิเคชันอย่าง Telegram และ Signal ก็เคยนำกลไกที่คล้ายกันนี้มาใช้ในส่วนของ "แชทลับ" (secret chats) ทำให้ไม่น่าแปลกใจหาก Apple จะไม่รีบแก้ไขหรือปิดกั้นการใช้งานเทคนิคนี้ในอนาคตอันใกล้#Bluesky #UIUX #iOSDevelopment #AppDesign #TechExplainedhttps://timmarinin.net/2026/bluesky-screenshots/
How Bluesky draws its logo on screenshots
The secret is humble UITextField.
2 Comentários 0 Compartilhamentos 629 Visualizações 0 Anterior