いまさらSwiftプログラミング日記 ①
Swiftをまず気軽に触りたい方にはSwift Playgroundで遊ぶのをおすすめします。 tiggret.hatenablog.com
Swift Playgroundで遊んでみた記事で紹介したものの、普通にSDKを入れてSwiftを学んだことはなかったのでやってみようかと思います。
筆者のプログラミングスキル(業務経験はないので、経験言語)
・COBOL...この知る人ぞ知る言語を高校生の頃にちょちょっと書いていました。学校の事情でね...基本情報技術者試験なんかをCOBOL選択で取っています。なので、レベル感としてはそのくらいの感じです。
・Java...大学の単位取るためにほんのちょこっと書いたことがある
・RubyおよびRuby on rails...これもほんのちょこっと触ったことがある
・Objective-C...その昔、ほんのちょこっと(ry
・あとは...Gitを少しだけ使える。
というわけで全くの未経験ではないが、プログラミングやアプリ開発については素人という感じです。
環境を準備する
さて、プログラミングを始めるときにまず始めなければならないのが、環境の準備です。Swiftでググって開発リソースを確認していきます。
Swiftを始めるのに必要なもの
・Mac (後述しますが、OS 10.13.2以降が必要)
・ドキュメント(英語)
Appleのサイト(Swift - Apple(日本))から各リソースへのリンクが貼られています。
ドキュメントはiBook Storeで配布されています。
ゼロから始めるので、今回はThe Swift Programming Lanugage(Swift4.1)を選択
次に最新のXcodeをインストールするのですが...
High Sierraの壁....!!!
毎度イマイチメリットがわからずにOSをアップデートするのを後回しにするんですが...Macってこういうところでアプデ強制してくるところ...ある...まあええんやけど...
というわけでOSをアップデートします。
(30分後)
無事High Sierraデビューできました。
Mac App Storeに戻り、Xcodeの最新版をインストールします。
About Swift
インストールが完了するまで、ドキュメントの冒頭を読んでいきたいと思います。
曰く、Swiftはスマートフォン、デスクトップやサーバーに限らずソフトウェアを書くのにファンタスティック(ほんとにこう書いてある)な手段で、プログラミング初学者にもフレンドリーなんだそう。
“Swift defines away large classes of common programming errors by adopting modern programming patterns:
・Variables are always initialized before use.
・Array indices are checked for out-of-bounds errors.
・Integers are checked for overflow.・Optionals ensure that nil values are handled explicitly.
・Memory is managed automatically.
・Error handling allows controlled recovery from unexpected failures.”
抜粋:: Apple Inc. “The Swift Programming Language (Swift 4.1)”。 iBooks https://itunes.apple.com/jp/book/the-swift-programming-language-swift-4-1/id881256329?mt=11
Swiftでは最新のプログラミングパータンを採用することで、プログラミングでよくある共通のエラーを判別してくれるようです。
・値の初期化
・Array(配列)インデックスのout-of-boundsエラーのチェック
・整数型のオーバーフローチェック
・nilが意図されたものであるかのチェック
・メモリの自動管理
・エラーハンドリングによる、予期せぬ障害からの復帰処理
また、"Swiftは強力なタイプインターフェースとパターンマッチングをモダンで軽量な構文と組み合わせ、複雑なアイデアを明確かつ簡潔に表現することができます。その結果、コードは単なる書込みが容易になるだけでなく、読みやすく保守しやすくなります"とのこと。
バージョン互換
Xcode9.2ではSwift 4とSwift3のどちらもビルドすることができるようですが、以下のような機能はSwift 4でのみ使用できるようです。
・SubstringはStringの代わりにSubstringのインスタンスを返す
・@objcアトリビュートが暗黙のうちにいくつかの箇所に追加されている
・(Typeの)プライベートメンバーによる同じファイル内のタイプの拡張へのアクセス
何を言ってるかわかりませんが、そのうちこれらの事象に遭遇するのかもしれません。
Hello Worldしてみる
さて、そうこうしているうちにインストールが完了しました。
ドキュメントのSwift Tourに従ってまずはHello Worldしてみます。
Swift上でHello Worldするためのコードは以下の通り。
print("Hello, world!")
Xcodeを起動して、新規プロジェクトを作成します。
今回は簡単にコードを書いて実行したいので、 Get started with a playground で開始してみましょう。
Blankのテンプレートを選択して適当な場所にプロジェクトファイルを作成します。
こんな画面が表示されました。
ここに print("Hello, world!")のコードを追加すると...
コードをタイプするとインタラクティブに下部の実行エリアに実行結果が表示されました。
これは簡単にいろんなコードを試すことができそうです。
では、今日はこのへんで。