Chromium Chronicle #28: การเริ่มต้นใช้งาน Chrome บน iOS

ตอนที่ 28: โดย Mark Cogan ในปารีส ประเทศฝรั่งเศส (มกราคม 2022)
ตอนก่อนหน้า

ในปี 2022 ทาง Chrome บน iOS จะฉลองครบรอบ 10 ปี Chrome เป็นหนึ่งในแอป iOS ที่ใช้กันอย่างแพร่หลายมากที่สุด ปัจจุบันถือเป็นแอปยูทิลิตีอันดับ 2 ใน App Store ของสหรัฐอเมริกา

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

อย่างไรก็ตาม มีสิ่งสำคัญอย่างหนึ่งที่ทำให้ Chrome ใน iOS แตกต่างจากการใช้งานแพลตฟอร์ม Chrome อื่นๆ ทั้งหมดอย่างมาก

Chrome ใน iOS ไม่ได้ใช้ Blink

เนื่องจากกฎ App Store ของ Apple ทำให้ Chrome ใน iOS ต้องใช้ API ของแพลตฟอร์ม iOS ในการดึงข้อมูลและแสดงเนื้อหาเว็บ ดังนั้น Chrome ใน iOS จึงใช้ WebKit, Nitro และ CFNetwork เมื่อแพลตฟอร์มอื่นๆ ของ Chrome ใช้ Blink, V8 และ //net ด้วยเหตุนี้และ API ที่จำกัดซึ่งพร้อมใช้งานสำหรับแอป iOS ในการโต้ตอบกับเนื้อหาของหน้าเว็บ ทำให้ฟีเจอร์หลายรายการของ Chrome ที่ใช้ //content API ใช้งานใน Chrome บน iOS โดยใช้การแทรก JavaScript

ฟีเจอร์แบบข้ามแพลตฟอร์มใน //components มีการจัดโครงสร้างเพื่อแชร์โค้ดให้มากที่สุดเท่าที่จะเป็นไปได้ในทุกแพลตฟอร์ม ในขณะเดียวกันก็แยกทรัพยากร Dependency //content ไว้ต่างหาก

ls components/some_component

content/        # code with dependencies on //content.
core/           # cross-platform code with no //content dependencies.
ios/            # iOS implementation using JavaScript injection.

ความแตกต่างที่สำคัญอื่นๆ ระหว่าง Chrome ใน iOS และแพลตฟอร์มอื่นๆ มีดังนี้

  • แอป iOS ต้องใช้กระบวนการเดียว ดังนั้น Chrome ใน iOS จะfork()ไม่ได้
  • Chrome ใน iOS เขียนด้วย Objective-C++ (ทั้ง C++ และ Objective-C) รวมถึง Swift บางตัว
  • แม้ว่าคุณจะคอมไพล์และเรียกใช้ Chrome บน iOS บนอุปกรณ์ iOS ได้โดยตรง แต่ก็ยังพัฒนาฟีเจอร์ต่างๆ ได้อีกมากมายในเครื่องจำลองการเสนอราคาที่ Apple มีให้

เริ่มต้นใช้งาน Chrome บน iOS

คุณจะต้องมีสิ่งต่อไปนี้

  • คอมพิวเตอร์ macOS แบบ 64 บิตที่ใช้ macOS 11.3 ขึ้นไป รองรับ Apple Silicon
  • Xcode ซึ่งเป็น IDE สําหรับแพลตฟอร์ม Apple เวอร์ชัน 13.0 ขึ้นไป
  • JDK เวอร์ชันปัจจุบัน

ดูข้อมูลเพิ่มเติมในวิธีการสร้าง

การดึงข้อมูลแหล่งข้อมูลนั้นคล้ายกับแพลตฟอร์มอื่นๆ ดังนี้

mkdir ${HOME}/chromium-ios
cd ${HOME}/chromium-ios
fetch ios

หลังจากนั้น คุณจะสร้างจากบรรทัดคำสั่ง (หรือจาก Xcode) ได้ดังนี้

autoninja -C out/Debug-iphonesimulator chrome

ดูข้อมูลเพิ่มเติมเกี่ยวกับ Chrome ในการพัฒนาฟีเจอร์ของ iOS

เราขอแนะนำให้คุณดูคู่มือรูปแบบ Chromium อ่านเอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์ของ Apple เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ Swift, xCode และแหล่งข้อมูลอื่นๆ สำหรับ iOS

หากคุณมักเป็นนักพัฒนาซอฟต์แวร์ iOS และเพิ่งเริ่มใช้ Chromium โปรดดูเอกสารประกอบเกี่ยวกับบทคัดย่อและโครงสร้างข้อมูลที่สำคัญ