В Jetpack Compose существует различное количество экспериментальных API, таких как pullRefresh и ModalBottomSheet... Целесообразно ли использовать экспериментальный API в производственной среде, например, при публикации приложения в Google Play Store? Могут возникнуть опасения относительно стабильности и долговечности этих API. Что, если библиотека будет обновлена или прекращена в будущем?





Ваш вопрос, вероятно, основан на мнениях, поскольку никто не сможет дать вам однозначный ответ или гарантировать, что используемый вами код будет стабильным, даже если требуется @ExperimentalApi.
Я могу только поделиться своими мыслями и опытом.
На данный момент практически все в библиотеках Jetpack Compose material3 помечено как @ExperimentalApi. Однако, хотя эти API могут измениться в будущем, по моему опыту, они стабильны в том смысле, что не содержат ошибок при использовании стабильной версии.
Проверьте, какая версия зависимости считается последней стабильной на соответствующей странице зависимостей.
Кроме того, похоже, что команда Jetpack Compose довольно быстро использует эту аннотацию как своего рода меру предосторожности. Даже такие компоненты, как BottomAppBar, API которых уже давно стабилен, имеют аннотацию @ExperimentalApi.
Поэтому я бы сказал, что вы можете использовать его в производстве, но имейте в виду, что когда вы время от времени обновляете зависимости, вам, возможно, придется переписать некоторый код.
Недавно я обновил проект, который написал два года назад, и на рефакторинг всех измененных API ушло два часа. Для меня это приемлемо. Кроме того, не было удалено ни одного API без прямой замены.
Я бы посоветовал, если у вас есть сомнения по поводу использования конкретного экспериментального Composable, загляните в Google Issue Tracker и найдите этот Composable. Это даст вам быструю подсказку, есть ли много или серьезные ошибки в этом Composable.
Теперь я понимаю вашу точку зрения. Спасибо за столь подробное разъяснение.
Подчеркнем:
@ExperimentalApiозначает, что API может быть изменен в любое время в будущих выпусках без какого-либо предупреждения. Это не означает, что функциональность не стабильна. Для этого и нужны альфа- и бета-версии, а также кандидаты на выпуск. Его безопасно использовать в рабочем коде в том смысле, что не должно быть много ошибок. Однако вам придется вкладывать больше средств в поддержку кода, чтобы исправить критические изменения API при обновлении до более новой версии Compose. Поэтому с точки зрения бизнеса это может быть небезопасным вариантом.