はじめに(自己紹介的な)
- 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」が毎年東京で開催されている
公式サイト
開発者向け公式サイト
公式ドキュメント
英語版
日本語版
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とシームレスに連携可能