SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

翔泳社では、「独習」「徹底入門」「スラスラわかる」「絵で見てわかる」「一年生」などの人気シリーズをはじめ、言語や開発手法、最新技術を解説した書籍を多数手がけています。プロジェクトマネジメントやチームビルティングといった管理職向けの書籍も豊富です。

ITエンジニアとしてのスキルアップ・リスキリングに、ぜひお役立てください。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659429002935-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659429002935-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659429002935-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659429002935-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659429002935-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
Objective-CユーザーのためのSwift入門

Objective-Cより柔軟な新プログラミング言語「Swift」をはじめよう!~開発環境の構築とプロジェクトの作成

Objective-CユーザーのためのSwift入門 第1回


ダウンロード サンプルファイル (5.1 MB)

 本連載では、Objective-Cの基本的なプログラムが出来る読者を対象に、Swiftを使ってアプリを開発する際の基本的な事柄を解説します。Objective-CもSwiftもC言語を母体としたプログラム言語なので両者に共通する概念は非常に多いです。Objective-CとSwiftとの最低限度の違いを踏まえつつ、Swiftでのアプリ開発にシフトして行けるような内容を、サンプルを交えながら解説します。

はじめに

 連載第1回目では、Swiftを使って開発を行う際に必要なツール類と、Swiftのプログラムを試す環境の構築について説明します。Objective-C経験者が初めてSwiftに触れることを前提として、開発環境の構築とSwiftの特徴について説明します。

 対象読者をObjective-Cが分かる方としている関係上、Objective-C自体の言語仕様やXcodeの使い方については解説を割愛する場合があることをご了承ください。同様にSwift自体の説明も必ずしも十分でない場合があります。そのような場合は末尾の参考文献等を参照してください。

対象読者

 本記事は、次の方を対象にしています。

  • Objective-Cの基本的なプログラムが出来る方
  • Xcodeを使える方

Swiftとは

 Swiftとは、AppleのイベントWWDC 2014(2014年6月)で発表された新しいプログラム言語です。従来のObjective-Cに代わる言語として、OS XやiOS向けのアプリケーションの開発に利用できる言語です。Swiftで開発したアプリケーションを利用できるのは、「OS X version 10.9」「iOS 7」以降のOSです。現在、Appleから開発者向けに両OS向けSwiftを利用できる統合開発環境Xcode 6が公開されています。

 Swiftでは、Objective-Cで厳密だった型の宣言やメソッドの定義等が緩和され、コードの作成が容易なスクリプト言語に近い仕様となっています。このため、PHPやRubyでプログラムを学び始めた方にも取り組み易い言語であると言われています。

Swiftの特徴

 WWDC 2014で発表されたSwiftの概要のうち、注目されている点をあげると次のようになります。

(1)型の指定/ポインタの概念/;(セミコロン)の不要

 変数を指定する際に型を指定しなくてもかまいません。また、変数の中身が格納されるメモリ上のアドレスをポインタに格納する/不要になった変数のメモリ割当てを解放する、といった作業は不要になりました。このことはコンパイラが変数の型を補完したりメモリの管理を代わりに行っているためです。同様にプログラムの改行に関してもコンパイラが自動で判断しますので、改行の;(セミコロン)も記述する必要はありません。Swiftではプログラムの記述が簡単になります。

(2)モダンなプログラミング

 型を変数とした型関数を扱うジェネリクス、処理を関数の定義の組み合わせとして記述する関数型プログラミングが可能となるファンクションやクロージャといったモダンなプログラム概念が導入されています。他の言語の便利な点を導入し易くなります。

(3)Objective-Cとの互換性

 SwiftとObjective-Cには互換性があり、SwiftからObjective-Cのコードを呼び出す/Objective-CからSwiftのコードを呼び出すことが可能です。アプリ開発をSwiftで行う場合にも、Objective-Cのライブラリ/クラスを利用することができ、これまでの資産を引き続き活用できます。

(4)高速な動作

 Swiftは、Appleが採用している高速コンパイラLLVMをデフォルトで使用し、相性も非常によいとされています。作成するアプリの内容にもよりますが、Swiftで作成したアプリは、Objective-Cで作成したアプリよりも高速に動作すると期待されています。

 アプリ開発者にとって最も重要なのは(1)の点です。Objective-Cで非常に面倒だった記述が、Swiftでは大幅に簡略化されています。従って、Swiftの学習コストの減少と、Swiftを利用したアプリ開発の生産性の向上が非常に期待されています。

Swiftの新しいデバッグツール

 Swiftでは、プログラムが簡素化されるという前述の点のほかに、デバッグも容易に行えるようになります。Swiftの開発ツールであるXcode 6以降では、Playgroundという簡単なデバッグツールが付属します。左側の領域に記述したプログラムを、右側でインタラクティブに変数の内容を出力したり、処理を実行したりするツールです。

Playgroundの実行の例
Playgroundの実行の例

 上記の例では、変数のstrの内容とa+bの計算結果が右側に出力されています。Playgroundを利用すると、プログラムの一部の処理を手軽にシミュレートできます。

開発環境の準備

 Appleは、新しいOSやツールを公開する前に、β版として正規版の1つ前のバージョンを公開します。iOS 8の公開前にも、iOS 8β版とXcode 6β版が先に公開されSwiftを利用できました。今後、Swiftも含め新しい機能を持ったiOSの公開が予想されますので、本節ではβ版も含めた開発環境の準備について説明します。

 iOSとXcodeのβ版を利用するためには、iOS Developer Programへの登録が必要です。詳細はiOS Developer Programのページで確認できます。

Xcodeの準備

正式版の場合

 App StoreでXcodeを検索してインストールします。

β版の場合

 β版のXcodeは、App Storeからではなく、iOS Dev Center内でのみ配布されます。iOS Dev Centerへログイン後、左上のタブの「iOS 8 beta」を選択し、コンテンツをiOSβ版向けのものに切り替えます。その後、Xcode 6のダウンロードリンクからXcode6本体をダウンロードし、インストールします。

xcode6ダウンロードリンク
xcode6ダウンロードリンク

iOSの準備

正式版の場合

 正式版がリリースされた時点で、「設定」のアイコンにバッジが表示されます。「設定」―「一般」―「ソフトウェアアップデート」と進んで新しいiOSをインストールできます。

β版の場合

 iOSのβ版は、iOS Dev Centerで配布されます。iOSβ版のアーカイブファイルをダウンロードして、実機にインストールします。ダウンロードしたファイルを展開後、実機をUSBケーブルで端末に接続し、iTunesを経由して次の手順で実機にインストールします。

  1. iOS Dev CenterよりiOSのアーカイブファイルをダウンロードし、展開
  2. 実機をUSBケーブルでPC端末に接続
  3. iTunesを起動し、Mac Optionキー/Windows Shiftキー を押しながら「アップデートを確認」をクリック
  4. ダウンロードしたアーカイブファイルを指定し、iTunesから実機にファイルを転送
  5. 実機の画面のオペレーションに従ってインストールを完了

 iOSのインストール作業はMac/Windows端末のどちらでも行えます。Windowsの場合は、アーカイブファイルを展開するためにHFSExplorerというフリーソフトが必要です。

 インストールするiOSはβ版なので、必ずしも全ての機能が安全に使えると保証されているわけではありません。β版を試す場合は、普段電話機として使うiPhoneではなく、機種変更した後の端末やiPod等を利用し、開発用端末を別にしておくのがいいです。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます
  • ・翔泳社の本が買える!
    500円分のポイントをプレゼント

メールバックナンバー

次のページ
Swiftによるアプリ開発

この記事は参考になりましたか?

Objective-CユーザーのためのSwift入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 片渕 彼富(カタフチ カノトミ)

<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8179 2014/12/19 18:53
" ); }

おすすめ

アクセスランキング

  1. 1
    AI生成コードの品質責任をどう果たすか? エンジニアに求められる「検証」へのシフトとテスト自動化の要諦
  2. 2
    国内最大級の転職サイト「doda」は、15年以上稼働するシステムの技術的負債をどう乗り越えたのか?
  3. 3
    「リスト内包表記」 ~マンガでプログラミング用語解説
  4. 4
    Python入門者向けの検定試験「Python3エンジニア認定入門試験」(ベータ試験)の受付が開始 NEW
  5. 5
    Skillsの日本語専用データベース「Agent Skills by ALSEL」が公開
  1. 6
    AMDのGPUプログラミング基盤「ROCm」とは何か──100%オープンソースで挑むソフトウェアスタックの現在地
  2. 7
    OpenAI、「GPT-5.5」をリリース
  3. 8
    量子コンピュータを「実験室の装置」から「コンピュータシステム」へ──大阪大学が描く実用化ロードマップ NEW
  4. 9
    Google、24時間体制でバックグラウンド処理可能な「Gemini Spark」発表 NEW
  5. 10
    C++の新機能を理解する――列挙型と状態チェック関連の機能強化 NEW

アクセスランキング

  1. 1
    AI生成コードの品質責任をどう果たすか? エンジニアに求められる「検証」へのシフトとテスト自動化の要諦
  2. 2
    国内最大級の転職サイト「doda」は、15年以上稼働するシステムの技術的負債をどう乗り越えたのか?
  3. 3
    「リスト内包表記」 ~マンガでプログラミング用語解説
  4. 4
    Python入門者向けの検定試験「Python3エンジニア認定入門試験」(ベータ試験)の受付が開始 NEW
  5. 5
    Skillsの日本語専用データベース「Agent Skills by ALSEL」が公開
  6. 6
    AMDのGPUプログラミング基盤「ROCm」とは何か──100%オープンソースで挑むソフトウェアスタックの現在地
  7. 7
    OpenAI、「GPT-5.5」をリリース
  8. 8
    量子コンピュータを「実験室の装置」から「コンピュータシステム」へ──大阪大学が描く実用化ロードマップ NEW
  9. 9
    Google、24時間体制でバックグラウンド処理可能な「Gemini Spark」発表 NEW
  10. 10
    C++の新機能を理解する――列挙型と状態チェック関連の機能強化 NEW
  1. 1
    Google、4月に発表したGeminiアプリの新機能をまとめて紹介
  2. 2
    仕様駆動開発への期待と誤解 ~「仕様」とは、結局何なのか~
  3. 3
    Googleが「Gemini Embedding 2」を一般公開、マルチモーダル対応
  4. 4
    シニアでも第一線で活躍できるワケ──AWSのDeveloperスペシャリスト福井厚氏が明かす「失敗から学ぶことが良い経験になる」
  5. 5
    OpenAI、「GPT-5.5」をリリース
  6. 6
    国内最大級の転職サイト「doda」は、15年以上稼働するシステムの技術的負債をどう乗り越えたのか?
  7. 7
    「分割代入」 ~マンガでプログラミング用語解説
  8. 8
    Google、エージェント構築を実践的に学習できる無料コースを6月に開催
  9. 9
    高額の技術書がKindleで50%オフのお得なセール 翔泳社の本を対象に5/14まで
  10. 10
    ChromeでGeminiのプロンプトをツール化する「skills」機能が提供開始

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    AI生成コードの品質責任をどう果たすか? エンジニアに求められる「検証」へのシフトとテスト自動化の要諦
  2. 2
    国内最大級の転職サイト「doda」は、15年以上稼働するシステムの技術的負債をどう乗り越えたのか?
  3. 3
    「リスト内包表記」 ~マンガでプログラミング用語解説
  4. 4
    Python入門者向けの検定試験「Python3エンジニア認定入門試験」(ベータ試験)の受付が開始 NEW
  5. 5
    Skillsの日本語専用データベース「Agent Skills by ALSEL」が公開
  1. 6
    AMDのGPUプログラミング基盤「ROCm」とは何か──100%オープンソースで挑むソフトウェアスタックの現在地
  2. 7
    OpenAI、「GPT-5.5」をリリース
  3. 8
    量子コンピュータを「実験室の装置」から「コンピュータシステム」へ──大阪大学が描く実用化ロードマップ NEW
  4. 9
    Google、24時間体制でバックグラウンド処理可能な「Gemini Spark」発表 NEW
  5. 10
    C++の新機能を理解する――列挙型と状態チェック関連の機能強化 NEW

アクセスランキング

  1. 1
    AI生成コードの品質責任をどう果たすか? エンジニアに求められる「検証」へのシフトとテスト自動化の要諦
  2. 2
    国内最大級の転職サイト「doda」は、15年以上稼働するシステムの技術的負債をどう乗り越えたのか?
  3. 3
    「リスト内包表記」 ~マンガでプログラミング用語解説
  4. 4
    Python入門者向けの検定試験「Python3エンジニア認定入門試験」(ベータ試験)の受付が開始 NEW
  5. 5
    Skillsの日本語専用データベース「Agent Skills by ALSEL」が公開
  6. 6
    AMDのGPUプログラミング基盤「ROCm」とは何か──100%オープンソースで挑むソフトウェアスタックの現在地
  7. 7
    OpenAI、「GPT-5.5」をリリース
  8. 8
    量子コンピュータを「実験室の装置」から「コンピュータシステム」へ──大阪大学が描く実用化ロードマップ NEW
  9. 9
    Google、24時間体制でバックグラウンド処理可能な「Gemini Spark」発表 NEW
  10. 10
    C++の新機能を理解する――列挙型と状態チェック関連の機能強化 NEW
  1. 1
    Google、4月に発表したGeminiアプリの新機能をまとめて紹介
  2. 2
    仕様駆動開発への期待と誤解 ~「仕様」とは、結局何なのか~
  3. 3
    Googleが「Gemini Embedding 2」を一般公開、マルチモーダル対応
  4. 4
    シニアでも第一線で活躍できるワケ──AWSのDeveloperスペシャリスト福井厚氏が明かす「失敗から学ぶことが良い経験になる」
  5. 5
    OpenAI、「GPT-5.5」をリリース
  6. 6
    国内最大級の転職サイト「doda」は、15年以上稼働するシステムの技術的負債をどう乗り越えたのか?
  7. 7
    「分割代入」 ~マンガでプログラミング用語解説
  8. 8
    Google、エージェント構築を実践的に学習できる無料コースを6月に開催
  9. 9
    高額の技術書がKindleで50%オフのお得なセール 翔泳社の本を対象に5/14まで
  10. 10
    ChromeでGeminiのプロンプトをツール化する「skills」機能が提供開始