『Welcome to Android Basics in Kotlin』をやった(1)

kotlinの学習ついでにAndroidについての復習をしようとWelcome to Android Basics in Kotlinをやった。全部で4単元あった。中々のボリュームであった。

我が家のネットワーク環境の遅さ等も足を引っ張り、読み進むのに時間がかかった。最後までやったけど、きちんと理解し記憶しているかと言えば微妙(ノ∀`)
今後の学習をする際に手や足を掛けていけそうな単語等の知識と言語経験を得た感じくらいかな。

以下はその際のメモ書き、主に自動翻訳に対するケチやハマったことの単純な記録を少し修正したものなので、余り有用な内容ではない。

いつものことだが、時間が多少経ってしまっているが為に自分でも何の話をしているのかはよくわからない部分がある(ノ∀`)


全般的に思ったこと。

  • ナビゲーター(喋る人)が複数居て、なんか観てて面倒くさい。なぜ複数の人の顔や声という余計な情報を垂れ流すのだろうか。後の単元では一人だけの動画になったりしたが、正直、学習系動画は声とコードや画面映像だけで良いと思う(´・ω・`) ← ノリについていけないだけとも言うw
  • 括弧の表記がぶれているのはいただけない。"{}"を中括弧と呼んだり波括弧と呼んだり。個人的には波括弧で統一して欲しかった。"[]"を角括弧として表記しているので。あと文中では"かっこ"だけど"括弧"または"カッコ"の方がいいかなぁ?
  • "タスク"は"処理"と表現した方が良いような。或いは"タスク"とは何かという説明を先にした方が良いような。一応初心者向けコースなので。

Introduction to Kotlin

コードラボが中々始まらない。
考えてみれば最初のログインの時も無茶苦茶時間がかかったような。うちの回線の問題なんだろうか? コードラボ自体は日本語化されてる模様。
← 最後のテストが日本語の時と英語の時があった。言語設定が上手く機能していなかっただけだろうか?

Kotlin で初めてのプログラムを作成する

3.プログラムを変更する

関数とは、特定のタスクを実行するプログラムのセクションのことです。

関数とは、特定の処理を実行するプログラムの部品(一部分)のことです。

の方が良いかなぁ…

mainは、この関数の名前です。関数には名前があり、それによってお互いを区別します。この関数は、プログラムを実行すると最初に呼び出される、つまりメインの関数であるため、main と呼ばれます。すべてのKotlinプログラムには、mainという名前の関数が必要です。

関数は名前を持ち、それによって区別されます。この関数の名前はmainであることを意味しています。mainの名前を持つ関数はKotlinでプログラムの実行時に最初に呼び出される特別な関数です。必ずプログラム内に存在しなければいけません。

※後々の匿名関数の説明を踏まえると基本的に関数は名前を持ち、または関数には名前をつけて他の関数と区別して使用することができます。という表現の方が妥当か?

println で、テキスト行を出力するようシステムに指示します。

printlnという命令文でテキストを画面に出力するようにシステムに指示します。 このprintlnという命令文(の中身)はKotlinで提供されている定義済の関数です。

あと、ここで"println 命令"という表現というか翻訳をしてしまっているな…


4.プログラムを拡張する

いきなり println() functionという表現が出てくるので、やはり上のような説明の追加かfunction関数と表記というか翻訳すべきでは?

ただは要らないか、前回のサンプルでは一行の命令行しかありませんでしたが、かなぁ…

フィードバック機能というよりもエラー通知機能とかの方がわかりやすいかなぁ?

ミスコーディングミスとかの表現の方がいいかな。

Error という単語を含むメッセージが表示されます。
含んでないで(ノ∀`)


6.

すべてのKotlinプログラムにでもいいんだけどにはの方が良いかな…どうかな…これは個人の好き好きかw

テキスト行を出力するには、println() 関数を使用します。
複数のテキスト行を出力するには、println() 命令を繰り返します。
関数と命令と言う異なる単語を使う意味はなんだろうか? ← 原文がfunctionとinstructionだった。repeatを使った表現だからかな?
やはり関数呼び出し=システムへの指示・命令であることを先に明確に説明すべきなのではないかな。あとは命令文=ステートメントとか。

まあ何にせよ、初心者向けの学習教材では単語とか表現は出来るだけ統一して、本筋の知識の習得を妨げない方が良さそうだけどねぇ… 

対象が初心者ではなくて初級者なら、その知識を広げるための覗き穴を設けることは賛成だけれども。


Kotlin で誕生日メッセージを作成する

2. Kotlin で誕生日メッセージを作成する

スターター コードを設定する

2. fun main() 関数内のテキスト "Hello, world!" を "Happy Birthday, Rover!" に置き換えます。

2.main関数内にあるprintln命令の引数である"Hello, world!"を"Happy Birthday, Rover!"に置き換えます。

"引数"の説明って既に出てたかどうか忘れた(ノ∀`)

3.その下の中かっこ内に、出力用の "You are already 5!" と "5 is the very best age to celebrate!". の 2 行を追加します。

"3. そのprintln命令の下に、新たに"You are already 5!"と"5 is the very best age to celebrate!"の 2 行を出力するためのprintln命令を追加します。"

バースデーケーキを追加する

画像が必要ですでもいいけど、イメージなどが一緒にあるといいでしょうくらいでいいんじゃね( ゜σ・゚)ホジホジ?

キーボードと println() で文字と記号を何行か出力すると、誕生日メッセージにケーキを追加できます。キーボードとの部分は要るかね?

ステートメントという言葉の説明はしてたっけ?
突然出てくるような。

以下の print ステートメントの行を追加します。とあるが、printとprintlnは違う物だと思う…

もしかすると以下の出力ステートメントの行を追加します。が正しい翻訳?

「ローバーの年齢を変数に格納する」辺りの説明で色々と文章にケチをつけたくなったが、もう面倒くさいのでそれはやめた。日本語としておかしいというか説明文としては言葉足らずでわかりにくい。原文自体の表現が微妙だったり、翻訳が微妙だったりする感じを受ける。

※以降、徐々に気力を失って細かい指摘が少なくなっていく模様w


4. 枠線付きの誕生日バナーを出力する

枠線を出力する関数を作成する

funキーワードは特定のコードを関数としてマークします。

funキーワードは特定のコードを関数として分離する為に使用します。

funキーワードの後は、関数名、関数への任意入力のためのかっこ(引数)、中かっこの順に記述します。

関数名、丸括弧、波括弧の順に記述します。
丸括弧内には処理で必要となる情報(=引数)を記述し、波括弧内にはその関数内で行う処理を記述します。

テキストを出力するためのコードは、常にこの中かっこ内に記述します。

テキストを出力する為のコードは、処理に当たるので、この波括弧に記述します。

関数を変更して2つの引数を指定する

なんか記述にミスがあるのか文章がおかしい。
英語と日本語が混在している?


基本レイアウト

Androidアプリに画像を追加する

4.適切なコーディング慣習の採用

警告アイコンをクリックしてもFix用のWindowが表示されない…
なんか設定を変えてしまったかな?
問題ウィンドウからクィックフィックスの表示で"文字列リソースの抽出"をクリックしたが、これまた反応がない。values/string.xmlにも追加されていない…
なんじゃらほい(´・ω・`)
うちのAndroid Studioの設定がおかしいんかな?

The type of ViewGroup that helps you arrange the views inside of it in a flexible way is called a

が分からなかった。Layoutとか答えちゃった(ノ∀`)
ごっぐる翻訳を使ったのに問題文を理解できてないんだなw
RelativeLayoutとかなのか(´・ω・`)?
← 何の話かと思ったら空欄記述問題の話か…

Kotlinのクラスとオブジェクトインスタンス

カプセル化の説明ってこれでいいんだろうか?
厳密には微妙に違うような…

キャメルケースにも先頭も大文字にするアッパーキャメルケース(UCC)ってあるんだな…ってこれはパスカルケースって呼ばれる方が普通なのかと思ってたわ(´・ω・`)

一般的(?)な先頭小文字の場合はローワーキャメルケース(LCC)って言うのか…

コンストラクタ引数ってそのままプロパティになるんかΣ(゚∀゚;)ベンリ


インタラクティブなDice Rollerアプリを作成する

4. アクティビティの概要

onCreate() メソッドの残りの部分では、インポートのコードを使用し、setContentView() で開始レイアウトを設定することにより、MainActivity を設定しています。

何言ってるかわからんw

6. サイコロを振るためのロジックを追加する

rollDice() メソッドを作成する

クリック リスナーでテキストを「6」に設定しているコードを、rollDice()の呼び出しに置き換えます。

何の話をしてるんだ…( ;・´ω・`)ゴクリッ?
Toastの部分の話をしてるんだろうけれど…
他のプラットフォーム用のチュートリアルを流用したのか、以前はテキストボックスに"6"を代入していたのかな。


Kotlinで条件付き動作を追加する

2. コード内での意思決定

変数 num を作成し、5. に設定します。
「num は 4, より大きい(>)」

翻訳が原文の"."や","を含んでしまってる?

考えてみると"The variable is greater than ~"ってなんか変だな…
valueじゃないのか?

numは前のコードを流用して

val num = (1..6).random()

とかの方が良いな。

3. Lucky Dice Roll ゲームを作成する

スターター コードを設定する

diceRollrollResultに直してないなw

6. 適切なコーディング慣習を採用する

実用的な起動体験を構築する

ユーザーに奇妙が印象を与えます。
奇妙な?

A class is for defining categories of "things", while instances are for defining their properties.
なんか違うと言えば違うような気がする。間違いだった(ノ∀`)

Use // to turn the rest of a function into a comment.
これ、関数の残りの全行に対して//を施せばそれはそれで正解のような?


長い(ヽ'ω`)