Chromium Chronicle #28: شروع به کار با Chrome در iOS

قسمت 28: توسط مارک کوگان در پاریس، فرانسه (ژانویه، 2022)
قسمت های قبلی

در سال 2022، Chrome در iOS 10 سالگی خود را جشن می گیرد. Chrome یکی از پرکاربردترین برنامه‌های iOS است—در حال حاضر برنامه شماره ۲ Utility در فروشگاه App ایالات متحده است.

Chrome در iOS همه ویژگی‌های فوق‌العاده Chrome را که کاربران ما دوست دارند، از جمله همگام‌سازی، ترجمه، ناشناس، مدیر رمز عبور، تکمیل خودکار و بسیاری موارد دیگر ارائه می‌کند. Chrome در iOS همچنین با ویژگی‌های اصلی iOS مانند تکمیل خودکار رمز عبور چند پنجره‌ای و سراسر دستگاه ادغام می‌شود.

با این حال، یک چیز مهم وجود دارد که کروم را در iOS بسیار متفاوت از سایر پیاده‌سازی‌های پلتفرم کروم می‌کند.

Chrome در iOS از Blink استفاده نمی کند.

به دلیل قوانین App Store اپل، Chrome در iOS باید از APIهای پلتفرم iOS برای واکشی و ارائه محتوای وب استفاده کند. بنابراین Chrome در iOS از WebKit، Nitro و CFNetwork استفاده می‌کند، جایی که دیگر پلتفرم‌های Chrome از Blink، V8 و //net استفاده می‌کنند. با توجه به این موضوع و محدودیت API موجود برای برنامه‌های iOS برای تعامل با محتوای صفحه وب، بسیاری از ویژگی‌های Chrome که از //content APIها استفاده می‌کنند در Chrome در iOS با استفاده از تزریق جاوا اسکریپت پیاده‌سازی می‌شوند.

ویژگی‌های چند پلتفرمی در //components گونه‌ای طراحی شده‌اند که تا حد امکان کد را در همه پلتفرم‌ها به اشتراک بگذارند، در حالی که //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() دهد.
  • کروم در iOS به زبان Objective-C++ (ترکیبی از C++ و Objective-C)، همراه با مقداری Swift نوشته شده است.
  • در حالی که می‌توانید Chrome را روی iOS مستقیماً روی یک دستگاه iOS کامپایل و اجرا کنید، همچنین می‌توانید بسیاری از ویژگی‌ها را در شبیه‌ساز دستگاه کاملاً توانمندی که اپل ارائه می‌کند، انجام دهید.

با Chrome در iOS شروع کنید

شما نیاز خواهید داشت:

  • یک رایانه macOS، 64 بیتی، دارای macOS 11.3 یا بالاتر. اپل سیلیکون پشتیبانی می شود.
  • Xcode، IDE برای پلتفرم های اپل، نسخه 13.0 یا بالاتر.
  • نسخه فعلی JDK.

برای اطلاعات بیشتر به دستورالعمل های ساخت مراجعه کنید.

واکشی منبع بسیار شبیه به پلتفرم های دیگر است:

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

پس از آن، می توانید از خط فرمان (یا از Xcode) بسازید:

autoninja -C out/Debug-iphonesimulator chrome

درباره Chrome در توسعه ویژگی iOS بیشتر بیاموزید

توصیه می کنیم به راهنمای سبک Chromium مراجعه کنید. برای کسب اطلاعات بیشتر در مورد Swift، xCode و سایر منابع اختصاصی iOS ، اسناد برنامه‌نویس اپل را بخوانید.

اگر معمولاً یک برنامه‌نویس iOS هستید و تازه وارد Chromium می‌شوید، به مستندات مربوط به انتزاع‌ها و ساختارهای داده مهم مراجعه کنید.