sunflower README

The project's README from github.com/android/sunflower. As one markdown file: README.md.

Android Sunflower with Compose

Warning: The Sunflower repository is no longer under maintenance, We are prioritizing https://github.com/android/compose-samples as the up-to-date source of truth for Compose best practises. Please use that repository and sample set to continue learning about Jetpack Compose. If you'd like to continue using Sunflower, we encourage you to maintain your own fork of the sample.

A gardening app illustrating Android development best practices with migrating a View-based app to Jetpack Compose. To learn about how Sunflower was migrated to Compose, see the migration journey document.

[!Note] To see the original View implementation of Sunflower, checkout the views branch.

Screenshots

Features

This sample showcases how to migrate an existing View-based app (Material 2) to Compose (Material 3). See the linked migration journey doc above to learn more.

[!Note] As Compose cannot render HTML code in Text yet. The AndroidViewBinding API is used to embed a TextView in Compose. See the PlantDescription composable in the PlantDetailView file.

Requirements

Unsplash API key

Sunflower uses the Unsplash API to load pictures on the gallery screen. To use the API, you will need to obtain a free developer API key. See the Unsplash API Documentation for instructions.

Once you have the key, add this line to the gradle.properties file, either in your user home directory (usually ~/.gradle/gradle.properties on Linux and Mac) or in the project's root folder:

unsplash_access_key=<your Unsplash access key>

The app is still usable without an API key, though you won't be able to navigate to the gallery screen.

Android Studio IDE setup

For development, the latest version of Android Studio is required. The latest version can be downloaded from here.

Sunflower uses ktlint to enforce Kotlin coding styles. Here's how to configure it for use with Android Studio (instructions adapted from the ktlint README):

Additional resources

Check out these Wiki pages to learn more about Android Sunflower:

Non-Goals

Previously, this sample app was focused on demonstrating best practices for multiple Jetpack libraries. However, this is no longer the case and development will instead be focused on how to adopt Compose in an existing View-based app. So, there are no plans to implement features outside of this scope. Keep this in mind when making contributions to this library.

Support

If you've found an error in this sample, please file an issue: https://github.com/android/sunflower/issues

Patches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub.

Third Party Content

Select text used for describing the plants (in plants.json) are used from Wikipedia via CC BY-SA 3.0 US (license in ASSETS_LICENSE).

"seed" by Aisyah is licensed under CC BY 3.0

sunflower (android/sunflower)

Searching Database…

17.7K ·GitHub
archived
这是什么?Sunflower 是 Google 官方的 Android 示例应用,是一款园艺应用,用来演示如何将基于 View 的 Android 应用(Material 2)迁移到 Jetpack Compose(Material 3)。
这是库还是我自己运行的示例应用?这是一个完整的、可直接运行的 Android 示例应用,而不是可以导入自己项目的库。它需要在 Android Studio 中打开,用于学习或派生(fork)后再修改。
我该怎么让它跑起来?克隆仓库并在 Android Studio 中打开,然后像对待任何 Android 项目一样,在真机或模拟器上构建并运行即可。
要使用全部功能,我需要 API 密钥吗?加载图库图片需要一个免费的 Unsplash API 密钥;应用没有它也能运行,但图库页面将无法使用。
这个项目还在维护吗?不再维护。该仓库已被归档,不再更新。Google 建议用户参考 Compose 示例仓库以获取最新的 Compose 最佳实践;如果想继续使用 Sunflower,建议派生(fork)该项目。
它在什么平台上运行?它是一个原生 Android 应用,通过 Android Studio 在 Android 设备或模拟器上构建和运行。
我还能看到基于 View 的原始版本吗?可以,Compose 改造之前的原始实现保存在仓库的独立 'views' 分支上。
为什么植物描述不能直接用 Compose 的 Text?Compose 的 Text 组件目前还无法渲染 HTML 内容,因此应用通过 AndroidViewBinding 在 Compose 界面中嵌入一个传统的 TextView 来显示植物描述。
这个项目强制执行什么代码风格?项目使用 ktlint 来统一 Kotlin 代码风格,并提供了将其集成到 Android Studio 中的设置说明。
这个示例仍然在演示多个 Jetpack 库吗?不再是了。这曾是它最初的目标;现在它唯一的重点是展示如何在现有的基于 View 的应用中采用 Jetpack Compose,并且不计划在此范围之外添加任何新功能。
Creator
android
Size
11 MB
Stars
17.7K
Age
8y
Commits · 90 Days