ตอนที่ 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
Chrome ใน iOS ต้องใช้ API ของแพลตฟอร์ม iOS ในการดึงข้อมูลและการแสดงผลเนื้อหาเว็บ เนื่องจากกฎของ App Store ของ Apple Chrome ใน iOS จึงใช้ WebKit, Nitro และ CFNetwork ในขณะที่แพลตฟอร์ม Chrome อื่นๆ ใช้ Blink, V8 และ //net
ด้วยเหตุนี้ และ API ที่จำกัดสำหรับแอป iOS ในการโต้ตอบกับเนื้อหาหน้าเว็บ ฟีเจอร์หลายอย่างของ Chrome ที่ใช้ API ของ //content
จึงถูกนำมาใช้ใน 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 โปรดดูเอกสารเกี่ยวกับนามธรรมที่สำคัญและโครงสร้างข้อมูล