astroZ

一个 Android 应用,使用 Flutter 展示每日天文图片。

文档 :

  1. 此 Android 应用将从 Express 应用中获取每日天文学图片(也称为 APOD),该应用运行在本地网络中的一台机器上(以我的情况为例)。

  2. 您可能希望将该 Express 应用运行在云端或某个远程服务器上,然后进行必要的更改。

  3. 您可以在这个 仓库 中找到 Express 应用。

  4. 您还需要将所有 APOD 存储在本地数据库中。

  5. 在我的情况下,我使用了 PostgreSQL 数据库。

  6. 因此,创建一个 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                  |           |          | 

  1. 然后转到这个 仓库,下载所有 APOD 直至当前日期。

  2. 别忘了每天运行 apod_updater.py,以便您能从 NASA 获取当天的 APOD。

  3. 此应用仅在 APOD 为图片时允许您下载。

  4. 您甚至可以考虑将某个 APOD 设置为您的壁纸,这在此应用中也是可行的。

  5. 此应用的目标为API Level 28

  6. 当然,它使用了 Material Design。

  7. 此应用还使用Google 的移动广告 SDK 展示测试广告。

  8. 您可以考虑将此应用的代码作为在您的应用中使用广告的示例,以便您能通过广告获利。

  9. 此应用使用 ROOM 一致性库将先前查询的 APOD 缓存到本地 SQLite 数据库中。

  10. 因此,当本地数据库中存在先前请求的数据时,它将直接使用它,否则它将向 Express 应用执行查询,您可以在 此处 找到它。

截图 :

Screenshot_20190317-122725

Screenshot_20190317-122734

Screenshot_20190317-122743

Screenshot_20190317-122752

Screenshot_20190317-122804

屏幕录制 :

您可能想查看 屏幕录制。

下载 :

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

GitHub

https://github.com/itzmeanjan/astroZ