#android #kotlin #android-library
Вопрос:
Я поддерживаю библиотеку для Android, которая использует нашу платформу, а также упрощает многие вещи, которые делают разработчики. Одна из таких вещей-это push-сообщения. Мы получаем токен пользователя Firebase, регистрируем его на нашем сервере и используем для отправки сообщений. Я хочу упростить работу с токенами, чтобы разработчикам не нужно было вручную получать токен.
Для этого мне нужно реализовать что-то вроде detectToken(), но мне нужно будет получить объект FirebaseMessaging в качестве параметра. И моя библиотека понятия не имеет об этом классе, если я не добавлю его в качестве зависимости. Могу ли я сделать это, не добавляя библиотеку FCM в качестве зависимости в свою библиотеку? Я знаю, что могу использовать реализацию вместо api в gradle, но это все равно заставляет разработчиков включать библиотеку FCM, если она им не нужна.
Я думаю, что это, вероятно, выполнимо при размышлении и прохождении любого класса, но я понятия не имею, как это сделать.
Комментарии:
1. «заставляет разработчиков включать библиотеку FCM, если она им не нужна». Ваша библиотека использует ее, поэтому я бы подумал, что она им действительно нужна. И я бы не стал сильно беспокоиться, если вы думаете, что это сильно увеличит размер их приложения, потому что, если они создадут приложение с поддержкой minifyEnabled, как это делает большинство разработчиков, оно должно удалить все неиспользуемые классы и включить только класс FirebaseMessaging
2. @IvoBeckers дело в том, что в нашей библиотеке много модулей, и не всем нужны, скажем, push-сообщения. итак, вы думаете, что лучшим способом было бы включить FCM через api в gradle и позволить разработчикам удалить мою массивную библиотеку с помощью minify? хорошо, спасибо. Я подумаю об этом. единственный недостаток, который я вижу на данный момент, заключается в том, что это увеличит размер нашего файла aar.