Что ждет обычных разработчиков Android и создателей библиотек с открытым исходным кодом?

Обновление - 11 февраля 2021 г.

Чтобы лучше поддержать сообщество в этом переходе, JFrog продлил срок подачи новых версий пакетов JCenter до 31 марта 2021 года. Это означает, что создатели библиотек с открытым исходным кодом, у которых есть библиотеки, размещенные на JCenter через Bintray, могут добавить больше версий до 31 марта 2021 года.

Для обычных разработчиков приложений для Android в репозитории JCenter будут использоваться обслуживаемые пакеты в течение 12 месяцев до 1 февраля 2022 года. Только JCenter REST API и пользовательский интерфейс будут отключены 1 мая 2021 года. Это означает, что если ваше приложение использует jcenter maven для любых сторонних библиотек, то ваше приложение может быть скомпилировано до февраля следующего года 2022 года. Итак, вам следует начать переход на другим репозиториям дан срок 1 год.

Если вы разработчик Android и у вас есть несколько библиотек с открытым исходным кодом, доступных на jCenter, то вы получили бы электронное письмо от команды JFrog сегодня. В этом электронном письме говорится, что JFrog закрывает jCenter, Bintray и некоторые другие службы, начиная с 1 мая 2021 года. Это оставляет около 3 месяцев на обновление ваших проектов, независимо от того, являетесь ли вы разработчиком библиотеки с открытым исходным кодом или нет.

JCenter - очень важная часть разработки Android, потому что большая часть артефактов Android размещена на этом сайте. Android Studio по умолчанию использует jCenter и Google Maven во всех проектах, созданных мастером New Project.

Теперь, когда jCenter закрывается, что это означает для разработчиков Android и как этот крайний срок 1 мая 2021 года влияет на приложения Android во всем мире. Я собираюсь объяснить это с двух точек зрения: для обычных разработчиков приложений для Android и для создателей библиотек Android с открытым исходным кодом.

Я разработчик приложений для Android

Как разработчик приложения для Android, ваш проект включает в себя множество зависимостей в ваших файлах Gradle. К ним относятся плагины, такие как kapt, или библиотеки, такие как Material Components, AppCompat, Kotlin Runtime, а также сторонние библиотеки с открытым исходным кодом. Эти зависимости используются Android Studio в виде артефактов в ваших приложениях. Некоторые из этих артефактов доступны в Google Maven, Jitpack и MavenCentral, но большинство из них размещено на jCenter. Это делает jCenter своего рода центральным репозиторием для всех этих артефактов, и разработчики полагаются на него в течение многих лет. Но не больше...

После того, как jCenter упал, было бы трудно просто скомпилировать проект и собрать из него APK. Самый простой способ проверить, зависит ли ваше приложение от jCenter, - это заменить jCenter на mavenCentral в ваших build.gradle файлах. Многие артефакты синхронизируются и отражаются на Maven Central из jCenter, поэтому возможно, что ваше приложение работает с Maven Central. Но если этого не произойдет, вы получите такую ​​ошибку:

* What went wrong: Could not determine the dependencies of task ':app:assembleDebug'. > Could not resolve all artifacts for configuration ':app:debugCompileClasspath'. > Could not find com.wajahatkarim3:easyflipview:1.0.0. Required by: project :app

А для библиотек, которые вызывают эту ошибку выше, вам нужно дождаться, когда создатели библиотеки разместят ее в каком-либо другом репозитории и снова сделают ее доступной. Вы можете сообщить этим разработчикам, создав подобную проблему в их библиотечных проектах. Подробнее об этом Джереон Молс объяснил в своей статье о переходе с jCenter. Вы можете прочитать это здесь.



Я создатель библиотеки с открытым исходным кодом для Android.

Если вы создали какую-либо библиотеку с открытым исходным кодом для Android и размещены на jCenter через Bintray, вам нужно выяснить, куда вы можете переместить свою библиотеку сейчас. Существует множество решений, таких как Jitpack, MavenCentral, Github Artifacts, Google Cloud или даже ваше собственное решение для хостинга. Я бы порекомендовал MavenCentral.

В идеале вы должны разместить все версии своей библиотеки, чтобы разработчики, использующие старые версии, не сталкивались с какими-либо проблемами в своих проектах. Но если вы торопитесь и у вас мало времени для выполнения этой миграции, по крайней мере, вам следует развернуть последнюю версию всех ваших библиотек в любом другом репозитории хостинга, таком как MavenCentral.

Есть много разных статей о том, как развернуть вашу библиотеку на MavenCentral. Вот мои любимые из них, перечисленные ниже.

Сначала мой очень хороший друг Вазиф Ахтар подробно описывает весь пошаговый ручной процесс размещения артефактов библиотеки Android на MavenCentral.



Другой, более автоматизированный, чем предыдущий, от Márton Braun.



Наконец, в этой статье есть некоторые дополнительные сведения по этой теме, предоставленные сотрудником Google Крисом Бейнсом с некоторыми ссылками и примерами библиотек с настройками, размещенными на MavenCentral.



В конце, пожалуйста, не забудьте подписаться на мою рассылку, чтобы получать больше руководств и советов по разработке Android прямо в свой почтовый ящик.



Если вам понравилась эта статья, вы можете прочитать мои новые статьи ниже:





Первоначально опубликовано на https://wajahatkarim.com 5 февраля 2021 г.