LoginSignup
2
0

More than 5 years have passed since last update.

Kotlin で Pepper SDK for Android を試す

Last updated at Posted at 2016-12-23

はじめに

Pepper SDK for Android を試してみるのと、そのチュートリアルの「Say "Hello, world!"」を Kotlin で書いてみました。

環境

  • macOS Sierra (10.12.1)
  • Android Studio 2.2.3
  • Pepper SDK 0.9.0
  • Kotlin Plugin 1.0.5

参考記事

Say "Hello, world!"

チュートリアルの「Say "Hello, world!"」です。

コード

基本的には Java のコードを元に「Convert Java File to Kotlin File」で変換したものなのですが、Qi.onUiThread() でエラーになるため、キャストして型を合わせて動かしています。そのため FutureFunction が表に出てきしまい、元の Java のコードより無駄な部分があります。

何かもっと良い書き方があるのではないかと思うのですが、教えてください。

SayActivity.kt
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log

import com.aldebaran.qi.QiCallback
import com.aldebaran.qi.sdk.Qi
import com.aldebaran.qi.sdk.`object`.interaction.Say
import com.aldebaran.qi.FutureFunction

class SayActivity : AppCompatActivity() {
    companion object {
        private val TAG = "SayActivity"
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_say)

        val say = Say(this)
        say.run("Hello, world!").then(Qi.onUiThread(object : QiCallback<Void>() {
            override fun onResult(ignore: Void) {
                Log.d(TAG, "result on thread " + Thread.currentThread().name)
            }

            override fun onError(error: Throwable?) {
                Log.e(TAG, "error", error)
            }

            override fun onCancel() {
                Log.w(TAG, "cancel")
            }
        }) as FutureFunction<Void, Void>)
    }
}

実行結果

Robot View

pepper_kotlin.png

Android Monitor

QiCallback の onResult の出力です。

12-24 02:01:56.661 2096-2130/jp.sandpit.sayhelloworld D/SayActivity: result on thread Thread-191

感想

  • (・8・) < Android も Java も Kotlin もまだまだちゅん
2
0
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
2
0