たぶん週刊「今週の進捗」

1週間に勉強したことや実装したことをネタに、週に1回(主に土日に)更新していく予定です。「多分」なので、臨時休刊があってもご海容ください。

4/10~4/16の進捗

プロつく計画6:ランニング用走行距離計測アプリを作る(11週目)

小目標

距離の計算がどのくらいの精度で行えるかを確認する

先週のToDo

  • (1)Android Studioのレイアウトレンダリング時のRendering Problemメッセージの意味を調べる
  • (2)距離の計算がどのくらいの精度で行えるかを確認する

進捗

(1)について
Rendering Problem
Missing styles. Is correct theme chosen for this layout?
Use the Theme combo box above the layout to choose a different layout, or fix the theme style references.

Failed to find '?attr/textEditSuggestionItemlayout'
in current theme.
(27 similar errors not shown)

ThemeをNoTitleBarに変更したらこんなメッセージが出たので、
「Theme(Light.TitleBar)とLayout(RelativeLayout)との食い合わせが悪いのだろうな」と
Themeを変更したり、原因をググったりしていました。

ThemeをAppThemeに変更したら出なくなったが…。タイトルバーは非表示にしたい…。

(2)について

何でも、android.location APIを使用している場合は、
Google Location Services APIへの切り替えが推奨されているらしい
(精度やバッテリ消費の面でも改善されているらしい)ので、
そっちをやることにします。

来週の小目標

Google Location Services APIへの切り替えを完了する

来週のToDo

  • (1)Google Location Services APIを導入する
  • (2)タイトルバーを非表示にする(かつRendering Problemを出さない)方法を調べる

3/27~4/9の進捗

プロつく計画5-2:ユニティちゃん迷路を作る(8週目)

小目標

シーンの遷移を実装する

  • リザルトシーンの仕様を決める

先週のToDo

  • (1)ゲームの目的、スコアなどについて検討する
  • (2)オクルージョンカリングを本プロジェクトに適応する
  • (3)矢印がゴールの方向を向く機能を作る

進捗

(1)について

いくつか考えました。
とりあえず、候補の中からゲームの方向性を決めて早く実装したい。

(2)について

していませんでした。

(3)について

f:id:ZeitungM:20170410005959p:plain
できました。

来週の小目標

シーンの遷移を実装する
→リザルトシーンの仕様を決める
→ゲームの方向性(コンセプト、スコア等)を決める

来週のToDo

  • (1)ゲームの方向性を決めて、適当でもいいから実装する
  • (2)オクルージョンカリングを本プロジェクトに適応する

プロつく計画6:ランニング用走行距離計測アプリを作る(10週目)

小目標

位置情報取得ボタンの機能を実装する

先週のToDo

  • (1)Android Studioのレイアウトレンダリング時のRendering Problemメッセージの意味を調べる
  • (2)位置情報を取得するメソッドについて調べる

進捗

(1)について

絶賛放置中です…

(2)について

どうやら、位置情報の取得は Location クラスの getLatitude() と getLongitude() で行っているもよう。
で、適当に Location クラスのインスタンスを作ってメソッドを呼び出せばいいのかなと思って
やってみてもなかなかうまくいかない。

Location クラスのコンストラクタには適当な文字列を引数に取るものと、
既存の Location クラスのインスタンスを引数に取るものがあるらしくて、
前者の方法を採って位置情報を取得してみたのだが、
それで getLatitude() と getLongitude() を呼び出してみたら
何故か返り値の経緯度がどちらも 0.0 になっていた。

Location location = new Location("hoge");
double latitude = location.getLatitude(); // latitude には 0.0 が代入された

onLocationChanged(Location) ( Location が変化した時に呼び出されるメソッド )内では
ちゃんと経緯度を取得できているのに何故?

とりあえず今は取得した経緯度から距離を計算できればいいので、
経緯度を表すクラス変数を用意して、
onLocationChanged() が呼び出される度にそこに格納し、
位置情報取得ボタンを押したときそこから取得するようにしました。

f:id:ZeitungM:20170410010119p:plain

こんな感じでできました。

来週の小目標

距離の計算がどのくらいの精度で行えるかを確認する

来週のToDo

  • (1)Android Studioのレイアウトレンダリング時のRendering Problemメッセージの意味を調べる
  • (2)距離の計算がどのくらいの精度で行えるかを確認する

メモ

  • LocationをlocationManager.getLastKnownLocation(provider)で

初期化しているパターンはいくつかあった
Android Location API with the fused location provider - Tutorial

  • 何でも、最近は位置情報取得には android.location の替わりに

Google Location Services を使用することが推奨されているらしい。
sakura-bird1.hatenablog.com

  • 1回休むだけで、文章量スゲー増えたような気がする。

2017年3月の進捗まとめ

各週の進捗

02/27-03/05

zeitungm.hateblo.jp

縮小版と称して、マスコットアプリ文化祭2016の参加賞を見せびらかした()
スマートフォンを修理に出したので、Androidアプリ開発が少し滞った

03/06-03/12

zeitungm.hateblo.jp

画面遷移について実装しようとした結果、
タイトルシーンはともかく、リザルトシーンには何を結果として表示するのか?
という話になって、ゲームの目的やスコアについて検討しようという話になりました。

03/13-03/19

zeitungm.hateblo.jp

  • テストプレイでの意見をまとめた
  • オクルージョンカリングの演習プロジェクト(?)を作った

zeitungm.hateblo.jp

  • GPSでの距離測定の基準となるものを調べた
  • 位置情報取得ボタンを、ボタンだけ作った
  • タイトルバーが邪魔だったので非表示にした
    • Rendering Problemとかいうメッセージが出たけど、特に問題なく実機にデプロイできた

03/20-03/26

zeitungm.hateblo.jp

  • オクルージョンカリングできた
    • 後でこのプロジェクト開いてみたらできなくなってた
  • 迷路の壁をなくして、迷路の構造が見えるようにした
  • 頭上にゴールの方向を示す矢印を浮かべたりした
  • 位置情報取得ボタンを押すとToastが出るようにした

今月の進捗 総括

  • プロつく計画5
    • 迷路探索を快適にする方面の機能を充実させた
      • 壁をなくして迷路の構造が見えるにした
      • ゴールの方向を示す矢印を作った(実装中)
    • テストプレイでの意見をまとめた
  • プロつく計画6
    • 今月頭にスマートフォンを修理に出したことで開発が少し滞った
    • タイトルバーを非表示にした
    • 位置情報取得ボタンを作った(実装中)

反省

  • 開発でないタスクが先延ばしされる傾向にあるので対策を講じたいが、どうしたものか

3/20 ~ 3/26 の進捗

プロつく計画5-2:ユニティちゃん迷路を作る(7週目)

小目標

シーンの遷移を実装する

  • リザルトシーンの仕様を決める

先週のToDo

  • (1)ゲームの目的、スコアなどについて検討する
  • (2)オクルージョンカリングの続きをする

進捗

(1)について

失念していました。

(2)について

f:id:ZeitungM:20170326235729p:plain
これが

f:id:ZeitungM:20170326235755p:plain
こうなる。

オクルージョンカリングわかりました(わかってない)

だけど…

f:id:ZeitungM:20170326235847p:plain

こういうこともある。

その他

f:id:ZeitungM:20170327000047p:plain
こんな風に壁をなくして、現在地からの迷路の構造が見えるようにしたり、

f:id:ZeitungM:20170327000238p:plain
頭上にゴールの方向を示す矢印を実装したりしていました。
(図は矢印のモデリングが面倒だったので、ただの円筒形で代用しています)
(まだゴールの方向を向く機能は実装していません)

来週の小目標

シーンの遷移を実装する

  • リザルトシーンの仕様を決める

来週のToDo

  • (1)ゲームの目的、スコアなどについて検討する
  • (2)オクルージョンカリングを本プロジェクトに適応する
  • (3)矢印がゴールの方向を向く機能を作る

プロつく計画6:ランニング用走行距離計測アプリを作る(9週目)

小目標

位置情報取得ボタンの機能を実装する

先週のToDo

  • 位置情報取得ボタンで何か動かしてみる(ただのToastでもよい)
  • 上記のメッセージ*1の意味を調べる

進捗

(1)について

f:id:ZeitungM:20170326235224j:plain
こんな感じで、ボタンを押すとToastが出るようにしました。

(2)について

失念していました。

小目標

位置情報取得ボタンの機能を実装する

来週のToDo

  • Android Studioのレイアウトレンダリング時のRendering Problemメッセージの意味を調べる
  • 位置情報を取得するメソッドについて調べる

その他

プロジェクトごとに記事を書くと面倒なので、
週の進捗を1記事にまとめようと思いました。

*1:Android Studioのレイアウトレンダリングのときに出たやつ

プロつく計画5-2:ユニティちゃん迷路を作る(6週目)

先週のToDo

  • ゲームの目的、スコアなどについて検討する
  • スクリプトがぐちゃぐちゃになってきたのでリファクタリングする
  • 見えていないオブジェクトを描画しない方法を調べる

進捗

(1)について

様々な方々の協力で、テストプレイをご覧になって得られた要改善点をまとめるところまでやりました。

(2)について

「これから大きく変更するかも知れないのに、
リファクタリングしてもねぇ…?」
という気持ちがあってやりませんでした…。

(3)について

オクルージョンカリングのやり方について、調べました
…が、やり方がよくわからなかったので、
まずは簡単なプロジェクトでやってみようと思い、作成中です。

f:id:ZeitungM:20170320005137p:plain

ユニティちゃんズに被験者になっていただきます。
だけどこれ、「できればやった方がいい」ことなんだよな…

来週の小目標

シーンの遷移を実装する

  • リザルトシーンの仕様を決める

来週のToDo

  • ゲームの目的、スコアなどについて検討する
  • オクルージョンカリングの続きをする

プロつく計画6:ランニング用走行距離計測アプリを作る(8週目)

愛機が修理から戻ってきたので再開です

小目標

未設定

先週のToDo

  • 距離の正確な基準となるものを調べる
  • 任意の地点の距離計測のために、位置情報取得ボタンをつける
  • 以下について調べる
    • onRequestPermissionsResult()

進捗

(1)について

調べました。
横断歩道の幅が最小3mで、1m刻みで調節されているそうです。

(2)について

(ボタンだけ)作りました。
今は押しても何も反応しません。

(3)について

失念していました。

その他

アプリのタイトルバーが邪魔だったので、非表示にしました。
qiita.com

参考にしました

その際、Android Studioレンダリングするときに、

Rendering Problem
Missing styles. Is correct theme chosen for this layout?
Use the Theme combo box above the layout to choose a different layout, or fix the theme style references.

Failed to find '?attr/textEditSuggestionItemlayout'
in current theme.
(27 similar errors not shown)

とメッセージが出たのだが、インストールもできたし、
実機でもちゃんと動いた。

なんだったのだろう?

来週の小目標

位置情報取得ボタンの機能を実装する

来週のToDo

  • 位置情報取得ボタンで何か動かしてみる(ただのToastでもよい)
  • 上記のメッセージの意味を調べる

プロつく計画5-2:ユニティちゃん迷路を作る(5週目)

小目標

シーンの遷移を実装する

先週のToDo

進捗

画面遷移を実装する

タイトルシーン→メインシーンの遷移は出来ました(というか、出来ていました)。
リザルトシーンは…今のところ、何をスコア/結果とするか決まってないし、
リザルトシーンが文字だけ、っていうのも何だかねぇ…?

と思ったので、次はゲームの目的や、スコアなどについて考えてみようと思います。


それにしても、迷路を解く上でのストレス要因をいくら排除していっても、
迷路を解くのが面白くわけではないから、別のテコ入れが必要な気がするけど、
迷路が自動生成である以上手詰まりな感じがする…

ちくしょう!だいなしにしやがった!俺はいつもそうだ!

Androidアプリ開発は、今月中には再開できる見込みです。

来週のToDo

  • ゲームの目的、スコアなどについて検討する
  • スクリプトがぐちゃぐちゃになってきたのでリファクタリングする
  • 見えていないオブジェクトを描画しない方法を調べる

来週の小目標

シーンの遷移を実装する

  • リザルトシーンの仕様を決める