8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Android Studio + kotlin + SQLiteで音符フラッシュカードアプリを作る ①概要

Last updated at Posted at 2021-06-02

#はじめに
初投稿です。
androidアプリ開発について勉強を始めました。
自分への備忘録もかねて、できたこと、苦労したことなど、書き残していければと思います。
マークダウン記法も初なので、いろいろと見づらい点もあると思いますが、ご容赦ください。

#0.対象とする読者
・android Studioのセットアップは完了
 ※自分は日本語化して使用しています。
  日本語化していない方は適宜英語に読み替えてください。
・kotlin初心者
 自分が完全初心者からスタートしたので、つまづく部分など参考にしていただける部分があるかと思います。

#1.できたもの
androidアプリで音符フラッシュカードクイズアプリを作りました。
画面は以下のような感じです。
sc3.jpg sc2.jpg sc1.jpg
機能としては以下の通りです。
1枚目:トップ画面
 ・レベル別のランキング表示
 ・レベル選択
2枚目:ゲーム画面
 ・10問連続表示
 ・正解音・不正解音
 ・プレイタイム表示
3枚目:結果画面
 ・名前入力
 ・DB(SQLite)保存
 ・もう一度(同じレベルでプレイ)
 ・トップへ(ランキング確認、レベル再選択)

#2.開発環境、使用言語、参考書籍
・android studio 4.1.3
・kotlin
・SQLite
Javaはほんの少しだけ触ったことがあったのでJavaにするかkotlinにするか迷いましたが、android開発の推奨言語がkotlinになるということで、将来性の見込めるkotlinで開発してみました。

参考書籍
Androidアプリ開発の教科書
image.png

はじめてのAndroidプログラミング
image.png

どちらも初学者向けにはとても分かりやすい本でした。
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ができず断念しました。そのあたりも番外編的に記事にしていきたいと思います。
質問投げようかなー。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?