LoginSignup
5

More than 5 years have passed since last update.

(個人的に) ここが好きだよ!Swift (愛好会)

Posted at
1 / 18

これはSwift愛好会 Advent Calendar 2016 1日目の投稿です。


みなさん、飲み物は持ちましたか?


乾杯🍻


(これがやりたかったので、スライドモード)


本題


  • 何気にSwiftを始めた最初の勉強会はSwift愛好会だった
  • Swiftを始めて1年経った
  • 他言語界隈にいる時に、「なぜSwiftが好きなのか」をよく聞かれるので言語化しようと思った

以上3点から、個人的にSwiftの好きなところを書こうと思います。


好きなところ

  • 言語自体
    • 型が厳格
    • Switchが強力
    • 関数型が使える
    • 言語自体のアップデートが早い
  • 環境要因
    • コミュニティが活発
    • 質問に答えてくれる土壌がある

言語自体


型が厳格

  • 兎にも角にもこれが1番
    • 厳格と言っても、Objetive-CのNSStringNSMutableStringのような分離はしていないこともよい
  • 少し前に賑わっていたnull安全も、型がしっかりとしていることがベースになっている気がする
    • 必ずしもnull安全がすべてを解決してくれる訳ではないが、Objective-Cを使っていた頃より明らかに楽できるようになった

Swiftは型に始まり、型に終わると言ってもいいと思う


Switchがかなり強力

  • break 書かなくていいのはかなり好き
  • Castもできる書き方も好き
let any = 1 as Any

let int: Int = {
    switch any {
    case let intValue as Int: return intValue
    case let stringValue as String: return Int(stringValue) ?? 0
    default: return 0
    }
}()

Enumとの組み合わせやPatternMatchと用途が広いので、用法用量を守ることが大切だとは思う


関数型が使える

  • 一時変数を置いたりすることなく、簡潔に処理することが可能になり、気持ちいい
  • 慣れるまでは違和感があったが、一旦覚えるとを組み合わせて解決できないか考えるようになった

個人的には reduce が使えるとヨッシャ•̀.̫•́✧


言語自体のアップデートが早い

(これは賛否両論あるとは思うが)

  • 開発が早いだけでなく、負債や変更の影響度を考慮しつつ、よくしていこうという意図が感じられる
  • swift-evolution のProposalを追っていくだけでも楽しめる
  • 毎日知らないことを知れてとてもいい

環境要因


コミュニティが活発

  • 各所で勉強会が活発!!!!!
    • 勉強会後の繋がりもあることが多い
  • try!Swiftのような世界規模のカンファレンスがある
    • (後発言語の中では珍しいのでは)

質問に答えてくれる土壌がある

(コミュニティにも付随しますが)

  • 答えてくれる方々が多い
    • Twitter
    • Slack
    • etc...
  • アーキテクチャ等を議論、相談したもできる
  • (社内にiOSアプリエンジニアがほぼ自分1人なので、社外に聞ける人たちがいるのは、個人的に非常にありがたい)

まとめ

1年やってみて、今まで触れてきた言語の中で1番好きだと断言できます。(もちろん不満点もありますが...)
とは言っても毎日書くようになったのは9ヶ月弱で、まだまだ日々発見という感じなので、1年後はさらに好きなところが増えているといいですね!

ここに挙げた以外にもSwiftのいいところはあると思うので、ぜひ「私はここが好き!」というものをコメントしてください!


ということで、Swift愛好会 Advent Calendar 2016 1日目でした。
1年間ありがとうございました!
来年もよろしくお願いします!

この記事とは関係ないですが、最近Genericsの使い方で悩むことが多いので、いいお手本があれば紹介ください

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5