というわけでメモ帳アプリサキメモを作りました!(先送りメモ、略してサキメモです)
以前話していたように時間指定だけではなく座標を指定してその範囲内に入ったら通知をしてくれる機能も実装してあります!
もちろん日付や時間もセットできちゃいます。
簡素ではありますが一通りの機能が入ったのではないでしょうか!
役に立ったサイトの紹介(実装偏)
本当は作成しながらkotlinで躓いたところ等を記事として紹介していこうと思ったのですが、ほとんど調べてわかることばっかりだったのでメモしておいた役に立ったサイトを列挙しようと思います。
それぞれの記事を書いていただいた方々に感謝しつつサキメモと似たようなことをしたい人の助けになれば幸いです。
また実装時に役に立ったこととバグ取りに役立ったことがありましたが、二つを一緒にするとものすごく長くなるので今回は実装偏として実装に役に立った記事を載せています。
android studioの設定
android studio自体の設定やショートカット類が書かれています。
特にショートカット類がお世話になりました。すでにandroid studioを使っている人でも知らなかった!というものがあると思います。
kotlinにおけるletやalsoの使い分け
kotliのかなり重要な要素、letやalsoの使い分けについて書かれたページです。
かなりいっぱいあって覚えるのが大変ですがなんとなく他の人のコードを見ながら覚えていくのがいいかな~と思います。
最初はletを多用していましたが今はalsoのほうがいいと思ったりapplyのほうが直感的に書けるなというラインがわかってきました。
ActivityとFragmentの概念について
android開発をする上で大切な概念ActivityとFragmentについて書いてあります。
どこまでをActivityでどこまでをFragmentにするかはプロジェクト依存なところもあるとは思いますが何もわからない状態なのであれば上記のサイトがお役に立つと思います。
ちなみにサキメモはActivityがほぼ飾りでメモをリスト表示するところ、メモの内容をエディットするところ、地図の場所指定の3つのFragmentでできています。
Activityのライフサイクルについて
Activityで出てくるonCreateやonDestroyの呼び出しタイミングについて書かれています。
androidはアクティブじゃなくなったりメモリの都合でOSに破棄される際これらの関数が呼ばれることになるのでライフサイクルをよく見てどこに初期化やviewの設定をすればいいか確認するといいでしょう。
Fragmentのライフサイクル
ActivityのFragment版です。
ListViewを自分好みにカスタマイズする
AlarmManagerについて
サキメモの時間トリガー機能にはandroidのAlarmManagerが使われています。
これはandroidに時間のトリガーをお願いしてその時間になったらコールバックで教えてくれる機能です。
時間の呼び出しに精度が何段階かありますが自前でサービスを作ってやらずともOS側で対応してくれるので便利です。
ジオフェンスについて
こちらは特定の場所に入ったときに通知してくれるシステム、ジオフェンスの紹介です。
自分は最初位置情報を常に監視して通知をする必要があるのかな~と思っていましたが割とほしい機能ジャストミートの機能がOSにあることを知って驚きました。
少しレスポンスに難ありですが0秒で返すことはまぁできないので許容範囲です。
プッシュ通知を出す
こちらはプッシュ通知を出す方法になります。
androidのSDKレベルに応じてやることが少し変わるので気をつけないといけない部分でした。
時間を選ばせる
カレンダーやタイマーを表示させて時間をユーザーに選ばせる方法です。
便利なclassがあってハッピーだけど、時間指定のやり方がちょっとやりづらいと思うのは私だけ…?
google Mapを出して場所を選ばせる
android上にgoogle mapを出す方法になります。
サキメモはこれにsetOnMapClickListenerをつけて座標を指定してもらうようにしています。
緯度経度からそこの住所を割り出す
意外にググってもすぐ出てこなくて苦戦した情報。
マップから座標を指定してもらった後、メモのリストにそれを出すためにそこの住所を取得する方法です。
ちなみにgoogle mapのように文字から座標を検索するにはgoogleのapiが必要のようです。
端末の起動時に何かの処理をする
端末機同時に何かの処理をしたい場合のやり方。
サキメモはandroidを再起動しても通知の登録をする必要があったのでこちらと同じような方法を使っています。
メモを保存する
このサイトでも描いたRealmを使ったデータ保存のやり方。
簡単にクラスを保存できるのでお勧めです。
電子署名を作成してリリースビルドを作る
USB接続ではなくサーバーにアップなどをして他者に配信するやり方です。
不特定多数の人に配布するのには向いていませんが、友達間でこじんまり共有してデバッグしてもらう時とかに有効だと思います。
作ってみた感想
新しいことを始めたくて作ってみたkotlin+androidアプリでしたが新しいIDEや書き方の発見ができて面白かったです!
特に作ったアプリを実際に自分で使って役に立ったりフィードバックを自分で返せるところがandroidアプリの楽しいところですね!
今回はgitでの公開やgoogle playまでは行きつきませんでしたが実際に普段使いしている最中なので、自分で不便に思った点やバグをある程度片づけたらgoogle playで公開してみようと思います!
コメント
[…] 前回の続き。お役に立ったサイトのデバッグ偏です。 […]