Jetpack Compose Experimental API Стабильность в рабочем режиме

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
97
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш вопрос, вероятно, основан на мнениях, поскольку никто не сможет дать вам однозначный ответ или гарантировать, что используемый вами код будет стабильным, даже если требуется @ExperimentalApi.
Я могу только поделиться своими мыслями и опытом.


На данный момент практически все в библиотеках Jetpack Compose material3 помечено как @ExperimentalApi. Однако, хотя эти API могут измениться в будущем, по моему опыту, они стабильны в том смысле, что не содержат ошибок при использовании стабильной версии.
Проверьте, какая версия зависимости считается последней стабильной на соответствующей странице зависимостей.

Кроме того, похоже, что команда Jetpack Compose довольно быстро использует эту аннотацию как своего рода меру предосторожности. Даже такие компоненты, как BottomAppBar, API которых уже давно стабилен, имеют аннотацию @ExperimentalApi.

Поэтому я бы сказал, что вы можете использовать его в производстве, но имейте в виду, что когда вы время от времени обновляете зависимости, вам, возможно, придется переписать некоторый код.
Недавно я обновил проект, который написал два года назад, и на рефакторинг всех измененных API ушло два часа. Для меня это приемлемо. Кроме того, не было удалено ни одного API без прямой замены.

Я бы посоветовал, если у вас есть сомнения по поводу использования конкретного экспериментального Composable, загляните в Google Issue Tracker и найдите этот Composable. Это даст вам быструю подсказку, есть ли много или серьезные ошибки в этом Composable.

Подчеркнем: @ExperimentalApi означает, что API может быть изменен в любое время в будущих выпусках без какого-либо предупреждения. Это не означает, что функциональность не стабильна. Для этого и нужны альфа- и бета-версии, а также кандидаты на выпуск. Его безопасно использовать в рабочем коде в том смысле, что не должно быть много ошибок. Однако вам придется вкладывать больше средств в поддержку кода, чтобы исправить критические изменения API при обновлении до более новой версии Compose. Поэтому с точки зрения бизнеса это может быть небезопасным вариантом.

Leviathan 19.03.2024 18:10

Теперь я понимаю вашу точку зрения. Спасибо за столь подробное разъяснение.

Danielle 19.03.2024 21:19

Другие вопросы по теме