2020年1月15日水曜日

Kotlinはじめました(前編)


新しいAndroidアプリを作成するにあたって、さすがにもうJavaじゃないのかなと思いまして。見ないふりをしてやり過ごしてきましたが、いい加減Kotlinに手を付けないとなぁ、というわけで。

めんどくさいなぁ、もう。

でも、新規のiOSアプリならもうObjective-Cでは作りませんしね。年貢の納め時でしょうか。とりあえず本を買って一通り読めば何とかなるでしょう。



この本はAndroid用というわけではなく、IntelliJ IDEAを使用する前提で書かれていますが、適宜Android Studioに読み替えればいけばいいはずです。

でもなぁ。。。

ちょっとやりにくいんですよね。そこでIntelliJ IDEAをインストールしようかとも思ったのですが、IntelliJ IDEAとAndroid Studioは基本的に同じですよね? 両方インストールして、なにかが競合するとかしないでしょうか(ま、大丈夫なんでしょうけど)。

そもそも、本に載ってるちょっとしたコードを実行するためだけにIntelliJ IDEAを使うのはオーバースペックです。なにかSwiftのplaygroundみたいな方法があればいいのに。

そうだ、VSCodeがあるじゃないか。


♪♪♪


とにもかくにも、まずはJDKが必要です。Java8なら大丈夫らしいです。でも最後にアップデートしてからしばらくたってます。
% javac -version 
javac 1.8.0_161
%

ちょっと古いですね。ここを見ると231が最新のようです(2020.1.7現在)。もちろん最新バージョンでなければいけないわけではないですが、モチベーションを上げるためにもここは早速ダウンロードして、、、と思ったら。

なんだよOracleプロファイルって。


Oracleのヤツめ。



じゃあOpen JDKかー、とjdk.java.netを見るとJDK13があります。

13でいいのか? 8で十分なんですけど。

macOS用をダウンロード


早速ダウンロードして、解凍します。
% cd temp                  
% ls -la                   
total 394640
drwxr-xr-x   4 hoge  staff        128  1  8 23:46 .
drwxr-xr-x+ 95 hoge  staff       3040  1  8 23:46 ..
-rw-r--r--@  1 hoge  staff       6148  1  8 21:34 .DS_Store
-rw-r--r--@  1 hoge  staff  189967039  1  8 23:41 openjdk-13.0.1_osx-x64_bin.tar.gz
% tar xvzf openjdk-13.0.1_osx-x64_bin.tar.gz  
x ./
x ./jdk-13.0.1.jdk/
x ./jdk-13.0.1.jdk/Contents/
x ./jdk-13.0.1.jdk/Contents/Home/

--省略--

x ./jdk-13.0.1.jdk/Contents/Home/bin/jstatd
x ./jdk-13.0.1.jdk/Contents/Home/bin/jdeps
x ./jdk-13.0.1.jdk/Contents/Home/bin/jconsole
x ./jdk-13.0.1.jdk/Contents/Home/bin/jimage
% ls -la                                     
total 394640
drwxr-xr-x@  5 hoge   staff        160  1  8 23:47 .
drwxr-xr-x+ 95 hoge   staff       3040  1  8 23:46 ..
-rw-r--r--@  1 hoge   staff       6148  1  8 21:34 .DS_Store
drwxr-xr-x@  3 hoge   staff         96 10  6 21:05 jdk-13.0.1.jdk
-rw-r--r--@  1 hoge   staff  189967039  1  8 23:41 openjdk-13.0.1_osx-x64_bin.tar.gz
%


解凍したJDKをJavaVirtualMachinesのディレクトリに移動します。
% sudo mv jdk-13.0.1.jdk /Library/Java/JavaVirtualMachines/
Password:
% /usr/libexec/java_home -V                                
Matching Java Virtual Machines (8):
    13.0.1, x86_64: "OpenJDK 13.0.1" /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
    1.8.0_161, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
    1.8.0_141, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
    1.8.0_121, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
    1.8.0_111, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
    1.8.0_91, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
    1.8.0_77, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home
    1.8.0_72, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
%


あとは.zshrcを編集して、JDKにpathを通します。
#Open JDK
export JAVA_HOME=`/usr/libexec/java_home -v 13.0.1`


ターミナルを開き直して、Javaのバージョンを確認します。でも、いつものアレが出現します。

まあ、そうだよね。


[システム環境設定] > [セキュリティとプライバシー] > [一般]の下部に、JDKがブロックされた旨が表示されているので、[このまま許可]を押して許可します。

ちょっとドキドキするよね。



改めてバージョンをチェックします。
% javac -version
javac 13.0.1
% java -version 
openjdk version "13.0.1" 2019-10-15
OpenJDK Runtime Environment (build 13.0.1+9)
OpenJDK 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)
%


大丈夫そうなので、最後に古いJDKを削除します。
% /usr/libexec/java_home -V
Matching Java Virtual Machines (8):
    13.0.1, x86_64: "OpenJDK 13.0.1" /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
    1.8.0_161, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
    1.8.0_141, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
    1.8.0_121, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
    1.8.0_111, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
    1.8.0_91, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
    1.8.0_77, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home
    1.8.0_72, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
% sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk
% sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk   
% sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk
% sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk
% sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk 
% sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk
% sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk
% /usr/libexec/java_home -V                                    
Matching Java Virtual Machines (1):
    13.0.1, x86_64: "OpenJDK 13.0.1" /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
% 


これでOpen JDKの用意はできました。 全然Kotlinの話ではなくなってしまいましたが、ちょっと長くなったので、次回に続きます。


こちらもどうぞ。
Kotlinはじめました(後編)
Kotlinはじめました(書籍「Kotlinプログラミング」を読む)
Kotlinはじめました(AdMobバナー広告を組み込む)
Kotlinはじめました(AdMobアダプティブバナー広告を組み込む)