access-company / kotlin_intro Goto Github PK
View Code? Open in Web Editor NEWintroduction of Kotlin!
introduction of Kotlin!
あんまり積極的に用いるべきでないとされる強制アンラップであるが、
どういうときに使わなければならないか、存在意義を明らかにしておくとより理解が深まりそう。
追記しておく。
reported by @ttokutake
KotlinTrainingを廃止する。今までありがとう!
具体的には、「開発環境の構築」をdoc最後に「Android開発環境の構築」として移し、その内容は実習で使うNekonosuzuの構築にする
https://github.com/pankona/kotlin_intro/blob/master/src/inherit_abstract.md#%E5%8F%AF%E8%A6%96%E6%80%A7
パッケージの説明が、可視性の説明で最初に出てきますが大丈夫ですかね?
テストを書いてみよう!等といいつつテストを書くための手順が記載されていない。
Intellij Idea で Kotlin を書いている場合、
等があり、まあまあハマりそうなので、テストの書き方に関する導入はやっといて損はなさそう。
誤りを正す。
2022年度新卒研修での指摘で、n面のサイコロの問題内容がわかりづらい
改訂案:https://accessjp.slack.com/archives/C035ECGPY7K/p1649211384542459
新卒の方々はみな Android Studio のインストールまで済んでいるらしく、あえて Intellij IDEA を追加で入れるのも IDE がたくさんになって混乱を生む可能性があり (Xcode も入ってるし)、できれば Android Studio を使って Kotlin 導入を進めたいという気持ちがある。
とはいえ Android Studio ではいわゆる main 関数を使ってちょいちょい実験してみるみたいなのがやりにくく、さてどうしようかと思ったが、実は test を main みたく使ってみればいいんじゃないかということに気付いた。
ページ左上のType to searchが動いていない様子。
詳しくは見てないが、実は以下が必要だったとか?
2c5584f#diff-d0656efeb06fe536fce622d8979b74c57c7cb3b999bf85a31599264d195bc9f4L9-L11
そもそも null に関する説明をせずに null 安全の説明が始まっており、不親切感がある。
null に関する説明を入れる。
gitbook installが失敗する
nagauchi@Y61-41523 kotlin_intro % gitbook install
Installing GitBook 3.2.3
SOLINK_MODULE(target) Release/.node
CXX(target) Release/obj.target/fse/fsevents.o
SOLINK_MODULE(target) Release/fse.node
SOLINK_MODULE(target) Release/.node
CXX(target) Release/obj.target/fse/fsevents.o
/Users/nagauchi/.asdf/installs/nodejs/14.17.1/.npm/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287
if (cb) cb.apply(this, arguments)
^
TypeError: cb.apply is not a function
at /Users/nagauchi/.asdf/installs/nodejs/14.17.1/.npm/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
at FSReqCallback.oncomplete (fs.js:193:5)
npm install [email protected]
(参考)以上やっても解決せず、一度調査を打ち切った。
直接的な原因じゃないかもしれないが、調査していて感じた問題が2つあり、
以上から、1.はDocker、2.はHonkit移行で対応し、そのあと同種の問題が起きなければOK。
「Kotlinについて」に書いてあるKotlinの最新安定版と最新プレビュー版の数字を更新する
Kotlin Playgroundで各所のコードがちゃんと動くか検証する。mainメソッドがないと動かないのでは?と思っており
#45 ができてる前提
どちらかに統一するか、混在させるなら各々の説明をいれる必要がある。
統一する (Android アプリの開発を見越して NonNull かな) ように修正する。
REPL はちょっとした言語の機能を確認するにはとても便利なので、学習効率の向上に寄与しそうな気がする。
REPL を IntelliJ Idea から使うことができるので、使い方を記載しておく。
when {
...
}
のパターンの記載がないが便利なので書いておいたほうが良さそう
代わりに when
がある気がするが、switch
がないことは明示的に書いておいてよさそう
せっかくPublicなので、GitHub Actionsに対応してもよいかもしれない
そうすればローカルでDocker環境作ることさえ不要になる
参考:GitHub Actions による GitHub Pages への自動デプロイ
はじめにのReference - Kotlin Programming Languageがリンク切れしている
Java と Kotlin のサンプルコードを併記しているが、パッと見でどっちの話なのか分かりにくい。
見慣れているならまだしも、新卒氏を対象としているのであればわかりやすく書く配慮が必要。
サンプルコードが併記してある箇所について、Java なのか Kotlin なのかひと目で見分けがつくように修正する。
Embedding Kotlin Playground
https://blog.jetbrains.com/kotlin/2018/04/embedding-kotlin-playground/#:~:text=Embedded%20Kotlin%20Playground%20works%20on,target%20is%20set%20to%20JVM
に従い、HTMLのヘッダーに以下1行を挿入する
<script src="https://unpkg.com/kotlin-playground@1" data-selector="code"></script>
これを全ページに適用できれば、access-company/KotlinTrainingが不要になる
GitbookでHTMLヘッダーを変えたい場合、どうすればよいか
https://github.com/NoriSte/gitbook-plugin-head-append
が使えるかな?
毎年のことだが、模範解答を作っておく。
2020年度に作った旧AndroidStudioプロジェクト向けの解答PRが
https://github.com/aKensakuNagauchi/KotlinTraining/pulls?q=is%3Aopen+is%3Apr
に全問並んでいるので、Playgroundにコピペできるような形に整え、どこか(研修サイトの隠しHTMLとか)においておく
Exercise が足りなくなりそうなのでもう少し追加しておく。
以下を追加しようかと考え中。
https://github.com/pankona/kotlin_intro/blob/master/src/function.md#%E5%86%8D%E5%B8%B0%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97
再帰呼び出しの最適化とか入門とするには難しいような気がします。
あと、ローカル関数が再帰呼び出しに含まれているような構成に見えます。
Exercise に解答例がついていないので、見えにくいように(探せば見つかるような感じで)つけておく
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.