2週間くらいSwiftを触ってみた話

swift

何故か現在SwiftでiOS開発のためよく使っているので、それに関しての雑記。

ちなみに、Swiftを2週間くらいと書いてますが、2週間前はMacすら使ったことなかったです!
なのでつまり、iOSアプリ開発自体初めてです。Objective-Cももちろんわからないです。今もわかりません。

Swiftは、Appleさんが作った新しい言語です。iOS開発のための言語と言っていいでしょう。

公式には、

Swiftは、iOS、Mac、Apple TV、Apple Watch向けのアプリケーションを開発するためにAppleが作ったプログラミング言語です。 この直感的でパワフルな言語は、今までコードを書いたことがない人でも簡単に使うことができます。 Swift – Apple(日本)

とあります。本当でしょうか。

書き方としては、kotlinとすごく似てます。元々kotlinは少しだけやったことがあったので、なんとかすんなり抵抗なく使えてます。
変数に!や?を付けるのは最初はナニコレと思うかもしれませんが、kotlinと似た感じなのですんなりいけました。
とりあえず、?はnilの可能性がある、!はnilの可能性はほぼ無しってことらしいですよ。大体Xcodeがすごく指摘してくれるのでなんとかなります。
なので、Android開発はkotlin、iOS開発はswiftとすることでかなり捗るんじゃないですかね。どっちがどっちかわからなくなりそうですが。
Objective-Cと比べれば、かなり今風な新しい言語だとは思う。でもやはりアップルの悪い癖が少しあるような言語だとも思う。

その他、使ってみてなんか思ったこと。
・変更しない変数(定数)は全部letにしないとXcodeさんから怒られる
変更しないであろう変数は全部定数宣言。
let hoge="huga"みたいな。まあ、確かにそっちがわかりやすいですな。

・ログ出力がswift1.xはprintln、swift2.0からprintに
この辺、1.xと2.xで仕様とか変わっているようです。新しく始める自分にはなんのことやら。
ググっても古いソースだと混ざっていて、最初はちょっとだけ焦ります。

・swift3.0からCっぽいfor文が廃止
for var i = 0; i < 10; i++ {}
・++や–といったCライクなインクリメントデクリメントも廃止
var i = 0
i++

これが廃止されます。なんというか、swiftは完全にCからの脱却を狙っているのかなあと思います。
やはり新しい言語は新しくわかりやすい書き方でっていうことなんでしょうか・・・
でも、多分完全に素人じゃないなら元々の書き方がわかりやすいなあ。

これらはこういう風に書き直されます。
for i in 0..<10 {}

var i = 0
i= i+1

あと、新しい言語らしく関数型っぽい書き方もできるとか。

【Swift】SwiftでC-styleのforループがなくなる話

【Swift】Swiftの++, –がなくなる話

ここで書いてるところはかなり初歩ですが、Xcodeの保管機能が優秀なおかげで割とガリガリ書けてます。
まあ、やっぱり問題点としては、当然ですけどWindowsでは使えない。
この記事もWindowsで書いているため、あまり詳しいことが書けないというジレンマ。

しかし、これで晴れてAndroid/iOSどっちもいけるエンジニアにレベルアップしました。
まだまだSwiftは新しく情報も少ないですが、iOS開発では変数名なんかはほぼ共通なので、Objective-Cのコードを見ながらSwiftで書いていけば何とか書けます。
いい言語だとは思うので、iOS開発なら積極的に使っていきたいです。