yumnumm / eqmonitor Goto Github PK
View Code? Open in Web Editor NEWAn earthquake monitoring Application
Home Page: https://eqmonitor.app/
License: MIT License
An earthquake monitoring Application
Home Page: https://eqmonitor.app/
License: MIT License
プライバシーポリシーを参照
と記述があるが、プライバシーがないサーバ「地震情報来たぞ! FCMで送信するで!」
[1秒ほどの遅延]
スマホ「お、FCMからペイロード届いたで! 通知ほい!」
ワイ「他の地震ソフトウェアの方が早く表示できているな…」
ワイ「せめてアプリ起動中だけでも、情報の表示を早くしたいな…」
FCM
: Firebase Cloud Messaging
地震情報
: 緊急地震速報やDMDATAから配信される震度震源情報などを指すhttps://zenn.dev/umatoma/articles/f00749a765e8a1
https://pub.dev/packages/flutter_tts
まぁ先に通知サーバから飛ばさないとだよなぁ〜
TODO:
Syncfusion社からの問い合わせ返信待ち
クラッシュログの共有許可ダイアログ入れたほうがいいかもなぁ〜
というか入れないとな
https://twitter.com/zyagasan_pc/status/1498219801394569220?t=LX7Ery5PrFhXcO738Dujrw&s=19
GPSから取得した近隣の観測点もしくは、指定した観測点のリアルタイム震度/PGAの値を表示する機能
参考: https://twitter.com/SaitamaSoraCam/status/1520651485855776768
Effective Dart: Style を遵守する
アプリ「地震やで! TTSくん頼んだぞい!」
TTS「き ん き ゅ う じ し ん そ く ほ う い ば ら き け ん な ん ぶ で じ し ん ………」
ワイ「読み上げ遅いねん! 読み上げてる間に地震来ちゃうわ! しかもクソデカボイス! 耐えられん!」
観測点の表示更新を1000msごとに行う実装にしている
→ Obx(() => someWidget());
にして動的に更新するようにする
デフォルトのままになっとる
アプリ「能登半島付近で予想最大震度4の地震やで〜 通知送るぞい!!」
ワイ「能登半島またか…Twitter見てみよっと…」←どんな地震の通知でも欲しい人
ユーザ1「いや… 今北海道にいるのに能登半島の地震情報どうでもええねん…」 ←この地震の通知全然必要なかった人
ユーザ2「あら、お母さん大丈夫かな… せっかくだし電話してみよう…」 ←この地震の通知が役に立った人
→ 通知したい地域と する必要がない地域を自分で選べるようにしたい。 任意の地域で震度XX以上〜 というのも欲しい。
→ FCM PayloadにMap<JmaIntensity, List>のデータを乗っける。(Listは、一次細分化地域コード)
この部分はデータ量が大きくなる可能性が十分にあるので gzip.encode(json)
し、base64.encode(data)
する。
あまりにダサすぎるのでどうにかしたい
想定ターン数: 1
具体的には、画面の縦横比が横のほうが大きくなった時に、アプリアイコンがはみ出してしまいます。
テンプレートを改変し、利用規約として運用しているが、必要ない部分が多い
オフライン時にエラー表示がなく、ユーザが気が付きにくい
StateNotifierProvider
を作成BuildContext
に対してextension
作成?)syncfusion_flutter_maps
パッケージではなく、CustomPainter
を利用してGeoJSONを描画する。Splash Screen とりあえず表示したかったので その遅延をなくす
Flutterのアイコンになってるぞ!
syncfusion_flutter_maps
ライブラリからCustomPainter
を用いた低レベルな描画へ変更M0.0
表示になってしまうバックグラウンドにいるときは1秒おきのFetch(強震モニタの画像)をFetchしないようにする。
(バッテリー/データ容量の関係)
オプションでForground Taskでゴニョゴニョやって即時通知っていうのもありかもしれないな…
新たなReleaseが出たときに案内する
https://twitter.com/YumNumm/status/1515635512672804864?t=Zn0y-caimWn3FIKNE3wEng&s=19
背景が変な緑色じゃつまらないので
設定から色変更できるように
await flutterTts.setVolume(1.0);
で設定可能なので、現在の通知音量を取得できれば耐え
現在、スプラッシュ画面を表示しているが横画面だと正常に表示されない上 GIFなので、もっさりしている。
Flutter側のスプラッシュ画面を消去し、ネイティブスプラッシュのみにする。
[手法]
アップデートのお知らせ等で使う
地震履歴やEEW、リアルタイム震度を取得できないことに起因する問題。
CustomPainter
を利用する案を検討していたが、実装が難しすぎる。)サーバサイドの実装
ウィジェットから直近の地震見れたら面白そうなのでは?
flutter build ios
やflutter build ipa
をするとawesome_notifications
周りが原因でpod installが止まってしまいます。
こちら rafaelsetragni/awesome_notifications#232 に書いてあるような修正をすると、pod install
を正常に実行できます。
具体的には、ios/podfile
の一部を
platform :ios, '10.0'
に、ios/Flutter/AppFrameworkInfo.plist
の一部を
<key>MinimumOSVersion</key>
<string>10.0</string>
に変更することでpod install
が正常に実行できます。
ミスってるところはこれ↓
EQMonitor/lib/utils/earthquake.dart
Line 183 in b269ff1
正しいフォーマットはこう↓ 大文字だ
EQMonitor/lib/utils/earthquake.dart
Line 90 in b269ff1
DmDataからの通知をタップしたときに、その通知の元となった伝聞を取得し、適切な形式で表示できるようにしたい。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.