Google OAuth で認証できるところまで動かしてみた(前編)

はじめに

Kotlin Advent Calendar 2015 - Adventar
に素敵な記事
アプリからサーバまで全部Kotlinなお手軽サービス開発 #ktac2015 - Qiita
が掲載されておりまして、試してみました。

Kotlin と Android Studio は全くの素人です。GAE (Google App Engine) は Python を使ったことが少しあるけれど Java は初めて使います。そんな状態で Kotlin に無謀な挑戦を挑みます。

バージョン情報:

プロジェクトを作る

Android Studio を使って、Android アプリを作らない。何のための Android Studio だ。という感はいなめませんが、それは Kotlin のため。Android Studio で GAE + Kotlin のためのプロジェクトを作成します。

Android アプリは作りませんが無難なところを選択します。ちなみに Android アプリを作るとしたら、Android OS シェアより Jelly Bean 以上くらいはサポートしておくのがいいのかな?

Androidバージョン別シェア | juggly.cn

Android アプリは作成しないので、No Activity です。


GAE モジュールを作る

GAE モジュールなんてなくて、Google Cloud Module なのですね。

App Engine Java Endpoints Module で作成してみます。初挑戦です。


エラーがでてるぞ

モジュールを作っていると、裏でビルドが動いて app モジュールでビルドエラーが発生しています。

app モジュールは使わないので、思い切って削除します。settings.gradle を編集します。

include ':app', ':backend'
include ':backend'

app モジュールを削除しました。


Kotlin Plugin を導入

Android Studio に Kotlin Plugin を導入します。
Android Studio > Preferences > Plugins > Browse Repositries > Kotlin で検索。
Kotlin Extensions For Android は Obsolete になっているし、Android アプリは作らないのでインストールしません。Kotlin のみインストールしました。


Java to Kotlin

Java ファイルを Kotlin ファイルに変換します。変換のコマンドがわからなかったので、keybinding を確認しました。
Android Studio > Preferences > Keymap > Kotlin で検索。

Code メニューにあります。ショートカットもわかりました。java フォルダを選択して変換コマンドを実行します。
Code > Convert Java File to Kotlin File

変換は完了しましたが、MyEndpoint.kt でコンパイルエラーが発生しています。

@ApiNamespace の @ をなくせばエラーはなくなります。ここ詳しくないので、後で調べないとです。



gradle の設定を変える

変換を終えたら自動的に設定を変えることができます。
Tools > Kotlin > Configure Kotlin in Project。
backend モジュールの build.gradle が変更されます。ただし、Android アプリ用の設定になるので 2 点変更します。

//apply plugin: 'kotlin-android'
apply plugin: 'kotlin'
//android {
//    sourceSets {
//        main.java.srcDirs += 'src/main/kotlin'
//    }
//}

動作確認

Configuration は backend に設定し、Run を実行します。

ブラウザで開きます。

テキストを入力してボタンを押すと、入力した内容が表示されます。

以上で、最初のステップは終了しました。