Edited at

【Swift】Swiftって何?

More than 1 year has passed since last update.


はじめに(自己紹介的な)


  • 2018年はSwiftの勉強を中心にやっていくことに決めてみた

  • Swiftに触るのは久しぶり(以前触ったのはたしかVer2になったばかりの頃だった)

  • 正直久々すぎてSwiftの文法とか全然覚えてない

  • Xcodeも触るのが久々すぎて全然覚えてない

  • 自分が欲しいアプリをどんどん作って、自分のiPhoneにどんどん入れていくのが目標

  • 備忘録としてQiitaを活用

  • Qiitaに投稿するのは2年ぶり。Markdownの書き方すら忘れている


Swiftとは


  • Apple社が2014年に発表したiOSおよびmacOS、Linuxで利用できるプログラミング言語

  • 2015年にOSS化

  • 現時点での最新Versionは4(正式リリース:2017年09月19日)

  • コンパイラ言語(静的型付き言語とも言う)

  • フロントエンド、バックエンドともに利用できる

  • 技術情報とコミュニケーションを目的としたカンファレンス「try! Swift」が毎年東京で開催されている


公式サイト

https://www.apple.com/jp/swift/


開発者向け公式サイト

https://developer.apple.com/


公式ドキュメント


英語版

https://developer.apple.com/documentation/


日本語版

https://developer.apple.com/jp/documentation/


Swiftの特徴

Swiftの主な特徴として以下4つが挙げられている。


モダン

プログラミング言語のモダンとは、コードが「読みやすくて書きやすい」ということ。

その実現のためにSwiftは、近年のプログラム言語を研究し、クロージャ、タプル、ジェネリクス、型推論といった機能を取り入れている。


安全

言語仕様レベルでバグが発生しにくい仕様となっている。


  • 静的型チェック

  • nil安全

  • 暗黙的型変換なし

  • ARCのよるメモリ自動管理

  • 配列、数値型のオーバーフロー検査


高速

高速化を目的として開発された言語であり、Appleの発表では一般的な検索アルゴリズムにおいてObjective-Cの最大2.6倍、Pythonの最大8.4倍の速度となっている。


インタラクティブ

コンパイラ言語でありながら、対話実行環境(REPL)も用意されており、XcodeのPlaygroundsやターミナルで簡単にデバッグする事ができる。


Webフレームワーク

OSS化に伴い、多数のWeb開発用のフレームワークが誕生。

以下に主なWebフレームワークを挙げる。(随時追加予定)

フレームワーク名
動作環境
特徴

Perfect
MacOS/Linux
このフレームワークのみで、フロントエンドとバックエンドの両方の開発が可能。また、自身で用意したサーバー環境で使用することができ、自由度が高い

Kitura
Bluemix
"キトゥーラ"と読む。IBM社が発表したフレームワークで、クラウド環境上で動作するWebアプリケーションやWebサーバーを開発することができる

Vapor
MacOS/Ubuntu
"ベイパー"と読む。PHPのフレームワーク「Laravel」に影響を受けたフレームワーク。WEBサイト、REST API、クラウドサービスを作るための便利な機能が提供されている

Express
MacOS/Linux
純粋なSwiftの速度処理の限界を追及した、軽量かつ最速のフレームワーク。MVCモデルを採用しており、拡張性が高い。

HTTPSwiftServer
MacOS
Cocoaフレームワークを拡張するためのフレームワーク。HTTPをiOSアプリと連携出来るように改良されている。シンプルな機能しか提供されてないが、元々Macに組み込まれているCocoaを拡張しているため統合性が高い


その他メモ


  • Objective-Cとシームレスに連携可能