久しぶりにAndroidのアプリを作ろうと思って、どうせならKotlinってのをやろうと思ったので
いろいろ調べてるときに参考にしたサイトです。
入門に関する話は、いろんなサイトにありますがちょっとこれどうすんのっていう細かいことを
調べようとすると恒例の「何がわからないかわからない」状態で検索するのでなかなか答えに
辿りつかないというパターンに陥ってます。
サイトだけじゃなくて、メモ書きに変更しました。
Kotlinでリスナーやコールバックをスッキリと書く【関数リテラルとSAM変換】
https://qiita.com/RyotaMurohoshi/items/01b370f34a4bf96f5c39
Kotlin - Javaとの相互運用
https://qiita.com/k5n/items/ceb1f921b27d62fc9fcb
30分で覚えるKotlin文法
https://qiita.com/k5n/items/cc0377b75d8537ef8a85
Kotlin : as, !, ? 周りのチートシート
http://increment.hatenablog.com/entry/2015/10/31/090743
英語でKotlinを勉強するためのリソース
https://qiita.com/Horie1024/items/d5e0344c07bb0491955d
Kotlin/anko
https://github.com/Kotlin/anko/
インストールする手順
1.build.gradle(Project: Android)に ext.anko_version='0.10.4' (ankoバージョン。この場合0.10.4)を書く
2.build.gradle(Module: app)に implementation "org.jetbrains.anko:anko:$anko_version" を書く
githubのインストールでは compile "org.jetbrains.anko:anko:$anko_version" と書かれてますが、android studioでは以下のような警告がでますので、implementationに置き換えて記載してます。
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation'.
(compileはもう廃止されて、implementationに置き換わってるぞ的なの。)
それからsyncに関する警告(Gradle files have changed since last project sync.A project sync may be necessary for the IDE to work properly.)がでたときは、右にある Sync Nowを押します。
Google Play サービスのセットアップ
https://developers.google.com/android/guides/setup
Googleのサービス全般を利用するためには該当するSDKを入れなくてはならないけどどうするの?ってなるので、ここにgradle スクリプトの dependenciesに記載する場合のリストが載っているのでこちらを見ながら設定する。
当然ながら、サンプルは全部JavaなのでKotlinに書き直す必要が出てくるけど、全然慣れてないので、何でエラーが出るんだろう?みたいな感じになる。例えば、
private GoogleSignInClient buildGoogleSignInClient() {
GoogleSignInOptions signInOptions =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(Drive.SCOPE_FILE)
.build();
return GoogleSignIn.getClient(this, signInOptions);
}
だったら、単純な置き換えで
private fun buildGoogleSignInClient(): GoogleSignInClient {
var signInOptions: GoogleSignInOptions = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(Drive.SCOPE_FILE)
.build()
return GoogleSignIn.getClient(this, signInOptions)
}
みたいな感じに書き換えが必要。
Context指定
applicationContextでnullエラーが出る場合はそのアクティビティのContextが必要になるので
this@[Activityの名前]にするとnullエラーが出なくなる
のちのち更新していく予定です