经历过 08 年大地震,加上常居四川,对地震信息比较敏感。
之前一直用某款地震预警 App ,最近发现安装包体积已经 500 MB 了,于是抽业余时间写了一个原生 App 来查看地震信息和接收通知。
第一次写 iOS App ,一开始只打算自用。但后面也想走一下 App Store 发布流程,就上架了。
地震消息并不是每个人都需要或者习惯性关注,所以应用设为了一次性付费,国区是 18 元。
用户规模可控,消息的触达及时性就会比较好。
由于我自己也是用户,所以会持续维护,这样付费用户也会有更好的体验。接下来主要的方向:
如果你对地震信息感兴趣,可以 试试 QuakeSense 震感,也欢迎提出建议。
顺便用 Tailwind CSS 写了一个网站: https://quakesense.app/
再次感叹 Tailwind CSS 真好用。
1
zheng5200 68 天前
想问下这个警报,我们是怎么来保证实时性的
|
2
DiaoWang 67 天前 via iPhone
持续关注下
|
3
zmaplex 67 天前 via iPhone
买了看看。 如果成都周边发生地震 地震网发布消息后到传播到成都用户的消息 最快是多少秒?最慢是多少秒。
服务器是轮询地震网的 API 吗?如果是周期是多久? 时间很关键 希望实际地震发送 1s 内就能收到消息 |
4
JamesZHH OP @zmaplex 感谢支持。但是 1s 不太可能,没有任何 app 能做到。除非能预测地震,但是地震是不能预测的。😂 过去的几周测试期间,大概在台网发布后的 1 ~ 2 分钟会收到推送。
关于地震预警,目前最为可行的地震预警方案,是利用电波比地震波快的原理。即当地震发生后,因为震中距离用户有一定距离,地震波传播速度比电波(光速)慢,可以利用这个时间差,提前到通知用户。 所以,你可能在之前看过一些新闻,电视或者小区广播会进行倒计时播报,说「地震波预计 XX 秒后到达」。 那么,QuakeSense 为什么不能提供地震预警功能呢? 先说结论:我无法做到足够低的延迟,提供有效的、能够真正起到预警作用的地震预警通知。 准确有效的地震预警,需要各环节的延迟都足够低,才能在地震波到达用户之前,提供有效的预警通知。但是很多环节都存在延迟: 1. 地震测定基站不太可能刚好位于震源上方,所以收到地震波信号,存在延迟; 2. 测定基站收到信号后,需要计算震源位置,传输到数据中心,存在延迟; 3. 测定数据源发布数据,存在延迟; 4. App 获取数据,根据用户位置信息,计算与震源的距离,存在延迟; 5. 不同地区的地质构造,导致地震波在地层中的传播速度不同,需要独立计算,存在延迟; 6. 处理消息队列,通过 APNs 推送服务向大规模用户推送消息,存在延迟。 所有这些延迟加起来,可能已经远超地震波传播的时间,导致有效的地震预警几乎不可能在 app 端实现。而电视或者专门的预警广播,由于其专用的传输网络,可以更快地传递信息。 但事实上,想做到通过预警逃离地震是几乎不可能的。如果震级大,距离近,可能基站刚测定完,P 波已经到跟前了。如果震级小,距离远,能提前收到预警,但是这种预警大多也无效,因为根本不需要跑。😂 所以,QuakeSense 不能帮助你提前预知地震,或者逃离地震。但它可以帮助你了解地震信息,及时获取最新的地震通知,关心你的家人和朋友,保持警惕,做好应对准备。 |
5
aonco33 67 天前 via iPhone
ios 16 也适配下。
|
6
regent 67 天前
可以还增加适配 iOS 16 吗?
|
9
glcolof 67 天前
做得挺好的,但是这个 App 可能有法律风险,在包括中国在内的很多国家,只有政府相关部门或者政府授权的机构与单位,可以发布地震和其它自然灾害的预警。
|
10
huangtao728 67 天前 1
个人做地震预警主要难点还是在可靠的 “预警级” API 上,如果只是震后提示那就不是很有价值了。
之前做过一个简单的预警是逆向的某省地震台网拿到他的 MQTT 接口,最终实现的效果是提前 30s 左右预警,服务器计算震源距离、转发 Telegram 等额外步骤引入的延迟在 1s 以内,30s 主要是抓到的接口本身预警能力有限。 所以综上,建议楼主可以寻找一些具备预警能力的 API ,据我了解国内鲜有公开的、预警级的 API 可用,可能需要和例如成都高新所等机构直接联系,日本有这类 API 服务,例如 JQuake 正在用的 DM-D.S.S. ( https://dmdata.jp/)。 |
11
hackpro 67 天前 via iPhone
iOS 15 也适配下
|
12
iseki 67 天前 via Android
成都高新好像是自己建的观察站吧,他们会把数据开放出来吗😩国内都把这东西当宝贝
|
14
JamesZHH OP @huangtao728 是的,感谢建议。延迟主要是从数据源拿到数据 + 计算用户距离 + apns 推送的延迟。app 这个和单独建一个 bot 推送消息不一样,后者只需要拿到数据发布即可,app 这个会多一些步骤。
|
16
JamesZHH OP @regent 等我抽空编译一下,Xcode 默认工程就是从 iOS 17 起,考虑到 iOS 18 马上发布,为了便于后期维护,所以没有适配 iOS 16 。但是如果编译报错不多,可以适配一下。😂
|
17
brcefy 67 天前 via Android
看起来不错,期待安卓版本
|
18
brcefy 67 天前 via Android
不过正如楼上所说,地震预警从来不是技术问题,而是不愿意用小区广播和 0 级短信导致的,各地各自为政搞了 n 多个小程序。。。
|
19
Rrrrrr 67 天前
长这么大没遇过,真的无法检测到的时候,有什么都没用了
|
20
bao3 67 天前
地震报警如果是以分钟计,基本是没有意义的。最大的意义也只是告诉朋友,我比你先知道哪里有地震。所以问题在国家,没有设置 0 级报警。
|
21
drainlin 67 天前
一两分钟,没有太大意义。
震后才用的话,不如直接看网站。体积并不是这类应用的关键。 |
24
CMJ781 67 天前
能不能增加选多个数据源的功能?
|
25
JamesZHH OP @brcefy 地震预警还真是技术和科学问题 😂,就算小区广播和 0 级短信也很难解决,因为这只是通知层面。
1. 如果是大的破坏性地震,能对人造成影响的,就算台站位于震源上方,也很难逃离;普通人有效逃离的时间窗口肯定是以分钟来计算。 2. 如果是非破坏性地震,或者接收方距离震源有一定距离,能利用时间差提前收到预警。预警的效果也很有限,因为这种地震可能根本不需要下楼,收到预警也意义不大。 所以 QuakeSense 不是一个预警 App ,其实世界上也没有能真正有效预警的 App ,打着能预警旗号的 App 更多也是噱头。小区广播和 0 级短信能有效预警,提供有意义预警的能力也极其有限。 QuakeSense 是一个基于数据进行可视化和提供震后通知的 App ,就和一个天气 App 类似,数据来自于官方,满足极小部分人的需求而已。😂 |
26
JamesZHH OP @drainlin 说到关键点了,可以看网站! QuakeSense 只是提供了一种全球各个主要地区官方数据不同的展示方式而已,可以用天气 App 来理解这款应用。
数据都是来自官方。官方也都提供网站供民众查询,并且如果一直盯着网站的话,会更及时了解到信息。甚至国内通过微博热搜就可以看到。😄 |
27
JamesZHH OP @CMJ781 是在主界面列表同时看到多数据源的数据?之前考虑过,但是最终没有加:
1. App 做了多语言适配,理论上英文设备的默认源时 USGS ,繁体中文是台湾省气象局,日语是日本气象厅的数据。 2. 这些数据都使用本地化语言,如果集中展示在主界面列表,不可避免会涉及到本地化翻译的问题。1 )翻译需要时间,异步处理也会影响数据更新时间。2 )我希望提供官方信息展示,不修改的信息,翻译属于再加工。 3. 所以可以在设置中选择默认数据源,一般情况下,大多数时候都只会关注离自己更近的数据提供机构,因为他们在相应地区的测定站点密度更高,更及时准确。 最后,得益于 iOS 18 的新的翻译 API ,后续可以在设备端提供翻译,所以后面可能会提供聚合列表。但是会把是否翻译的选择权交给用户自己,也会加上免责提示。😄 |
28
Dispatcher 67 天前
楼主的这个app可以当作数据的记录+展示,有一种纵览天下的感觉。但是预警的话,并没有任何用处。
中国的地震预警app,最初包括我在内的几乎所有人,都以为是国家行为,孰料竟然是个商业公司的行为。也就是说,目前没有国家层面的地震预警服务。对此,我倒是想问问,难道他们私自公布地震信心,就不涉及泄露国家隐私,国家机密信息了? 因为这几年很太平,运气很好,没有大规模地质灾害。所以缺位也没关系的样子。有的时候我甚至觉得,他们可能是想,来个大的,再亡羊补牢,发布个app,全产业链赚(洗)钱,还能俘获民心,又能庆功了。 要是有网证网号app那神一样的上线速度,我就不会吐槽了啊。 最后,我再说说目前我所在的地方的情况。android跟死猪一样,谁也不知道咋回事,可能是因为miui没有优化;ios自动接入了当地蜂窝网络,配合yahoo的防灾速报app,大雨、洪水、地震、海啸等都会提前通知。几次小地震,也会以极大的声音提示“地震啦~~~”,ios这方面做的的确更好一点: https://support.apple.com/ja-jp/102295 记得有一次在电车上,周围所有人的手机都一起想了,那个震撼哦…… |
29
JamesZHH OP @Dispatcher 日本这方面做的的确比较好,本来属于地震带上面,国土面积小,监测站点密度极高,起步也早。国内的话,你提到的问题都存在,国情所在,能够理解。😂
没打算做一个很大众的 app ,所以也没有免费提供,尽自己所能规避不必要风险。 做一个小而美的应用,满足自用的同时,提供给和自己有相同需求的一小部分人即可。App 肯定是亏本的,688 一年的苹果开发者账号都赚不回来。😂 |
30
explorerproxy 67 天前
如果不做预警,那就不需要通知
就只是一个查询、记录,、展示的 app |
31
FreeWong 67 天前
******************************************************
我先不问你技术问题,你知道吗,在中国私自发布天气信息都违法。 你发布地震预警你想想看,这个后果是什么。 ****************************************************** |
32
yiton 66 天前
希望楼主不要放弃这个项目,争取做到毫秒级
|
34
easyalarm 64 天前 via Android
法律风险,就算是查询地震信息,都不一定允许交给个人做。
|
35
ae3803 62 天前
推荐一个第三方的地震防灾 API: https://api.wolfx.jp
数据源很多,而且看起来很多人在用,还支持 WebSocket |
36
zmaplex 56 天前 via iPhone
不是说老用户可以升级永久 pro 吗?我这边一直没成功啊
|
37
JamesZHH OP @zmaplex Hi ,邮件联系 [email protected] 。
|