4
6

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 5 years have passed since last update.

Kotlinのメモ

Last updated at Posted at 2018-04-04

久しぶりに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に書き直す必要が出てくるけど、全然慣れてないので、何でエラーが出るんだろう?みたいな感じになる。例えば、

buildGoogleSignInClient.java
private GoogleSignInClient buildGoogleSignInClient() {
  GoogleSignInOptions signInOptions =
      new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
          .requestScopes(Drive.SCOPE_FILE)
          .build();
  return GoogleSignIn.getClient(this, signInOptions);
}

だったら、単純な置き換えで

buildGoogleSignInClient.kt
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エラーが出なくなる


のちのち更新していく予定です

4
6
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
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?