MacでSwift5を使用してアプリを作成する方法
Swiftは、iPhone、iPad、Mac、AppleWatchなどのアプリやゲームを作成するために使用されるプログラミング言語です。 AppleはSwiftを明示的に設計して、デバイスから最速かつ最も効率的なパフォーマンスを実現し、Swift5はすでに印象的な機能セットを拡張しています。この記事では、Swift 5の使用方法を示し、その理由を説明し、このバージョンの言語のすべての新機能の概要を説明します。
思い切ってやりたい場合は、Swift 5の使用を開始する方法に進んでください。また、より広い概要については、macOSで使用できるさまざまなコーディング言語を紹介するMacプログラミングの完全ガイドをご覧ください。
Swift5の概要
Swift 5は、Appleが開発したプログラミング言語であり、開発者はiOS、macOS、tvOS、watchOS用のアプリを作成できます。
5番目のバージョンは2019年3月にXcode10.2と一緒にリリースされました-後のセクションでSwift5の新機能について説明します-しかし、Swift言語はしばらくの間続いています:Swift1.0は2014年9月にリリースされました。Appleによると、SwiftはObjective Cの最大2.6倍、Pythonの最大8.4倍高速です。
Swift5でコーディングする必要があるのはなぜですか?
1)Swiftはオープンソース 。オープンソースとは、通常、プログラムまたはプログラミング言語の背後にあるソースコードが一般に公開されていることを意味します。その後、コーダーは必要な場所でプログラムを検査、変更、および展開できます。
Appleのオープンソースページには次のように書かれています。「Appleは、オープンソース手法を使用することで、macOSがより堅牢で安全なオペレーティングシステムになると信じています。そのコアコンポーネントは、何十年にもわたってピアレビューのるつぼにさらされてきたからです。」
2)Swiftは習得が容易 。 Appleは、使いやすい言語を構築しました。構文は理解しやすいので、初心者にとっては理想的な言語です。以前にソフトウェアを開発したことがある場合は、Swiftの構文と概念がすでに使用しているものと非常に似ていることに気付くでしょう。
3)Swiftは高速 。 Appleは、Swiftの検索アルゴリズムはObjective-Cの最大2.6倍、Pythonの最大8.4倍高速であると主張しています。
4)Swiftは安全 。この言語を使用する場合、安全でないコードに遭遇することはなく、アプリに必要なセキュリティを維持するために最新のプログラミング規約を使用します。
5)遊び場 。 Xcodeには、Swift 5プログラマーがコードを記述して、結果をすぐに確認できるプレイグラウンドと呼ばれる機能が付属しています。 SwiftPlaygroundsの使い方は次のとおりです。
6)Swift5は将来を見据えた 、iOS、macOS、watchOS、tvOSなどのさまざまなプラットフォーム向けに開発できます。
7)Swiftは絶えず改善しています 更新のたびに。 Swift 5は待望のABIの安定性をもたらしました。つまり、将来のSwiftコンパイラーはSwift 5以降で記述されたコードをコンパイルできるようになり、コードを新しいバージョンのSwiftに移行することは開発者にとってそれほど苦痛ではなくなります。これは、OSベンダーがSwift標準ライブラリをオペレーティングシステムに組み込むことができ、Swift5以降のバージョンで構築されたすべてのアプリケーションと互換性があることも意味します。
WWDC2019ではSwiftの開発がさらに増える可能性があります。
Swift5の使用を開始する方法
iOS用のアプリを開発するには、Mac(MacBook、iMac、またはMac mini)とXcode(バージョン10.2以降)と呼ばれる無料のソフトウェアが必要です。開始するには、以下の手順に従ってください:
- デスクトップでMacAppStoreを開きます。
- 検索バーで「Xcode」を検索します。
- Xcodeアイコンの横にある[取得]をクリックします。
- XcodeはMacAppStoreのブラウザでも見つけることができます。
オンラインコンパイラ
アプリのデプロイを計画していない場合は、いつでもSwiftオンラインコンパイラを使用できます。これは、Swiftコードを学習して実行するための優れた方法です。
- Online SwiftPlaygroundはSwift5をサポートしており、コードをテストして実行できます。
- Repl.itには、執筆時点(2019年5月)でSwift 4.2をサポートするオンラインコンパイラがありますが、まもなくアップデートが予定されています。
Swiftで簡単なアプリを作成する方法
Xcodeを開き、ファイル>新規>プロジェクトを選択します 。 シングルビューアプリを選択します テンプレートリストから。
アプリの名前と組織名を入力します(これは会社名または自分の名前にすることができます)。組織IDは通常、逆の順序で会社のURLになります(例: com.mycompany.myapp )。 。
言語としてSwiftを選択し、次へをクリックします 。最後に、Xcodeでプロジェクトを作成するMac上の場所を選択します。
プロジェクトを作成すると、次の画面が表示されます。
ここでは、ユーザーがテキストフィールドに名前を入力し、ボタンを押すと簡単な挨拶を受け取ることができるシンプルなアプリを開発します。
開始するには、 Main.storyboardに移動します 左ペインのファイル。空のビューが表示されます。右上隅にある丸いボタンをクリックして、オブジェクトライブラリを開きます。テキストフィールド、ラベル、ボタンをビューにドラッグします。
ビュー階層のボタンを選択し、右側のユーティリティ領域でそのタイトルを「挨拶の生成」に設定します。
ViewController.swiftをダブルクリックします ファイル。別のウィンドウで開きます。
次に、ビューでテキストフィールドを選択し、 Ctrlを押したままにします。 ViewControllerの上部にドラッグします クラス。テキストフィールドのIBOutletを作成するように求められます。それを「textField」と呼びます。
ラベルについても同じことを行い、IBOutletに「ラベル」という名前を付けます。ボタンについても同じことを行う必要がありますが、ボタンを ViewControllerの上部にドラッグする代わりに 、それを一番下にドラッグして、IBActionメソッドを作成します。メソッドに「buttonTapped」という名前を付けます。
IBOutletsは、コード内のストーリーボードのコントロールにアクセスするために使用され、IBActionメソッドは、タップなどのボタンイベントに反応するために使用されます。
buttonTappedに次のコードを追加します ViewControllerのメソッド クラス:
if let name =textField.text {
self.label.text="こんにちは"+名前
}
これらの変更後のViewController.swiftファイルは次のようになります。
これで、アプリを実行する準備が整いました。実行ボタンを押すと、アプリがシミュレーターで起動します。
ユーザーがテキストフィールドに自分の名前を追加してボタンをタップすると、下部のラベルに、入力した名前とともに「こんにちは」と表示されます。
Swift 5の概念(基本および高度)
シンプルなアプリを作りました。それでは、独自のアプリプロジェクトで使用できるいくつかのメソッドとコードスニペットに移りましょう。
Swiftでテキストを印刷する
print( "Hello、world!")
変数の定義
'let'を使用して定数を作成し、'var'を使用して変数を定義します。定数の値は、一度割り当てられると変更できません。変数の値は変更される可能性があります。ユーザーは必ずしも型を明示的に記述する必要はありません。定数または変数を作成するときに値を指定すると、コンパイラはその型を推測できます。
constVar=42とします
var numberVar =27
開発者はタイプを指定することもできます。以下の例では、整数を宣言しています。
var numberVar:Int =27
Swiftのコメント
Swiftのコメントには2つのタイプがあります。
単一行:
//これはコメントです
複数行のコメント:
/*これはです
複数行のコメント*/
Swiftでの意思決定
ifステートメントの構文 Swiftの場合は次のとおりです。
if boolean_expression {
/*ブール式がtrueの場合にステートメントが実行されます*/
}
例:
if...elseステートメントの構文 Swift5の場合は次のとおりです。
if boolean_expression {
/*ブール式がtrueの場合にステートメントが実行されます*/
} else {
/*ブール式がfalseの場合にステートメントが実行されます*/
}
例:
if ... else if...elseステートメントの構文 Swift5の場合は次のとおりです。
if boolean_expression_1 {
/*ブール式1がtrueの場合に実行されます*/
} else if boolean_expression_2 {
/*ブール式2がtrueの場合に実行されます*/
} else if boolean_expression_3 {
/*ブール式3がtrueの場合に実行されます*/
} else {
/*上記の条件のいずれにも当てはまらない場合に実行されます*/
}
例:
Switchステートメント
以下は、Swift 5で使用可能なswitchステートメントの一般的な構文です。ここでフォールスルーを使用すると、次のケースの実行が続行され、Switchステートメントから出力されます。
スイッチ式{
ケース式1:
ステートメント
フォールスルー/*オプション*/
ケース式2、式3:
ステートメント
フォールスルー/*オプション*/
デフォルト:/*オプション*/
ステートメント);
}
例:
配列
角かっこ(つまり[と])を使用して配列と辞書を作成し、かっこ内にインデックスまたはキーを書き込んでそれらの要素にアクセスします。次の行で配列を作成します。
var arrayList =["Swift"、 "JavaScript"、 "Java"、 "PHP"]
配列の2番目の要素にアクセスして変更するには、次のように直接記述できます。
arrayList [2] ="React Native"
空の配列を作成するには、初期化構文を使用します。
var emptyArray =[String]()
emptyArray =[]
辞書
var occupations =["Steve": "Developer"、 "Kate": "Designer"、]
辞書の値にアクセスして変更するには、次のように直接記述できます。
職業["スティーブ"]="CTO"
空の辞書を作成するには、初期化構文を使用します。
職業=[:]
セット
Swiftのセットは配列に似ていますが、一意の値のみが含まれています。
var a:Set =[1,2,3,4,5,6,7,8,9,0]
Swiftでは、値の不在を処理するOptionalsタイプも導入されています。オプションは、「値があり、それがxに等しい」または「値がまったくない」のいずれかを示します。 '?'でオプションを定義できますまたは'!'
var myString:String?
「?」値が存在する場合と存在しない場合があることを意味します。
'!'つまり、値は最初はnilになる可能性がありますが、将来使用するときは値を指定する必要があります。そうしないと、ランタイムエラーが発生します。
符号がないということは、変数がオプションではなく、値を割り当てる必要があることを意味します。そうしないと、コンパイラエラーが発生します。
機能
以下は、Swiftで関数を作成するための構文です。inputNumはパラメーター名の後にDataTypeが続き、「createStr」は関数の名前です。 '->文字列'は戻りタイプを示します。この関数は整数を入力として受け取り、それを文字列に変換して返します。
func createStr(Number inputNum:Int)->文字列
{
return "\(inputNum)"
}
この関数は、次の構文を使用して呼び出すことができます。
createStr(Number:345)
クラス
クラスカーを作成するための構文は次のとおりです。オプションのメンバー変数numOfPersonsと関数displayDetails()
があります
クラスカー
{
var numOfPersons:Int?
func displayDetails(){
}
}
クラスインスタンスは、次の行を使用して作成できます。
var myCar:Car =Car()
'numOfPersons'変数は、次のように初期化できます。
myCar.numOfPersons =5
Swiftのクロージャ
クロージャは、ブロックとして編成され、C言語やObjective-C言語のようにどこでも呼び出される無名関数です。クロージャは変数に割り当てることができます。以下は、Swiftのクロージャの構文です。
{
(パラメータ)->戻り値のタイプ
ステートメント
}
以下は簡単な例です。ここでは、変数 scnameにクロージャを割り当てています。 。次に、次の行で、変数名を呼び出してクロージャを呼び出しています。
拡張機能
Swiftでは、拡張機能を使用して、既存のクラス、構造、または列挙型の機能を拡張できます。タイプ機能は拡張機能で追加できますが、この方法で機能をオーバーライドすることはできません。
次の例では、クラスの車があり、車に拡張機能を追加して、別のプロパティを追加しています。 speedプロパティにアクセスしている間、クラスに属しているかのように直接アクセスできます。
タプル
タプルタイプは、複数の値を1つの複合値にグループ化するために使用されます。タプル宣言の構文は次のとおりです。
var TupleName =(Value1、value2、…任意の数の値)
タプル宣言は次のとおりです:
var error501 =(501、 "実装されていません")
Swift5の新機能
Swift5の新しい要素について詳しく見ていきましょう。
生の文字列
Swift 5は、生の文字列を提供します。これは、以前のSwiftバージョンのようにエスケープシーケンスを使用しなくても、引用符と円記号を含む文字列を簡単に作成できる機能です。生の文字列では、引用符と円記号は、文字列の終了文字やエスケープ文字として解釈されるのではなく、文字通りそれらの記号として解釈されます。
生の文字列を使用するには、#を追加するだけです。 文字列の最初と最後:
生の文字列のバックスラッシュはリテラル記号として解釈されるため、生の文字列で文字列補間を使用するには、別の#を追加する必要があります バックスラッシュ記号の後:
"#を使用する必要がある場合 ##を追加する必要がある生の文字列内で一緒にシーケンス 文字列の最初と最後:
整数の倍数を見つける
Swift 4.2以前のバージョンでは、数値が別の数値の倍数であるかどうかを確認するには、モジュロ演算子(%)を使用する必要があります。 Swift 5には、そのための専用のメソッドがあり、コードがはるかに明確になります。
将来の列挙型ケースの処理
Swiftのswitchステートメントは常に網羅的でなければなりません。つまり、デフォルトを追加して、常にすべての列挙型ケースを処理するか、特定のケースのみを処理する必要があります。 他のすべてのケースを処理するケース:
このアプローチの問題は、将来、開発者が列挙型に別のケースを追加することを決定した場合、新しいケースが追加されたことをコンパイラーが警告しないことです。これは、新しいケースがデフォルトによって処理されることを意味します 必ずしもあなたが望むものではない場合。
この問題に対処するために、新しい @unknown Swift5で属性が追加されました。この属性はデフォルトの場合と一緒に使用します。
@unknownを使用 switchステートメントのデフォルトのケースでは、将来新しいケースが列挙型に追加された場合、コンパイラーは警告を発行します。このようにして、開発者は新しいケースを処理するかどうかを決定できます。
ネストされたオプションのフラット化
ネストされたオプションは、 try?を使用してスローするコードを処理することで作成できます。 。 Swift 5では、ネストされたオプションは通常のオプションにフラット化されます。これは、条件付き型キャストとオプションの連鎖の動作と一致します。
上記の例では、モデル 変数のタイプは文字列? 文字列??ではありません Swift4.2のように。
標準ライブラリの結果タイプ
Swift 5では、結果 タイプが標準ライブラリに追加されました。 結果 typeは、非同期コードのエラーを処理するためのクリーンでシンプルな方法を提供します。 成功の列挙型として実装されます および失敗 ケース。どちらの場合も、ジェネリックを使用して実装されます。 成功 失敗の間、ケースには任意のタイプの値を関連付けることができます ケースには、エラーに準拠する値が関連付けられている必要があります プロトコル。これは、結果の使用法を示す例です。 タイプ:
上記の例では、単純な ApiClientを実装しています。 URLから名前を取得します。 fetchNamesの2番目のパラメータに注意してください 関数は、結果を受け入れる完了クロージャです タイプ。 結果 この例のタイプは[String]を使用します 成功事例とApiError 失敗した場合。
これで、上記のコードを次のように使用できます:
以前のバージョンのSwiftの最新バージョンの新機能を確認しました。ただし、古いバージョンから存続する機能については、まだ知っておく価値があります。 Swift4で追加されたいくつかのハイライトは次のとおりです。
文字列
Swift 4以降、StringはCollectionプロトコルに準拠しており、Stringを直接反復処理できます。これは、count、isEmpty、map()、filter()、index(of:)などの任意のCollectionメソッドとプロパティをStringで使用できることも意味します。
Swiftは、代わりに三重引用符を使用することにより、複数行の文字列に対してまったく異なるアプローチを採用しているため、二重引用符をエスケープする必要はありません。
JSONのエンコードとデコード
Swift 4は、Swift 3で使用していたJSONのアーカイブとシリアル化のプロセス全体を簡素化しました。これで、カスタムタイプにCodableプロトコルを実装させるだけで済みます。これはEncodableとDecodeableの両方を組み合わせたものです。
よりスマートなキーパス
Swift 4を使用すると、キーパスを使用してオブジェクトのプロパティに簡単にアクセスできます。
クラスとプロトコルの混合
定数と変数を作成するときに、Swift3でプロトコルを組み合わせることができます。 Swift 4はさらに一歩進んで、同じ構文を使用してクラスをミックスに追加できるようにしました。 Objective-Cと同じように、特定のオブジェクトをクラスとプロトコルに1回だけ制約できます。
スワップとswapAt
スワップ(_:_ :) Swift 3のmutatingメソッドは、特定の配列の2つの要素を受け取り、その場でそれらを交換します。このソリューションには、大きな欠点が1つあります。スワップされた要素が入力パラメーターとして関数に渡されるため、直接アクセスできるようになります。
Swift 4は、メソッドを swapAt(_:_ :) に置き換えることで、まったく異なるアプローチを採用しています。 これは、2つの要素の対応するインデックスを取得し、以前と同じようにそれらを交換します。
辞書とセット
辞書のinit(uniqueKeysWithValues :)を使用できます タプル配列から新しい辞書を作成するための初期化子。
Swift5プログラミングについてさらに学ぶのに最適な場所
Swift5を使用してアプリの作成を開始するのに役立つリソースが多数あります。最良のオプションのいくつかを以下に示します。
Appleドキュメント: Swift 5を学ぶのに最適な場所は、Swiftに関するAppleの公式ドキュメントです。
電子書籍: Appleは、Swift 5:Swiftプログラミング言語(Swift 5.0)を学習するときに非常に役立つ最新のeBookをリリースしました。
Udemy :最大のオンラインビデオ学習サービスには、Swiftのさまざまなバージョンをカバーするいくつかのコースがあります。 Swift5をカバーするものをいくつか紹介します。
- 初心者向けのSwift5プログラミング
- iOS12とSwift5:ToDoリストアプリを作成する
簡単な手順でのSwiftプログラミング-iOS12とSwift5をカバー: この記事の著者によるこの本は、Swift 5を使用してiOSアプリを最初から作成する方法を説明し、完全に説明されています。アマゾンからコピーを入手できます。
Swiftによるハッキング: Swiftを使用した開発について学ぶための優れた方法は、Hacking withSwiftWebサイトの書籍を使用することです。これは、Swiftの優れた開発者であり愛好家でもあるPaulHudsonによって管理されています。
別の記事「Swiftの学習方法」にさらに多くのリソースがあります。
-
Parallels 15 を搭載した Mac に Windows をインストールする方法
仮想マシンは、別のオペレーティング システム (macOS 10.15 内の Windows 10 など) 内でオペレーティング システムのインスタンスを実行するソフトウェアの一部です。 Mac で Windows を実行する方法はこれだけではありません (Mac 独自の BootCamp もあります) が、BootCamp とは異なり、仮想マシンでは 2 つの OS を同時に実行できます。 Parallels Desktop は、おそらく macOS 用の最も人気のある仮想化ソフトウェアです。最小限の労力と技術的知識で Windows またはその他のオペレーティング システムを Mac にイ
-
削除できない Mac 上のアプリを削除する方法
Mac に新しいアプリケーションをインストールするのは非常に簡単な作業であり、不要になった場合でも、アンインストールすることで最終的に取り除くことができます。これは簡単で注意しやすいように見えるかもしれませんが、アンインストールの一部のケースでは、頑固なアプリやその残りのデータが本来あるべきように削除されません。彼らのタグだけがシステムで実行され、あなたに知らせずにあなたの貴重なスペースを乗っ取ってしまいます. これが直面している場合は、システムの再起動から始めて、アプリケーションをもう一度削除してください。この後も意地っ張りが生きていれば行きましょう! 手動で Mac 上のアプリを削除する