システム開発<基本編>開発言語:Swiftの紹介

Swift

前回は、Python3つニュース サイト(Web)に対して新着情報を取得後、音声ファイル

変換して、読み上げ処理を行う記事を紹介しました。

 

今回より、Pythonから少し離れて、Swiftの紹介と開発を行う記事を紹介して行きます。

開発言語:Swiftの紹介

 

Mac環境での開発

前回まで、PythonDBについて記事を紹介して来ましたが、多くの人が仕事プライベート

Windowsパソコンを利用していますで、Windows環境で動作するソフトウェア開発方法・

サンプルについて紹介して来ました。

 

最近では、仕事プライベートMacパソコンを利用する人も増えて来ましたし、

日本では、スマホ(スマートフォン)については圧倒的iPhoneを利用している人が多く、

iPhone上で動作するアプリ(アプリケーション)も普及していますね。

既にMacパソコンを保有の方や、これから購入を検討している方で、インターネットSNS

メールドキュメント作成の利用だけでは、宝の持ち腐れです!!

是非、Apple社製品で動作するソフトウェア開発動画制作等にも、Macパソコン

御利用下さい。

 

iOS開発:3種の神器

Apple社製品で動作するソフトウェア開発(iOS開発)を行うには、最低限、

次の3つを準備する必要が有ります。

  1. Mac環境:専用パソコン
  2. Apple ID:アカウント
  3. Xcode(IDE):統合開発環境

 

Mac環境:専用パソコン

Mac環境には、様々の機種のパソコンスマホが有りますので、紹介しておきます。

  • デスクトップ:iMac/Mac mini/Mac Pro
  • ノートパソコン:MacBook/MacBook Pro/MacBook Air/Power Book/iBook
  • スマートフォン:iPhone
  • タブレット:iPad
  • ポータブルメディアプレイヤー:iPod/iPod touch

上記の中から、ソフトウェアアプリケーションの開発には、デスクトップまたは

ノートパソコンで実装する事になります。

がっちり開発する方や熟練のiOS開発エンジニアでしたら、iMac等のデスクトップ

利用していると思いますが、これからiOS開発を始めようとする方や興味のある方は、

軽くて持ち運びが簡単な MacBook/MacBook Pro/MacBook Air ノートパソコン

の御利用をお勧めします。

 

Apple ID:アカウント

Apple ID は、Apple社が提供している機器オンラインサービスを利用する為に

必要なアカウントです。

既にiPhoneiPadをお持ちの方は、Apple ID を取得していますので、そのまま、

Apple ID を御利用下さい。

別のスマホ(スマートフォン)を利用されている方で、これから、iOS開発を行いたいと

思っている方は、下記のApple社公式サイトから、Apple ID を取得してみて下さい。

 

 

 

Xcode(IDE):統合開発環境

Mac環境での開発言語ですが、前回まで紹介したPythonPHPJavaJavaScript

Ruby等の開発言語も、もちろん開発する事が出来ます。

VB.netC#等のMicrosoft製の開発言語をMac環境で動作させるには、ちょっと工夫が

必要ですが、可能なものの詳細は割愛します。

 

これから紹介する開発言語は、iOSアプリを開発する言語で、Apple社製品

Xcode(IDE:Integrated Development Environment)

という統合開発環境を利用して開発を行います。

  • Objective-C
  • Swift:UIKit(Storyboard)フレームワーク
  • Swift:SwiftUIフレームワーク

Xcode(IDE)は、App Storeから無料でダウンロードしてインストールが出来ますので、

まだお持ちのMacパソコンインストールされていない方は、是非、インストール

してみて下さい。

 

Objective-C

Objective-Cは、プログラミング言語の一種で、C言語ベースSmalltalk型オブジェクト

指向機能を持たせた上位互換言語です。

 

Objective-Cの始まり

Objective-Cは、1983年Brad Cox氏Tom Love氏よって設計されたプログラミング

言語で、コンパイラやライブラリを支援するために、Stepstone社を創立しました。

1985年Apple社を去ったスティーブ・ジョブズは、NeXT Computer社を創立し、

NeXT ComputerNeXTSTEP OSの開発を行いました。

そのマシンのユーザインタフェースは、Display PostScriptObjective-Cで書かれた

Application Kitにより提供され、Objective-CNeXT Computerの主力言語となりました。

1995年には、NeXT Computer社Stepstone社からObjective-C言語と、

その商標に関する全ての権利買い取りました。

1997年初頭Apple社NeXT Computer社を買収し、2001年に登場した

Mac OS XCocoaフレームワークのコア言語として採用されました。

Mac OS X v10.5からは、一部言語仕様の変更が行われObjective-C 2.0と呼ばれます。

 

Objective-Cのウィークポイント

Objective-Cは、Swiftに比べ、開発ノウハウは充実していますが、現在の主流Swiftです。

Swiftに比べ、最大2.6倍のスピードで処理が遅く、変数の空白(nil)に対してチェック

甘いところも、レガシーな開発言語の理由となっています。

 

Objective-Cの詳細

Objective-Cの詳細は、下記の wikipedia のサイトを御参照下さい。

 

 

Swift:UIKit(Storyboard)フレームワーク

Swiftは、iOSMac OS Xソフトウェアアプリケーションを開発するための

オープンソースです。

 

Swiftの始まり

Swiftは、2010年LLVMClangの始祖であるChris Lattner氏によって開発が開始されて、

その後、Apple社内での4年間開発期間を経て、2014年Apple社が開催した

WWDC(Apple Worldwide Developers Conference)で一般に発表されました。

同時にAppleに開発者登録している開発者に対して、ベータ版の提供も開始されました。

 

Swiftの意味と特徴

Swift意味「迅速」「敏捷な」ですが、生き物では「アマツバメ」を指す英単語になり、

Swift「ロゴマーク」となっています。

Apple社が公式に発表しているSwiftの特徴は、下記の4つになります。

  1. モダン:クロージャやタプル、ジェネリックプログラミング、Optional型の採用、型推論など可読性が高く、記述しやすい機能
  2. 安全:バグが発生しにくい言語仕様、静的な型チェック、変数の初期化の強制、数値型のオーバーフローの検査、自動参照カウントによるメモリ管理
  3. 高速:Object-Cよりも最大2.6倍、Pythonよりも最大8.4倍もの高速処理、他の言語に比べて検索アルゴリズムが高速
  4. インタラクティブ(対話形式):コンパイラ言語でありながら、インタプリタとしてスクリプトを実行することが可能、またXcodeでは、コードの実行結果をグラフィカルに確認しながら開発できるPlaygroundsが実装されています

 

Swiftの特徴は、下記の wikipedia のサイトを御参照下さい。

 

 

UIKit(Storyboard)

ここでは、Xcode(IDE)UIKit開発スタイルを紹介します。

iOS13より前をサポートする場合は、UIKitでの実装が必要です。(SwiftUI使えない

開発スタイルは、基本的にStoryboardと呼ばれる画面(View)イメージに、ボタンラベル

テキスト等のUIパーツ(部品)をペタペタ配置して、画面遷移や入出力制御、デバイスとの

通信制御等のコード(ViewController、他)を記述して行きます。

 

下記が、Storyboard画面(View)イメージになります。

VB.netC#で、UI(画面)開発をされた事が有る方なら、イメージが沸くと思います。

但し、Storyboardは、Xcode上画面イメージと同じように見えますが、

実態は、XML形式ファイルのため、XML知識解読が必要になります。

UIKitは、公式ドキュメントだけでなく、コミュニティサポートが手厚いのも心強いです。

後に出て来る SwiftUI との統合も、簡単に出来るのも特徴です。

 

Swift:SwiftUIフレームワーク

SwiftUIは、Appleプラットフォーム向けの新しいフレームワークとして、WWDC 2019にて、

公開されました。

 

SwiftUI

ここでは、SwiftUI開発スタイルを、紹介します。

iOS13より後をサポートする場合は、UIKitとは別に、SwiftUIで実装が必要です。

ここでは、Xcode(IDE)SwiftUI開発スタイルを紹介します。

UIKitと異なり、SwiftUIでは、画面レイアウトも含めて、全てコードで実装する

というのが特徴で、StoryboardViewControllerは使用しません。

 

下記が、SwiftUIコード実装(ContentView)イメージです。

Xcode(IDE)の右側には、画面プレビューを表示していますので、コード実装しながら、

直感的画面イメージが分かるので、とても便利です。

 

SwiftUIは、下記の wikipedia のサイトを御参照下さい。

 

 

SwiftUI と UIKit の比較:一覧表

SwiftUIUIKit比較を、一覧にしてみました。

項目 SwiftUI(2019年:iOS13~) UIKit(2008年~iOS13~)
これから 流行る オワコン
案件 少ないが増えてきている 多いが減っている
参考文献 少ないが増えている 多い
細かいレイアウト
ライブラリ 少ないが増えている 多いが減っている
開発の柔軟さ
Swiftのコード Viewの中にSwiftのコードは書けない。 Viewの中に記述可能
View View:構造体(Struct) UIView:クラス(class)
宣言型で記述する 手続き型で記述する
Declarative Programming Imperative Programming
何を(What)処理するかを記述 どのように(How)処理するか記述
状態の変更 自動的にViewが更新 手動で更新する必要がある
Delegate(移譲) 概念が無い 概念がある
自身のプロパティ デフォルトで変更不可(@state) デフォルトで変更可能
画面レイアウト コードで実装 ViewControllerやStoryboard
コンポーネントと関連 コードで実装 @IBOutlet, @IBAction
変数渡し 値型(値をコピー) 参照型(値を参照)
データバインディング SwiftUI.View自体がMVVMの特性 UIKit.View + MVVM
両フレームワーク間 UIViewRepresentableプロトコル UIHostingControllerクラス
info.plist project名のinfoタブ info.plist
Controller 外部のコントローラーは不要 macOSのCocoaビューの改良版
プラットフォーム iOS、macOS、watchOS、tvOSアプリ iOS専用のフレームワーク
Interface 名称 Swift User Interface User Interface Kit

上記の比較表からも確認出来ますが、Appleプラットフォーム向けフレームワーク

利用した開発スタイルとして、今後は更にUIKitからSwiftUIに移行して行きますので、

SwiftUI中心開発方法・サンプルの記事を紹介しようと思います。

 

まとめ

今回は、Mac環境で動作するソフトウェアアプリケーション開発スタイルについて

紹介しました。

 

Apple社製品で動作するソフトウェア開発(iOS開発)を行うには、最低限、

次の3種の神器を準備する必要が有ります。

  1. Mac環境:専用パソコン
  2. Apple ID:アカウント
  3. Xcode(IDE):統合開発環境

 

また、Xcode(IDE)(iOS開発)を行う開発言語は、次の3つを紹介しました。

  • Objective-C
  • Swift:UIKit(Storyboard)フレームワーク
  • Swift:SwiftUIフレームワーク

 

Appleプラットフォーム向けフレームワークを利用した開発スタイルとして、今後は

SwiftUIが普及して行きますので、SwiftUI中心開発方法・サンプルの記事を

紹介しようと思います。

 

次回は、SwiftUIQRコードを生成するアプリケーションを開発する記事を

紹介しようと思います。

 

 

コメント

タイトルとURLをコピーしました