astroZ
一个 Android 应用,使用 Flutter 展示每日天文图片。
文档 :
-
此 Android 应用将从 Express 应用中获取每日天文学图片(也称为 APOD),该应用运行在本地网络中的一台机器上(以我的情况为例)。
-
您可能希望将该 Express 应用运行在云端或某个远程服务器上,然后进行必要的更改。
-
您可以在这个 仓库 中找到 Express 应用。
-
您还需要将所有 APOD 存储在本地数据库中。
-
在我的情况下,我使用了 PostgreSQL 数据库。
-
因此,创建一个 SQL 数据库并包含如下所示的表。
nasa_apod=# \d apod_data
Table "public.apod_data"
Column | Type | Collation | Nullable | Default
-----------------+-----------------------+-----------+----------+---------
date | character(10) | | not null |
copyright | text | | |
explanation | text | | |
hdurl | text | | |
media_type | character varying(25) | | |
service_version | character varying(10) | | |
title | text | | |
url | text | | |
-
然后转到这个 仓库,下载所有 APOD 直至当前日期。
-
别忘了每天运行 apod_updater.py,以便您能从 NASA 获取当天的 APOD。
-
此应用仅在 APOD 为图片时允许您下载。
-
您甚至可以考虑将某个 APOD 设置为您的壁纸,这在此应用中也是可行的。
-
此应用的目标为API Level 28。
-
当然,它使用了 Material Design。
-
此应用还使用Google 的移动广告 SDK 展示测试广告。
-
您可以考虑将此应用的代码作为在您的应用中使用广告的示例,以便您能通过广告获利。
-
此应用使用 ROOM 一致性库将先前查询的 APOD 缓存到本地 SQLite 数据库中。
-
因此,当本地数据库中存在先前请求的数据时,它将直接使用它,否则它将向 Express 应用执行查询,您可以在 此处 找到它。
截图 :





屏幕录制 :
您可能想查看 此 屏幕录制。
下载 :
您可以在此处下载此应用的发布版本 astroZ.apk,或者自行编译。
别忘了使用来自此 仓库 的脚本创建本地数据库并用所有 APOD 填充它,直到当前日期。
请确保您已在本地机器上正确启动了 Express 应用,并设置了正确的 IP 地址和端口号。否则,您可能会看到一些意外的结果。
对于初步测试,我建议您在本地网络中的机器上运行 Express 应用(即 apod_server)。之后,您可能会考虑迁移到云解决方案。