1年以上前の下書きを元に書いているので情報が古いかもしれないです。
使うソフト: Android Studio
プロジェクト作成
こんな感じで。
Gitでバージョン管理するときは、先にGit側で同じフォルダ名のリモートリポジトリ作ってクローンしてから、そのクローンしたフォルダを選択してプロジェクトを作ると余計な手間がかからなくて良いなと思いました。
それから指定されていたこともあってKotlinを使いますがjavaのスクリプトのコピペをしてAndroidStudioさんにKotlinに変換してもらうということをします。すごいな〜〜
バージョンは「API22 : Android 5.1 (Lollipop)」にしました。現時点で62.6%の機種に対応できるということと、API21で開発すると既知のバグに遭遇するという記事を見たので。
初回はEmptyActivityを使っていましたが、FAB (Floating Activity Button)が最初から使われているBasicActivityで楽をすることを試みます。
最初にFABが全然実装できなくて丸一日潰した記憶があります。
「ImageButton」とかで検索して、丸くする方法を調べたり、図を張り付けたりして手動でなんとなくやっていたのですが、Android系のアプリにはほとんどあるし公式の方法でバチッとはまるのがあるんだろうなあとは思っていたので諦めきれず……。
作業の途中で「マテリアルデザイン」という言葉を拾ってからは割とすぐにたどり着くことができました。
BasicActivityは前述のFABを実装していることからCoordinatorLayoutが使われているのでこれをandroid.support.constraint.ConstraintLayout
に書き換えます。
FABのデザインをまともにする
ところで初期の設定でFABを使おうとするとよくイメージする「+」のボタンさえ作ることができません。
なにこれ……。
「BasicActivity」の選択画面からは「+」のボタンが良い感じに実装されているのかと思ったのに……。
下記リンクからアイコンをダウンロードして、 「app」>「src」>「main」>「res」にそのまま貼り付けると使えるようになるみたいです。
でもこれ何かに書いてあったのを見つけたわけではないので本来どうすれば良いのかはわからない……。
正しいやり方があれば教えてください。
私が今回やったやり方を書いておきます。
先ほどのリンクのから左上の検索窓でほしいデザインを検索します。
「add」を選択状態にして、左下の「Selected Icon」をクリック。
青いPNGボタンをクリックしてzipをダウンロードします。
この中には「res」フォルダが入っていて色々なサイズのアイコンがあるので使うものをプロジェクトファイルの「app」>「src」>「main」>「res」にコピペしてから、xmlファイルを編集します。
線が引いてあるところを変えると、
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/fab_margin"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:src="@drawable/baseline_send_white_24"
app:fabSize="normal" />
できた!
DataBindingを使う
つぎにDataBindingを使えるようにします。
build.gradle(module.app)のandroidに下記を加えます。
dataBinding {
enabled = true
}
それからactivity_main.xmlの冒頭を以下に書き換えます(layoutの追加)。
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
warningを倒す「use kotlin-stdlib-jdk7 instead」
w: C:\Users\user_name\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jre7\1.2.51\fa510f846ca4894fdf26776dd64cefb4030dcd12\kotlin-stdlib-jre7-1.2.51.jar: kotlin-stdlib-jre7 is deprecated. Please use kotlin-stdlib-jdk7 instead
というwarningが出てきたので倒します。
詳細は下記リンクに載ってました。私にはまだよくわかりませんでした。
そのうちわかるようになりたいです。
kotlin-stdlib-jreがdeprecatedになっていたので深掘りしてみた – t-miliya612のブログ
errorを倒す①「Failed to find style ‘cardViewStyle’ in current theme」
xmlファイル触っているといつも出てくるこの「Failed to find style ~ in current theme」。
Be導師日記 Android Studioでの failed to find style…. current theme ってエラー。を参照して、build.gradle(module.app)のdependenciesに追加しようと、アレ?
implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
もうすでにありました。つまり他のことが原因なのか。
Android StudioでPreview時に「failed to find style ‘textviewstyle’ in current theme」エラー – 日々精進
これもちゃんと大丈夫なんだよな~と思いつつ、というかエミュレータで立ち上がりはするのでとりあえず放置。再起動しても消えることはない……。
android – failed to find style ‘cardView Style’ in current theme – Stack Overflow
うーん、どうやらアップデートで直るみたい?
ベータ版を入れてみたのですが使いこなせなかったので公式のAndroid3.2を待ちます……。
errorを倒す②「unresolved reference : databinding」
これで実行しよう!と思った矢先に大量のunresolved reference : databinding
が出てきたので困りました。
どうやらKotlinを使うときに出てきてしまうエラーのようです。
gradleファイルに
apply plugin: 'kotlin-kapt'
と
dependencies {
kapt "com.android.databinding:compiler:3.1.3"
}
を書き加えてSyncすると、無事動きました。
日本語が入力できない
これです。
Android Studioのエミュレータで日本語入力 – Qiita
何をしているのかというとエミュレータの「設定」を開いて言語設定をするというだけです。
さっきからググってリンクを貼っているだけですがひとまずここまで。