هر آنچه که باید در مورد Instant App در اندروید بدانید

ترجمه و تالیف : پوریا شریفی
تاریخ انتشار : 12 شهریور 99
خواندن در 3 دقیقه
دسته بندی ها : اندروید

در این مقاله، شما نحوه ایجاد Instant App را برای کابران خود می‌آموزید. در کنار آن، همچنین یاد خواهید گرفت که چگونه از کاربر بخواهید نسخه کامل برنامه را نصب کند، یک روش مناسب برای آزمایش Instant Appها، نحوه استفاده از Instant Appها و سایر موارد. اگر می‌خواهید این موارد را یاد بگیرید پس با ما همراه باشید.

معرفی

Instant App یک فناوری است که تجربه بومی برنامه‌های اندرویدی را بدون نصب صریح ارائه می‌دهد.

هنگامی که برنامه اندرویدی شما ویژگی Instant App را دارد، کاربران می‌توانند دکمه "try now" در کنار "install" روی صفحه نمایش جزئیات برنامه شما در فروشگاه google play مشاهده کنند. با کلیک بر روی دکمه "try now"، یک برنامه مجازی نصب می‌شود.

فقط ماژول‌هایی که توسعه‌دهندگان به عنوان Instant App در فایل مانیفست خود اعلام می‌کنند، در آن لحضه دانلود می‌شوند. این به کاربران این امکان را می‌دهد که قبل از نصب برنامه، اندکی برنامه را تجربه کنند. اگر اندازه برنامه شما بزرگ باشد، این ویژگی یک دید کلی از ویژگی‌های برنامه را بدون دانلود کردن آن به شما می‌دهد.

چیزهایی که باید در ذهن داشته باشید

اکنون می‌دانیم که یک Instant App چیست و چگونه می‌تواند برای کاربران و صاحبان مشاغل مفید باشد. اما همانطور که از مزایایی برخوردار است، محدودیت‌هایی نیز به همراه دارد.

  1. برنامه‌های فعال شده توسط Instant App فقط می‌توانند از چند مجوز برنامه استفاده کنند، مانند: ACCESS_CORSE_LOCATION، ACCESS_FINE_LOCATION، ACCESS_NETWORK_STATE، CAMERA، INSTANT_APP_FOREGROUND_SERVICE(فقط در اندروید نسخه 8 و بالاتر)، INTERNET، READ_PHONE_NUMBER، RECORD_AUDIO، VIBRATE و WAKE_LOCK.
  2. بطور پیش‌فرض Instant Appها نمی‌توانند با برنامه‌های نصب شده ارتباط برقرار کنند، مگر اینکه دارای یکی از شرایط زیر باشند:
  1. حداقل یکی از اکتیویتی‌های برنامه نصب شده باید دارای ویژگی android:visibleToInstantApp با مقدار true در فایل مانیفست باشند.
  2. برنامه نصب شده حاوی اینتنت فیلتر CATEGORY_BROSEABLE باشد.
  1. ویژگی Instant App در بالای bundle برنامه اندروید با استفاده از ویژگی APK تقسیم شده ساخته می‌شود که در اندروید lollipop ارائه شده است. بنابراین توسعه‌دهندگان برای کار با برنامه‌های فوری باید توزیع برنامه خود را از APK سنتی به bundle تغییر دهند تا بتوانند با Instant App کار کنند.

ادغام

Google play instant api را با افزودن خط زیر در قسمت dependency در فایل build.gradle سطح برنامه، به پروژه خود اضافه کنید.

implementation "com.google.android.gms:play-services-instantapps:17.0.0"

اگر از افزونه قبلی Instant App استفاده می‌کنید، می‌توانید آن را حذف کنید. Instant API جدید نیازی به پلاگین ندارد و با این API جدید می‌توانید از یک کد برای نسخه Instant و نسخه کامل برنامه استفاده کنید.

فعال کردن تجربه Instant

نگه‌داری کد نسخه

کد نسخه Instant App شما باید کمتر از کد نسخه واقعی برنامه باشد. دلیل این امر این است که وقتی کاربران از Instant App به سمت نصب کامل برنامه حرکت می‌کنند، google play آن را به عنوان یک بروزرسانی در نظر می‌گیرد. بنابراین ترتیب صعودی کد نسخه مهم است.

حتی اگر کاربران قبلاً برنامه را نصب کرده باشند، آن‌ها Instant App را از طریق URLها تجربه می‌کنند. اما قبل از آن شما باید مراقب کد نسخه باشید، در هر صورت Instant App باید دارای کد نسخه کمتری باشد.

گوگل توصیه می‌کند تا کد نسخه APK قابل نصب را به تعداد زیادی مانند 1000 افزایش دهید تا فضای کافی برای افزایش نسخه Instant شما وجود داشته باشد.

نسخه sandbox

همانطور که گفتم Instant Appها در دستگاه نصب نخواهند شد. در عوض آن‌ها را در یک حافظه sendbox اداره می‌کنند. برای این منظور، همانطور که در زیر نشان داده شده است باید ویژگی targetSnadboxVersion را به فایل منیفست اضافه کنیم:

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

فعال کردن تجربه Instant در سطح ماژول

برای پشتیبانی یک ماژول از Instant App فقط باید خطی که در زیر می‎‌بینید را به فایل مانیفست اضافه کنیم. این کار در در ماژول‌های پایه و ماژول‌هایی که قصد دارید در Instant App اضافه کنید الزامی است.

<manifest 
 xmlns:dist="http://schemas.android.com/apk/distribution">
    <dist:module dist:instant="true" .../>
    ...
</manifest>

ماژول‌های پویا با Instant Appها

ما همچنین می‌توانیم در Instant Appها از ماژول‌های پویا استفاده کنیم. آسان‌ترین راه برای ایجاد یک ماژول پویا که از Instant Appها پشتیبانی می‌کند، استفاده از قالب‌های ماژول از اندروید استودیو است.

برای ایجاد یک ما‌ژول پویای Instant به مسیر زیر بروید:

File > New > New Module

سپس یک پنجره جدید با قالب‌های مختلف مربوط به تنظیمات مختلف باز می‌شود. در این لیست گزینه ماژول پویای Instant را انتخاب کنید و بر روی next کلیک کنید. پس از آن شما می‌توانید یک نام به ماژول بدهید، همچنین می‌توانید یک نام نیز برای package نیز انتخاب کنید.

URL Mapping

چه کار می‌کنید اگر بخواهید یک تجربه Instant App هنگامی که یک URL به داخل موبایل بارگیری شد ایجاد کنید. این ممکن است، اما شما باید موارد زیر را انجام دهید تا این کار عملی شود:

  1. اول شما باید اینتنت فیلتر دوم را با تنظیم autovVerify به true اضافه کنید.
<intent-filter android:autoVerify=”true”>
  1. سپس category و action flagها را در زیر اینتنت فیلتر ایجاد شده اضافه کنید.
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
  1. و در آخر همانند شکل زیر ما باید شِمای URL را اضافه کنیم:
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:host="example.com"/>
<data android:path="/instantapp/schedule"/>

همچنین می‌توانیم یک URL پیش‌فرض را مشخص کنیم که برای راه‌اندازی سریع‌تر تجربه Instant استفاده می‌شود:

<meta-data
    android:name="default-url"
    android:value="https://example.com/instantapp/experience"/>

این کار چندان زیادی ندارد، اما وقتی می‌خواهید یک demo به کسی نشان دهید مفید خواهد بود. این کار اختیاری است.

از کاربران بخواهید نسخه کامل را نصب کنند

اکنون که تجربه instant را کامل کرده‌ایم، مرحله بعد تشویق کاربران برای نصب برنامه اصلی است. برای انجام این کار، ابتدا باید تایید کنیم که کاربر در حال تجربه instant است. می‌توانیم با استفاده از متد isInstantApp() این کار را انجام دهیم. این متد مقدار True را اگر فرایند درحال اجرا یک تجربه instant باشد برمی‌گرداند.

قدم بعدی نمایش اعلان به کاربر است که آن‌ها را ترغیب به نصب برنامه اصلی می‌کند. این کار را می‌توانید همانند زیر انجام دهید:

class MyInstantExperienceActivity : AppCompatActivity {
    // ...
    private fun showInstallPrompt() {
        val postInstall = Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name)

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(this@MyInstantExperienceActivity,
                postInstall, request-code, /* referrer= */ null)
    }
}

آزمایش کردن

مهم نیست چه کاری انجام می‌دهید، آزمایش یکی از موارد اصلی پایدار کردن آن است. برنامه‌های instant را می‌توان مستقیماً از اندروید استودیو یا دانلود از play store با استفاده از ویژگی‌های داخلی آزمایش کرد.  

آزمایش در دستگاه local

برای نصب مستقیم از اندروید استودیو مراحل زیر را دنبال کنید:

  1. ابتدا اگر برنامه از قبل در دستگاه نصب شده است آن را حذف کنید
  2. سپس در گزینه‌های installation به general tab بروید و "deploy as instant app" را انتخاب کنید
  3. سپس بر روی دکمه run کلیک کنید

Internal test track

اگر مطمئن نیستید که چگونه برنامه‌های instant هنگام دانلود از play store کار می‌کنند، این یک زمان بسیار عالی برای آزمایش آن است.

  1. ابتدا طبق معمول یک android app bundle تولید کنید
  2. به جای آپلود آن در release management آن را در internal test track آپلود کنید
  3. شناسه ایمیل آزمایش کننده خود را به لیست آزمایش اضافه کنید
  4. اکنون با یکی از آن ایمیل‌ها وارد شوید. وقتی برنامه را در play store جستجو کنید گزینه "try now" را می‌بینید

منبع

گردآوری و تالیف پوریا شریفی
آفلاین
user-avatar

ابتدا که با برنامه‌نویسی آشنا شدم به سمت php و طراحی وب رفتم، بعد از اون به توسعه‌ی اندروید علاقه‌مند شدم و تقریبا ۲ سال است که مشغول به برنامه‌نویسی اندروید هستم، همچنین عاشق یادگیری چیزهای جدید هستم.

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید