2020年2月15日土曜日

Kotlinはじめました(書籍「Kotlinプログラミング」を読む)


「Kotlinはじめました(後編)」のつづきです。書籍「Kotlinプログラミング」を読みながらKotlinを学んでいます。


TL;DR
Javaが大体わかっている人にはオススメ。


♪♪♪


前回「Kotlinはじめました(後編)」を踏まえた上でVSCodeを使う前提の話ですが、第6章の6.2で標準入力がでてくるので、Code Runnerをターミナルで実行するように設定します。

Code > Preferences > Settingsで、Run Code configurationのRun In Terminalにチェックを入れます。


第12章からはクラスが出てきます。この本はIntelliJ IDEAを使う前提で書かれているので、クラスは別ファイルで作成するようになっていますが(実際開発時にも当然そうするものですが)、ここでは短いコードを実行するだけですからpathをどうこうするよりも、同じファイル内に定義するのが手っ取り早いです。


♪♪♪


次に誤記に関してです。

ここに正誤表がありますが、これ以外に気がついたものを上げると以下の箇所です。

p36 リスト3-7の8行目
→他にも消すべき行が1行ある。

//誤
    println(name + " has a few scratches.")
//正
    //不要

p108のリスト7-1の下から4行目
→indexOfの引数が間違っている。

//誤
    val indexOfApostrophe = TAVERN_NAME.indexOf('`')
//正
    val indexOfApostrophe = TAVERN_NAME.indexOf('\'')

p112のリスト7-5の下から8行目
→引数(正規表現)に不要なスペースがある。

//誤
    phrase.replace(Regex(" [aeiou] ")) {
//正
    phrase.replace(Regex("[aeiou]")) {

p192のリスト12-22の下から8行目
→他にも消すべき行が何行かある。

p271のリスト16-10の下から8行目
→import kotlin.system.exitProcessが省略(?)されている。

このほかにもインデントがおかしかったり、本来太字にするべき部分が太字になってなかったりする部分などが散見しますが、いずれにしても本文を読んでいれば気付く程度のもので、致命的な間違いは見当たりませんでした。

とはいえ誤りは誤りなわけで、こういったミスは原本に由来するものだと想像しますが、翻訳時に修正しないものなのでしょうか?。しっかりしなよ、とは思います。


♪♪♪


全体を通して読んでみての感想としては、悪くない内容だと思います。

Amazonのレビューを見ると「分かりにくい」「とにかく読みづらい」と散々ですが、いうほど酷いでしょうか?。翻訳物ならこんなものなのではないかと思います。

ゲームを作る体で内容が進んでいきますが、それがテキストベースのしょぼいものであるとはいえ、ちゃんと動くことは評価に値すると思います。ゲームを例えに上げて説明するものは多いですが、例えで終わっているものがほとんどです。

ただ、Java(もしくは他の類似の言語)がある程度分かってる前提で書かれていますから、プログラミング初心者に対する噛んで含めるような文章ではありません。でも、ポイントを押さえた解説になっていると感じます。

でも、サブタイトルの’The Big Nerd Ranch Guide'ってのはどうなんでしょうね?


♪♪♪


技術書を評価するにあたっては、間違いがないのは当然として、読みやすさというより誤解しにくい表現であることは重要だと考えます。僕は妙な例え話にあふれているのは嫌いです。なんとなく分かるんですよね、書いている側もちゃんと理解してないだろってのが。

やらせレビュー問題など色々言われているAmazonのレビューですが、一応は参考にします。でも、技術書の善し悪しは読む側の知識量やレベルによって左右される部分が大きいので、絶対的な評価というのはなかなか難しいです。もちろんAmazonも便利なんですけど、できるだけ実店舗の本屋さんで自分が求める内容か否かを確認して買うのがいいと思います。

あ、立ち読みしろってことじゃないですよ。


♪♪♪


Kotlinプログラミングを読み終わって、Androidの基本を再確認するためにもう一冊「Androidアプリ開発の教科書」というKotlin対応の本を買って読みました。

こちらは初心者に優しい内容です。基礎から丁寧に解説されています。出版社が公開している正誤表以外の誤記も見つかりません。ただし、こちらはKotlinをすでに分かっている前提です。

内容的に目新しさはありませんでしたが、あらためてKotlinで書かれているものを写経するのはなかなか新鮮です。いい買い物をしました。


こちらもどうぞ。
Kotlinはじめました(前編)
Kotlinはじめました(後編)
Kotlinはじめました(AdMobバナー広告を組み込む)
Kotlinはじめました(AdMobアダプティブバナー広告を組み込む)



Android版、鋭意作成中。

2020年2月1日土曜日

Kotlinはじめました(後編)


「Kotlinはじめました(前編)」のつづき、後編です。


♪♪♪


JDKは用意できたので、気を取り直してここの情報を参考にしてVSCodeで環境を作ります。

まず、Homebrewを使ってKotlinをインストールします。
brew update、upgradeして、brew doctorで問題ないことを確認した上でインストールします。

% brew update;brew upgrade
Already up-to-date.
% 
% brew doctor             
Your system is ready to brew.
% 
% brew install kotlin
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 3 taps (homebrew/core, homebrew/cask and caskroom/cask).
==> New Formulae
yaegi
==> Updated Formulae
imagemagick                                           mdds                                                  pyenv

==> Downloading https://github.com/JetBrains/kotlin/releases/download/v1.3.61/kotlin-compiler-1.3.61.zip
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/3432266/293e4980-10be-11ea-9c16-b3a2231ee337?X-Amz-Algorithm=AWS4-HMAC-SHA2
######################################################################## 100.0%
🍺  /usr/local/Cellar/kotlin/1.3.61: 116 files, 56.7MB, built in 1 minute 17 seconds
% kotlinc -version
info: kotlinc-jvm 1.3.61 (JRE 1.8.0_161-b12)
%


VSCodeに、Kotlin LanguageとCode Runnerの2つのプラグインをインストールします。

上のページではユーザ設定を変更する必要が書かれていますが、何もしなくても大丈夫でした。修正されたのですね、きっと(よかったよかった)。

後はHelloWorldを書きます。ファイル名はhello.ktでいいですね。



Run Codeボタンを押します。

Run!


なんだかワーニングが出ましたが、ちゃんと実行されました。

Hello World!


あとはこの調子でKotlinの動作を確認しながら本を読み進めていけばいいですね。

めでたし、めでたし。


♪♪♪


ところで今更なのですが、よく考えたらOpen JDKってhomebrewでインストールできたのでは?

あっ。

いやいや、それ以前にAndroid StudioにはOpen JDKが同梱されてるんじゃなかったけっけ?

あっ。

Android Studioの[File] > [Project Structure]のSDK Locationを見ると、JDKは/Applications/Android Studio.app/Contents/jre/jdk/Contents/Homeにあるようです。

じゃ、ここにpathを通せばいいんじゃね?
export PATH=$PATH:/Applications/"Android Studio.app"/Contents/jre/jdk/Contents/Home/bin
export JAVA_HOME=/Applications/"Android Studio.app"/Contents/jre/jdk/Contents/Home

% javac -version
javac 1.8.0_202-release
% java -version 
openjdk version "1.8.0_202-release"
OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
OpenJDK 64-Bit Server VM (build 25.202-b49-5587405, mixed mode)
% 


おお、いける。


早速、VSCodeで実行してみると。

ワーニングも出ないです。

まさかの前編全否定のちゃぶ台返し!
そんなわけで、前編でインストールしたOpen JDK13はアンインストールしましたとさ。


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



Android版、鋭意作成中。