#はじめに
初投稿です。
androidアプリ開発について勉強を始めました。
自分への備忘録もかねて、できたこと、苦労したことなど、書き残していければと思います。
マークダウン記法も初なので、いろいろと見づらい点もあると思いますが、ご容赦ください。
#0.対象とする読者
・android Studioのセットアップは完了
※自分は日本語化して使用しています。
日本語化していない方は適宜英語に読み替えてください。
・kotlin初心者
自分が完全初心者からスタートしたので、つまづく部分など参考にしていただける部分があるかと思います。
#1.できたもの
androidアプリで音符フラッシュカードクイズアプリを作りました。
画面は以下のような感じです。
機能としては以下の通りです。
1枚目:トップ画面
・レベル別のランキング表示
・レベル選択
2枚目:ゲーム画面
・10問連続表示
・正解音・不正解音
・プレイタイム表示
3枚目:結果画面
・名前入力
・DB(SQLite)保存
・もう一度(同じレベルでプレイ)
・トップへ(ランキング確認、レベル再選択)
#2.開発環境、使用言語、参考書籍
・android studio 4.1.3
・kotlin
・SQLite
Javaはほんの少しだけ触ったことがあったのでJavaにするかkotlinにするか迷いましたが、android開発の推奨言語がkotlinになるということで、将来性の見込めるkotlinで開発してみました。
参考書籍
Androidアプリ開発の教科書
どちらも初学者向けにはとても分かりやすい本でした。
2冊目の方を先に購入したのですが、xmlをGUIで記載していたり、DBアクセスもSQLを使わずRealmを使っていたりだったので、より本格的に学びたい場合は1冊目をお勧めします。
#4.テーマ
実装した機能、苦労した点などを何回かに分けて記載していきます。
①概要(本記事)
②画面デザイン~トップ画面(Constraint Layout)~
③画面デザイン~ゲーム画面(Linear Layout)~
④画面デザイン~結果画面(Linear Layoutその2)~
⑤トップ画面からの遷移(インテント(putExtra))
⑥トップ画面から引き継いだデータ表示(インテント(getExtra))
⑦問題出題(ロジック実装)
⑧回答ボタン押下(効果音再生(MediaPlayer、正誤判定、次の問題出題)
⑨タイムカウンターの実装(handler)
⑩ゲーム画面から引き継いだゲーム結果表示(インテント)
⑪当日日付データ取得
⑫DB保存(SQLite、Insert)
⑬もう一度、トップ画面へ戻るボタン(インテント)
⑭ランキング表示(SQLite、Select)
⑮実機でのテスト
⑯Google Playで公開
長い道のりですが、随時更新していく予定です。
何か一つでも皆さんのご参考になればと思います。
余談ですが、本記事を書くにあたりgithubにソースコードを公開しようと試みました。(githubを使うのも初めてでした・・・)
結局原因不明でpushができず断念しました。そのあたりも番外編的に記事にしていきたいと思います。
質問投げようかなー。