Kotlinアプリケーションの種類
状態:終了
閲覧数:634
投稿日:2018-03-23
更新日:2018-04-17
2種類
A.「コンソールアプリケーション」
・「Android Studio」にて「コンパイル&実行」することは出来ない
B.「Android Studio」で作成した「Androidアプリケーション」
「コンソールアプリケーション」のコンパイル
Command Line Compiler
・GitHubのKotlinコンパイラアーカイブをダウンロードし、任意のディレクトリに展開することで、Kotlinコンパイラおよび実行コマンドを使用できる
手動インストール
スタンドアロンコンパイラをディレクトリに解凍し、必要に応じてbinディレクトリをシステムパスに追加します。 binディレクトリには、Windows、OS X、Linux上でKotlinをコンパイルして実行するのに必要なスクリプトが含まれています。
Microsoft Windows [Version 10.0.16299.309]
(c) 2017 Microsoft Corporation. All rights reserved.
C:\Users\□□>cd /d L:
L:\>cd Android
L:\Android>dir
ドライブ L のボリューム ラベルは HD-LBU2 です
ボリューム シリアル番号は D408-46D6 です
L:\Android のディレクトリ
2018/03/24 12:54 <DIR> .
2018/03/24 12:54 <DIR> ..
2012/07/30 01:53 <DIR> 3_Pr
2018/03/24 12:28 <DIR> Android Studioで始めるKotlin入門
2018/03/19 19:38 <DIR> AndroidStudioProject
2018/03/24 12:22 696 FizzBuzz.kt
2018/03/24 12:35 73 helloworld.kt
2018/03/24 12:54 <DIR> kotlinc
2018/03/22 14:53 <DIR> kotlinc-996
2018/03/24 12:39 <DIR> kotlinc-998
2018/03/24 12:12 <DIR> kotlinc-999
2018/02/27 11:02 <DIR> kotlin_projects
2018/02/27 11:13 <DIR> Sdk
2014/12/27 07:54 <DIR> workspace
2 個のファイル 769 バイト
12 個のディレクトリ 103,899,385,856 バイトの空き領域
L:\Android>kotlinc FizzBuzz.kt -include-runtime -d FizzBuzz.jar
'"java"' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
L:\Android>kotlinc FizzBuzz.kt
'"java"' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
L:\Android>kotlinc FizzBuzz.kt
'"java"' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
L:\Android>kotlinc FizzBuzz.kt -include-runtime -d FizzBuzz.jar
'"java"' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
L:\Android>
kotlin-compiler-1.2.31.zip
Microsoft Windows [Version 10.0.16299.309]
(c) 2017 Microsoft Corporation. All rights reserved.
C:\Users\□□>cd../
C:\Users>cd ../
C:\>cd Android
C:\Android>cd../kotlinc FizzBuzz.kt -include-runtime -d FizzBuzz.jar
指定されたパスが見つかりません。
C:\Android>kotlinc FizzBuzz.kt
'"java"' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\Android>dir
ドライブ C のボリューム ラベルは Acer です
ボリューム シリアル番号は 76F9-1B13 です
C:\Android のディレクトリ
2018/03/26 13:20 <DIR> .
2018/03/26 13:20 <DIR> ..
2018/03/26 13:20 275 FizzBuzz.kt
2018/03/26 13:20 <DIR> kotlinc
1 個のファイル 275 バイト
3 個のディレクトリ 426,096,156,672 バイトの空き領域
C:\Android>kotlinc FizzBuzz.kt
'"java"' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\Android>kotlinc FizzBuzz.kt -include-runtime -d FizzBuzz.jar
'"java"' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\Android>
・Android Studio のkotlinプロジェクトで、kotlin動作確認目的のHelloWorldを表示
・Windowsでkotlin-compiler使用するにはJAVA設定が必要?
Kotlinサンプルの実行
特徴
セミコロン
・先頭のpackage、import文は、末尾にセミコロンがない
継承
・継承にextendsキーワードを使うJavaと異なり、コロンを使用して継承元クラスであるAppCompatActivityを指定
MainActivity.kt
package tokyo.w3c.android0.kotlin_20180327
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
Unresolved reference: button
▼activity_main.xml
<Button
android:id="@+id/button"
Kotlinでイベントハンドラ
書き換え後、実行してボタンをクリックすると、TextViewが書き換わる
▼MainActivity.kt
▼L:\Android\AndroidStudioProject\kotlin_20180327\app\src\main\res\layout\activity_main.xml
▼MainActivity.kt
package tokyo.w3c.android0.kotlin_20180327
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//表示用TextViewインスタンスを取得
val textView = findViewById<TextView>(R.id.myLabel) as TextView
//ボタンインスタンスを取得
val button = findViewById<Button>(R.id.button)
//ボタンのイベントハンドラを設定
button.setOnClickListener { v ->
textView.text = "Clicked !"
}
}
}
▼L:\Android\AndroidStudioProject\kotlin_20180327\app\src\main\res\layout\activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="tokyo.w3c.android0.kotlin_20180327.MainActivity">
<TextView
android:id="@+id/myLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me!"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="16dp" />
</android.support.constraint.ConstraintLayout>