これおもしろい

らふにかいてこ

AndroidProject03: Stopwatch

作ったもの

f:id:takattata:20180429233453g:plain
https://github.com/takattata/Kotlin-30-Projects/tree/master/Stopwatch

↓元のプロジェクト
Swift-30-Projects/Project 03 - Stopwatch at master · soapyigu/Swift-30-Projects · GitHub

実装時間

4〜5時間くらい

使ったもの

  • System.currentTimeMillis
  • DateFormat
  • Handler, Runnable
  • RecyclerView

出来てないところ

  • 時間の表示がカウントアップに合わせてガタガタする
  • Lapリストの下線

学んだ / 復習したこと

  • スレッド分からん...。Timerだとスレッドがメインスレッドではなくなるから、UIパーツへの操作など、UIスレッドで実行が必要な操作をするにはHandlerを使う必要があるそう。AndroidでTimerを使わずHandlerだけでお手軽に定期実行してあげる - Qiita
  • android.text.format.dateformatだとミリ秒が表示できない(SSになる)のでSimpleDateFormatを使う
  • getColorの方法
  • 可変のリストをRecyclerViewに設定する
  • RecyclerView.ViewHolderのlayoutのheightにmatch_parent使ってはいけない

参考にしたもの

ほぼ答えの記事

  1. [Android] ターマーやストップウォッチをSystem.currentTimeMillis() で作成するには
  2. How to create count up Timer in Android | en.proft.me
  3. 正式採用の「Kotlin」で挑戦! 初めてのAndroidアプリ開発 〜ストップウォッチを作ってみよう〜 - エンジニアHub|若手Webエンジニアのキャリアを考える!
  4. Android Studio Tutorial - Stop Watch Milliseconds - YouTube

ダメ男のブログ: Android開発 getColor(int id) deprecated on Android 6.0 Marshmallow (android sdk 23)

実装後

時間が掛かったところ

  • ミリ秒でのカウント/更新
  • RecyclerView: こねくり回した方が良いな。次TODOアプリでも作ろうか。(追記: と思ってたらProject04がTODOアプリだった!)

雑感

  • 何年前の記事だったら有効なのかが判断つかない。引っかかった単語で検索して新しめだったり有力そうな記事を調べる、というのが必要でなかなか時間掛かる。検索の仕方とか、ドキュメントの読み方とか、情報収集力を鍛えるの大事だなー。
  • "出来ていないところ"は解決策が分かっていないところも多々あるから、ちゃんと考えるなり人に質問するなりして解決したい所存。
  • contextをよく分からずに使っている。そろそろそこから脱却したい。
  • コミットが雑で見る人いないだろうが結構恥ずかしい。英語も??(´・ω・`)てなりそう。

プロジェクト案

  • AACを一つずつ(さらに一タイプずつとかに細かく)使い倒す
  • スレッド周りを多用する
  • RecyclerViewの為にTODOアプリ