見出し画像

Swiftについて_2020/10/16

※このNoteは自分がSwiftについて調べたことを
 書いた備忘録的なものです。

Swiftとは

Swiftは2014年にApple社から
発表されたオープンソースのプログラミング言語です。
Swiftとは本来[アマツバメ]という鳥の事で、
「素早い・迅速な」という意味があります。
SwiftはiOSやMac向けの言語で、
AppleのiOS7以降からOS X version 10.9以降までの
OSを搭載しているデバイスの全てのアプリケーションを、
Swiftで開発することができ、
Apple TV・Apple Watchなどのアプリ作成が可能です。


iOSとMac OSでは
ハードウェアとソフトウェアの両方を
Appleが制作しています。
それゆえに、Swiftであればディスクやメモリといった、
コンピューターの深い部分や
ハードウェアに関わるアプリ開発ができます。
オープンソースプログラムのため、
Swiftで開発したアプリケーションは
全てソースコードが公開されています。
これにより第三者でも自由に閲覧・編集できる為、
作成したアプリをApp Storeで配信することも可能です。

これまで、Apple アプリ開発にはObjective-Cという
言語を使っていました。
しかしこの言語は他言語と異なっている点がある為、
複雑で習得が難しい言語でした。
それで開発を簡単なものにし、習得者を増やすために
Swiftが作られました。
SwiftはObjective-Cに比べ、見た目がシンプルで
RubyやPHPなど最新の設計思想を盛り込んでいてスクリプト言語のように簡単にアプリを開発することができる上、
初心者にも学習しやすいように作られており
Objective-CやObjective-C++・C言語との
混在や移行も可能です。
下にさらに詳しく書いてあります↓

Swiftの特徴

Swiftの主な特徴についてご紹介します。
上記で説明したことの詳細も載っています。

●学習しやすさ

Objective-Cは他の言語と比較して
学習コストがそれなりにありましたが
Swiftは違います。
SwiftにはObjective-C、Ruby、Python、Javaなどの
言語の特徴が少しずつ見られ、
さまざまな言語の要素や良いところを少しずつ取り入れて
よりわかりやすく学習しやすい言語に工夫され、
またスクリプト言語の設計も採り入れています。
具体的には、型の指定が必要ないことや
セミコロン(;)が必要ないことなどがあげられます。
メモリの解放もコンパイラが行ってくれるので
コードに書く必要がありません。

●軽量に動作する

SwiftはLLVMと呼ばれる高速なコンパイラを採用しています。
そのため、Objective-Cよりも最大で2.6倍
Python 2.7よりも最大で
8.4倍のスピードアップが可能と発表されています。
スマホの普及によって情報量も増えていますから
アプリが軽快に動作することは大きなメリットになりますね。

●他の言語との相互性

Swiftには、
これまでiOSやMacの開発に使われてきたObjective-Cとの互換性があり
Objective-C++やC言語とも混在が可能です。
SwiftとObjective-Cとの間でAPIを共有したり、
Objective-Cの間のフレームワークをSwiftにインポートしたりと
シームレスに使用できます。

●Playgroundの実行環境

Swiftには「Playground」と呼ばれる機能があり、
コーディング中に動作やロジックを確認できます。
これまでのObjective-CやC言語では、
修正するごとに毎回システムやアプリケーションを
実行しなければなりませんでした。
しかし、Playgroundを使うとコーディングしながら
リアルタイムで確認できるため、修正箇所がわかりやすく、
開発時間が短縮できます。

●Swift とObjective-Cとの違い

Swiftには、Objective-Cと違うところがいくつかあります。
これまでObjective-CでAppleのアプリケーションを開発していた人は、
注意が必要です。

<文字型を宣言する必要がある>

Swiftでは、変数や定数の名前に続けて
「”](ダブルクォーテーション)
で囲んだ文字列を代入して型を宣言します

Objective-Cのように変数や定数の型を推論してくれることはありません。変数や定数の内容が宣言した型と異なるとエラーが発生します。

<配列やディクショナリに制限はない>

Objective-Cでは配列やディクショナリに
格納できるのはObjectだけでしたが、
Swiftでは配列やディクショナリに格納するものに制限はありません。

<「;」セミコロンが必要ない>

Swiftでは行末に「;」セミコロンが必要ありません。
改行はコンパイラが自動で判断します。
複数行にわたる文は自動的に改行なしと判断してくれます。
ただしfor文など改行以外の意味のある「;」は省略できません。

<「null」を代入できない>

Swiftでは変数の値としてnull(空データ)を代入できません。
Objective-Cではnullを代入しても無視されますが、
Swiftではエラーが発生し、潜在的なバグとしてリスクが残ります。
Swiftのこの特徴は一見面倒ですが、高い安全性につながっています。


開発に必要なもの

Swiftの開発にはMacがおすすめです。
SwiftはAppleが作った言語ですが、
現在はWindowsでも開発ツールを利用して
Swiftの実行環境を用意することができます。
しかし、デバッグの配布やApp Store公開などを考慮すると
開発効率はMacのほうが有利でしょう。

●Swiftでの開発に必要なもの

<Apple ID>

Apple IDはAppleのサービスを利用するためのIDで、
iTunes StoreでのiPhoneアプリや
音楽の購入に使っているものと同じです。

<Xcode>

XcodeはSwiftの開発ツールです。
Mac App Storeの「開発ツール」カテゴリから
無料でダウンロードできます。
Xcodeをダウンロードするには、Apple IDが必要です。
Xcodeをダウンロードしたら、常に最新の状態にしておきます。
ただし開発中のアプリケーションがある場合は、
仕様変更などを確認してからバージョンアップしましょう。

<Developer ID>

自分で開発したアプリケーションをApp Storeで配布するときには、
Apple Developer Programに登録が必要です。
年間11,800円のメンバーシップ料金がかかりますが、
Apple Developer Programに登録すると、
マルウェアで改ざんされない安全なアプリとして
Developer IDの署名を入れたり、
アプリケーションをiPhone、iPad、Apple Watchなどの
実機でテストを行ったりすることができます。
ですが作成したアプリケーションを
自分の開発環境の中でテストするだけなら、
登録する必要はありません。

メリット

プログラミング経験者でも、新しい言語の取得には手間がかかります。
数多くあるプログラミング言語の中から、
Swiftを学習するメリットをご紹介します。

●Apple製品共通のプログラミング言語

一般的にWebサイトやアプリケーションの環境、
デバイスなどによって開発言語は変わります。
しかし、Appleのデバイス用のアプリはすべてSwiftで開発できるため、
一度覚えるとApple製品のすべてを扱うことができます。
また、ほかの言語でWebアプリケーションを作成するときには
JavaScriptやJavaなどのプログラミング言語だけでなく、
HTMLやCSSも覚える必要があります。
しかし、SwiftならSwiftとXcodeだけで
アプリケーションの開発が可能です。

●安定的な将来性

iOSやMacのアプリケーション開発以外にも、
さまざまな企業でSwiftを導入する動きが高まっており、
GoogleやFacebookではSwiftに対応した
SDK(開発キット)を提供しています。
また、Google は、現在Android用アプリをJavaで開発していますが、
著作権などの問題があるため、
オープンソースのSwiftをAndroidのfirst-class language(第1級言語)に
する方向性を打ち出しています。
Swiftはオープンソースなのでどの企業でも使いやすく、
Apple製品だけでなく汎用的に利用されていく可能性があります。
また、Objective-C経験者なら、
書き方を覚えるだけでSwiftに移行できます。
記述はObjective-Cよりもシンプルになり、
ファイル数も少なくなるのでコードが書きやすくなります。
Objective-Cの既存のライブラリをコンバートツールで
Swiftに変換したり、Objective-CのライブラリをSwiftで利用したり、Objective-CからSwiftを呼び出すこともできます。

今のところはこんな形でしょうか、、、、、、

今後も調べていることで書くべきだと思ったことを
書いて行こうと思います。

この記事が気に入ったらサポートをしてみませんか?