Mac に Swift Playground が来たので試してみた。そしてプログラミング教育の話もちょっとだけ。
Swift Playground が Project Catalyst のおかげで Mac 版となって登場したので試してみました。それが下のスクリーンショット。
UIKit と PlaygroundSupport を使ってやれば、結構なことが Playground の中でできます。今回書いたのは以下のようなサンプルコード。
import UIKit
import PlaygroundSupport
let view = UILabel()
view.text = "Hello World"
view.textAlignment = .center
view.contentMode = .scaleAspectFill
view.backgroundColor = UIColor.white
PlaygroundPage.current.liveView = view
Interface Builder 的なものがないので全てコードで初期化してやる必要がありますが、なかなか楽しい。
ついでに WKWebView を使って Google のトップページを表示させてみたりも試しました。
import UIKit
import WebKit
import PlaygroundSupport
let webview = WKWebView()
let url = URL( string: "https://www.google.com/" )
let urlRequest = URLRequest( url: url! )
webview.contentMode = .scaleToFill
webview.load(urlRequest)
PlaygroundPage.current.liveView = webview
こんなコードを書いてやれば、下の画像のように。
個人的には Ruby の irb 的な使い方しようかなぁとか考えています。
また、社内のプログラミング教育にも使えそうかなとか思っています。
プログラミング教育と Playground
エンジニア向けの教育では Playground がいいかなーと思う反面、プログラミングの概念の教育には iOS にある「ショートカット.app」の方がいいかなーとか思ったりもします。
あっちだと入力を受け付けて、入力に対して条件分岐させて、それに対して結果を返す・・・みたいな一連の流れを簡単に知ることができるので。もちろん入力された値とかは変数に入れる・・・みたいなこともできるし。
Swift Playground は Swift って言語への理解を深めるにはすごいよくできているんですが、いかんせん入力の受付とかその取り扱いが「ショートカット.app」のように容易ではなく、入力用の UI、出力用の UI をそれぞれ作らなきゃいけない。
ただしここは一長一短かなって思ってます。
コンポーネントを置いて、イベントをハンドリングして・・・みたいな実践的なことを学ぶ上では Playground の方がちゃんと考えて意識しないと作れないから、職業エンジニアの教育には本当にいいと思う。ただし小学校とかでのプログラミング教育って、おそらくそういう実践的なことを学ばせるってよりかは「考える力を養う」って方に重きが置かれているんだろう(偶然?必然?にもうちの会社の理念でもあります)から「ショートカット.app」でもいいかな、と思ったりする自分もいます。
まあ、Playground のチュートリアル的なのに触るのが初等教育でのプログラミング教育にはちょうどいいのかなぁ・・・?