рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдордиреЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЛ рдПрдХ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдРрдк рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рд╡рд╣рд╛рдВ рдпрд╣ рднреА рдХрд╣рд╛ рдЧрдпрд╛ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, 6 рдлрд░рд╡рд░реА, 2019 рдХреЛ, Google рдиреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡реЗрдм рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Google Play рдкрд░ PWA рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рдЖрдкрдХреЛ рдмрд╕ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдЖрд╡рд░рдг рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ Google Play рдкрд░ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрд╡рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╕ рдХреНрд░реЛрдо рдХреЗ рдЕрдВрджрд░ рд╣рдорд╛рд░реЗ PWA рдХреЛ рдЦреЛрд▓ рджреЗрдЧрд╛ред рдмреЗрд╢рдХ, рдХреНрд░реЛрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЫрд┐рдкрд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рд╕реБрдВрджрд░ рд▓рдЧреЗрдЧрд╛ред
рдпрджрд┐ рдЖрдк, рдореЗрд░реА рддрд░рд╣, рдХрднреА рднреА рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рднрд╡рд┐рд╖реНрдп рдХреЛ рднреА рдЖрдкрдХреЛ рдЬрд╛рджреБрдИ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!
- рд╕рд╛рдЗрдЯ рд╕реЗ рдПрдХ рдЖрд╡реЗрджрди рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ Google Play рдкрд░ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдореЗрдВ рдбрд╛рд▓реЗрдВред рднрд╛рдЧ 1/2: рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдРрдк
- рд╕рд╛рдЗрдЯ рд╕реЗ рдПрдХ рдЖрд╡реЗрджрди рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ Google Play рдкрд░ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдореЗрдВ рдбрд╛рд▓реЗрдВред рднрд╛рдЧ 2/2: рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡реЗрдм рдЧрддрд┐рд╡рд┐рдзрд┐
Android рд╕реНрдЯреВрдбрд┐рдпреЛ
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЬреАрд╡рди рдореЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рд╣рдо рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реА рд╕рдордп "рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рдЬреЛрдбрд╝реЗрдВ" рдЪреБрдиреЗрдВред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

рдкреИрдХреЗрдЬ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд╛рдо рдмрдирд╛рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЧрдИ рд╣реИ: рдкреНрд░рд╛рд░рдВрдн рдкреГрд╖реНрда
skorochtec.ru/app ru.skorochtec.app рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ
рдмрдирд╛рдИ рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

рд╣рдореЗрдВ AndroidManifest.xml, styles.xml (res / values тАЛтАЛfolder) рдФрд░ рджреЛрдиреЛрдВ build.gradle рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред
рдореИрдВ Res / drawable рдФрд░ res / mipmap рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рднреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдорд╛рдирдХ Android рдЖрдЗрдХрди рд╣реЛрдЧрд╛ред
build.gradle(Project: AndroidStudioProjects)
рд╕рдордЭрд╛рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдЗрд╕реЗ рдЦреБрдж рдХреЙрдкреА рдХрд░реЗрдВ :)
build.gradle(Module: app) apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "ru.skorochtec.app" minSdkVersion 19 targetSdkVersion 28 versionCode 5 versionName "1.0.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" manifestPlaceholders = [ hostName: "skorochtec.ru", defaultUrl: "https://skorochtec.ru/app/", launcherName: "", assetStatements: '[{ "relation": ["delegate_permission/common.handle_all_urls"], ' + '"target": {"namespace": "web", "site": "https://skorochtec.ru"}}]' ] } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.github.GoogleChrome.custom-tabs-client:customtabs:e849e45c90' }
рдФрд░ рдпрд╣рд╛рдБ рдЖрдкрдХреЛ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
versionCode
рдХреЛ рд╣рд░ рдирдП рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди versionName
рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ;
defaultUrl
рд╡реЗрдм рдРрдк рдореИрдирд┐рдлреЗрд╕реНрдЯ рд╕реЗ start_url
рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;
assetStatements
рдореЗрдВ рдмреЗрд╕ url (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ " skorochtec.ru ") рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП;
- рд╕рднреА рдЬрд╛рджреВ рдХреЛ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрд╕реНрдЯрдо-рдЯреИрдм рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ Google Play рдкрд░ 100% рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ru.skorochtec.app"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="${launcherName}" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <meta-data android:name="asset_statements" android:value="${assetStatements}" /> <activity android:name="android.support.customtabs.trusted.LauncherActivity" android:label="${launcherName}"> <meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL" android:value="${defaultUrl}" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="https" android:host="${hostName}"/> </intent-filter> </activity> </application> </manifest>
<mnifest>
(рдмрд╣реБрдд рдКрдкрд░) рдореЗрдВ
package
рдмрджрд▓рдХрд░ рдЗрд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВред
styles.xml
<resurces> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowNoTitle">true</item> <item name="android:backgroundDimEnabled">false</item> </style> </resurces>
рдмрд╕ рдЗрд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВред
рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрднреА рднреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрдб рдЯреВрд▓рдмрд╛рд░ рдореЗрдВ рдЦреЛрдЬреЗрдВ -> рд╕рд╛рдЗрди рдЗрди рдмрд╛рдЙрдВрдбреЗрдб рдмрд╛рдЙрдВрдб / рдПрдкреАрдХреЗ ... рдПрдкреАрдХреЗ рдЪреБрдиреЗрдВ:

рдирдпрд╛ рдмрдирд╛рдПрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ...

рдЗрд╕рдореЗрдВ рдПрдХ рдирдпрд╛ рдХреАрд╕реНрдЯреЛрд░ рдФрд░ рдХреБрдВрдЬреА рд╕реНрд╡рдпрдВ рдмрдирд╛рдПрдВ:

рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЖрд╡реЗрджрди рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рддреЗ рд╣реИрдВ:

рд╣реБрд░реНрд░реЗ! рд╣рдорд╛рд░реА рдПрдкреАрдХреЗ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ!
Google Play рдХрдВрд╕реЛрд▓
рдЖрд╡реЗрджрди рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдЦрд╛рддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреА рдХреАрдордд $ 25 рд╣реИред рдЦрд░реАрджрд╛рд░реА рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЗ рдкрд╛рд╕ Google Play рдХрдВрд╕реЛрд▓ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреАред рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдмрд┐рдВрджреБ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░реВрдВрдЧрд╛ред рдЕрдкрдиреЗ рдПрдкреАрдХреЗ рдХреЛ рдбреЗрд╡рд▓рдкрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ:

Google, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЯрд┐рд▓ рд╣реИрдВ рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреБрдВрдЬреА рдЦреЛ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдмрд╛рдж рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдПрдкреАрдХреЗ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо рдЖрд╡реЗрджрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Google рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдерд╛ред рдореИрдВ рдЗрд╕ рд╢рд░реНрдд рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдбрд┐рдЬрд┐рдЯрд▓ рд╕рдВрдкрддреНрддрд┐ рд▓рд┐рдВрдХ
рдкрд┐рдЫрд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдХреБрдЫ рднреА рд╕рдВрджрд┐рдЧреНрдз рдирд╣реАрдВ рджреЗрдЦрд╛? рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдХреЗ рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ ... рдлрд┐рд░ рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрднреА рдЬрд╛рд░реА рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреНрд╡рд┐рдЯрд░?
рдФрд░ рдбрд┐рдЬрд┐рдЯрд▓ рдПрд╕реЗрдЯ рд▓рд┐рдВрдХ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдФрд░ рд╕рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рдорд╛рд▓рд┐рдХ рд╣реИ (рдЖрд╡реЗрджрди рдХреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреБрдВрдЬреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░)ред
рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: Google Play рдХрдВрд╕реЛрд▓, рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рдмрдВрдзрди -> рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рдвреВрдВрдвреЗрдВред Google рджреНрд╡рд╛рд░рд╛ рд╕реГрдЬрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╣реЛрдЧрд╛ (рдпрджрд┐ рдЖрдкрдиреЗ рдореЗрд░реА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдФрд░ рд╢рд░реНрдд рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛)ред рдЖрдкрдХреЛ
SHA-256 рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдФрд░ рдЗрд╕реЗ
рдбрд┐рдЬрд┐рдЯрд▓ рдПрд╕реЗрдЯ рд▓рд┐рдВрдХ рдЯреВрд▓ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред рдФрд░ рдЗрд╕реЗ рдПрд╕реЗрдЯрд▓рд┐рдВрдХреНрд╕.рдЬреЛрди рдлрд╛рдЗрд▓ рдореЗрдВ рдбрд╛рд▓ рджреЗрдВ, рдЬреЛ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдкрде-рдЬреНрдЮрд╛рдд / рдПрд╕реЗрдЯрд▓рд╛рдЗрдВрдХреНрд╕.рдЬреЙрдиред
рд╣реЛ рдЧрдпрд╛
рд╡рд╣ рд╕рдм рд╣реИ! рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ, рдХреБрдЫ рдШрдВрдЯреЛрдВ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ Google рдЗрд╕реЗ рдордВрдЬреВрд░реА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрдВрдд рдореЗрдВ, Google Play Market рдореЗрдВ рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!

рд╡реИрд╕реЗ, рд╕реНрдХреНрд░реАрди рдХреА рдЦреВрдмрд╕реВрд░рдд рддрд╕реНрд╡реАрд░реЗрдВ
https://apptoolkit.io/ рдкрд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЦреИрд░, рд╣рдо рд╕рд╛рдЗрдЯ рд╕реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рд╕рднреА рддрд░рд╣ рд╕реЗ рдЪрд▓реЗ рдЧрдП, рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рднреА рдирд╣реАрдВ рдерд╛ред PWA рдФрд░ TWA рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдЕрднреА рднреА рдмрд╣реБрдд рдпреБрд╡рд╛ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдХрдИ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЦреБрд▓реЗрдЧрд╛ рдпрджрд┐ Google Chrome рд╕рдВрд╕реНрдХрд░рдг 72+ рдЙрд╕рдХреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд╣реАрдВ рд╣реИред рддреЛ рд░рд┐рд▓реАрдЬ рдХреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрд▓рд┐рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдУред
рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░рдЦрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдЦреИрд░, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, Apple рдЗрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреАрдЫреЗ рд░рд╣ рдЬрд╛рддрд╛ рд╣реИ (рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рдирд╣реАрдВ рд╣реИ)ред рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░реЗрд╕рд┐рд╡ рд╡реЗрдм рдРрдк рдХрд╛ рдХреНрд╖реЗрддреНрд░ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╕реБрдзрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрд╢рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд▓реНрдж рд╣реА рд╕рднреА рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдореМрдЬреВрджрд╛ рдХрдорд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдРрдк рдХреЗ рд╕рд╛рде рд╣реИ рдФрд░ рдореИрдВ рдЖрдкрд╕реЗ рдЗрд╕ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рд╢реБрд░реБрдЖрддреА рдЕрдкрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рдмрдирдиреЗ рдХрд╛ рдЖрдЧреНрд░рд╣ рдХрд░рддрд╛ рд╣реВрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ