Swift Macアプリ開発入門


Swift Macアプリ開発入門―次世代iOS、macOSプログラマーのための


カットシステム


著者:中山茂


はじめに

第1章 Swift言語と統合開発環境Xcode
1.1 Swift言語
1.1.1 Swift言語の特徴
1.1.2 Cocoaフレームワーク
1.2 統合開発環境Xcodeのダウンロードとインストール
1.2.1 Xcodeのダウンロード
1.2.2 Xcodeのインストール
1.2.3 Xcodeプロジェクトの作成
1.2.4 MacアプリとしてCocoaアプリケーションの作成
1.3 統合開発環境Xcode
1.3.1 Welcome to Xcodeの起動画面
1.3.2 Xcodeのテンプレート
1.3.3 Command Line Toolアプリケーションの作成
1.3.4 Gameアプリケーションの作成
1.3.5 Xcodeのワークスペース
1.3.6 プロジェクトの初期設定
1.4 はじめてのMacアプリ作成
1.4.1 MacアプリのMVC構造とイベント処理
1.4.2 プロジェクトファイル構成
1.4.3 Macアプリ動作の流れ
1.4.4 はじめてのMacアプリのコード入力
1.4.5 macOSでのウインドウ座標系
1.5 Xcodeでプログラム作成上の留意点と参考文献

第2章 インタフェースビルダーによるMacアプリ開発の基礎
2.1 MacアプリのAppKitクラス
2.2 コード入力不要なMacアプリの作成
2.2.1 Labelによるはじめての文字列表示のMacアプリ
2.2.2 Image Viewによるはじめての文字列表示のMacアプリ
2.2.3 アイコン画像のあるボタン表示のMacアプリ
2.2.4 テキストを読み上げるMacアプリ
2.3 アシスタントエディタによるOutlet接続とAction接続
2.3.1 はじめてのSwiftコードによるイベント処理のMacアプリの作り方
2.3.2 Outlet接続とAction接続
2.3.3 ConnectionsインスペクタによるOutlet接続とAction接続の確認方法
2.3.4 SwiftコードからNS部品へOutlet逆接続とAction接続
2.4 NSButtonクラスによるボタンのイベント処理
2.4.1 ボタンクリックで背景色を変えるイベント処理
2.4.2 複数ボタンに対するアクション設定
2.4.3 ボタンで背景色をアニメーションで変えるイベント処理
2.5 写真表示のあるアプリ
2.5.1 コード指定された写真を表示するMacアプリ
2.5.2 複数画像表示のアプリ
2.5.3 ボタンによる画像の表示・非表示処理
2.5.4 ボタンによる図形の表示・非表示処理
2.6 テキスト行やアラート、メニュー、ポップボタンのあるMacアプリ作成
2.6.1 テキスト行入力による足し算アプリ
2.6.2 ボタンのアラート
2.6.3 ボタンのアラートによる設問アプリ
2.6.4 メニューのアクション設定
2.6.5 ポップアップボタンのイベント処理

第3章 NS部品を用いたMacアプリ開発
3.1 画像表示のためのボタンによるイベント処理
3.1.1 ボタンクリックによる画像表示とボタンタイトルの変更
3.1.2 ComboBoxによる写真の選択表示
3.1.3 画像上に図形を表示する
3.1.4 グラディエーション背景に文字列表示のあるアプリ
3.2 スライダー表示
3.2.1 いろいろなスライダー表示
3.2.2 スライダーで円の半径を変える
3.2.3 スライダーとボタンのイベント処理を1つのメソッドで行う
3.2.4 スライダーでリサージュ周期を変える
3.2.5 スライダーで棒グラフ表示
3.2.6 垂直スライダーでRGBカラー合成

第4章 オーディオ、マップ、WebブラウザのMacアプリ作成
4.1 オーディオプレーヤー
4.1.1 AVAudioPlayerクラスによるオーディオ再生
4.1.2 サウンド付き英語プレゼン学習アプリ
4.2 マップのあるMacアプリ
4.2.1 はじめてのマップの表示
4.2.2 マップの標準・衛星の表示切り替えアプリ
4.3 WebブラウザのあるMacアプリ
4.3.1 はじめてのWebブラウザ
4.3.2 ボタンによるWebビューのクイックアクセス
4.3.3 URLテキスト入力によるWebアクセス
4.3.4 HTMLビューアアプリ
4.3.5 WebビューとMapビューの表示アプリ
4.4 ネットワーク検索アプリ
4.4.1 文字列検索ロボットアプリ
4.4.2 URLのWebビューとテキストビューの表示比較
4.4.3 カーリルによる図書館の蔵書検索アプリ
4.4.4 Wikiによる用語検索アプリ

第5章 グラフィックスの基礎
5.1 NSBezierPathによるグラフィックス描画
5.1.1 NSBezierPathによる線描画
5.1.2 NSBezierPathによるダイヤモンド模様
5.1.3 NSBezierPathによるアステロイド模様
5.2 NSBezierPathによる立体的なメッシュ描画
5.2.1 トーラス模様
5.2.2 球体模様
5.2.3 フライング・ディスク模様
5.2.4 ディスク・傘模様
5.2.5 プレッツェル模様

第6章 グラフィックスコンテキストと錯視への応用
6.1 Core Graphicsフレームワークによるグラフィックス描画
6.1.1 NSGraphicsContextクラスによるグラフィックコンテキスト
6.1.2 はじめてのグラフィックコンテキスト
6.1.3 グラフィックコンテキストによる直線の描き方
6.1.4 ミュラー・リヤー錯視の作り方
6.2 グラフィックスコンテキストにおける線結合
6.2.1 三角形における線結合
6.2.2 ポンゾ錯視の作り方
6.3 グラフィックスコンテキストによる四角形と円
6.3.1 四角形と円の描画方法
6.3.2 エーレンシュタイン錯視の作り方
6.4 グラフィックスコンテキストによる楕円と円弧の描画
6.4.1 楕円、円弧、弦の描画方法
6.4.2 デルブーフ錯視の作り方

第7章 フラクタルとカオス
7.1 フラクタル描画
7.1.1 シュルピンスキーの三角形
7.1.2 ピタゴラスの木
7.2 アトラクター描画
7.2.1 ローレンツ・アトラクターの描画
7.2.2 レスラー・アトラクターの描画
7.3 ファイゲンバウムのカオス描画
7.4 立体的なピクセル画の描き方
7.5 マーチン・フラクタルによる細胞形成

第8章 教育用のアプリ教材の作り方
8.1 ボタンクリック操作によるアプリ教材
8.1.1 ボタンクリック操作による未就学数字教育アプリ
8.1.2 ボタンクリック操作による未就学アルファベット教育アプリ
8.1.3 ボタンクリック操作によるひらがな教育アプリ
8.1.4 声に出して読む般若心経アプリ
8.2 ジェスチャー認識による数字教育アプリ
8.3 初等・中等教育用のアプリ教材
8.3.1 ボタンクリック操作による英語教育アプリ
8.3.2 ボタンクリック操作による足し算教育アプリ
8.3.3 ボタンクリック操作による九九教育アプリ
8.3.4 Webビューを用いたHTMLによる英語学習アプリ

第9章 画像フィルタと画像処理
9.1 画像フィルタ処理
9.1.1 CoreImageフレームワークによる画像フィルタ処理
9.1.2 画像フィルタの種類とキー文字列
9.1.3 はじめての画像フィルタ処理(CISepiaToneによるセピア調フィルタ)
9.1.4 ポスタリゼーション(画像の粗階調化)の画像フィルタ処理
9.2 強度調節のできる画像フィルタ処理
9.2.1 セピア調強度調節のできる画像フィルタ処理
9.2.2 CIColorMonochromeによる単色化フィルタ
9.2.3 画像のぼかし強度設定
9.3 画像の幾何学調整処理
9.3.1 CIPerspectiveTransformフィルタによる傾斜画像生成
9.3.2 フィルタ処理による画像サイズの拡大・縮小
9.4 いろいろな画像フィルタ処理
9.4.1 アクションシートによる画像フィルタ選択
9.4.2 画像変形フィルタのバンプ(ゆがみ)処理
9.5 画像におけるピクセル操作
9.5.1 画像ピクセルから取得したRGB色のヒストグラム表示
9.5.2 ピクセル値から画像を生成するコンピュータグラフィックス
9.5.3 画像のサイズ変更

第10章 マルチスレッド処理
10.1 マルチスレッド処理のための統括的キュー派遣環境(GCD)
10.2 GCDによるマルチスレッド処理
10.2.1 OperationQueueクラスによる簡単なマルチスレッド処理
10.2.2 Threadクラスによるマルチスレッド処理
10.2.3 DispatchQueueクラスによる同期・非同期のキュー処理
10.3 マルチスレッド処理のいろいろな実装例
10.3.1 Threadクラスのイニシャライザーを用いたマルチスレッド処理
10.3.2 オペレーションキューのテキストビュー表示

第11章 グラフィックスと数学関数
11.1 2Dグラフィックス
11.1.1 カスタムビューサイズを変えて任意位置に点表示する
11.1.2 はじめれの数学関数によるグラフィックス
11.1.3 リサージュ図形を描く
11.1.4 スライダーで正弦波の波長変更
11.1.5 減衰振動関数のグラフィックス
11.1.6 モンテカルロ法により円周率を求める
11.1.7 立体的な球の描画
11.2 SceneKitによる3Dグラフィックス
11.2.1 3Dグラフィックスの経緯
11.2.2 SceneKitフレームワーク
11.2.3 SCNGeometryクラスのサブクラスの組み込み幾何図形
11.2.4 SceneKitによるはじめての3Dグラフィックス
11.2.5 SceneKitによるはじめての3Dトーラス
11.2.6 SceneKitにおけるカメラ位置設定
11.2.7 SceneKitにおける3Dノードの組み合わせ
11.2.8 3Dノードの位置合わせと回転
11.2.9 3Dノードの数学関数により位置合わせ(3D Worm)
11.2.10 3D万年筆
11.2.11 3Dシャープペン
11.2.12 3Dノードの数学関数によるボールのバウンド

第12章 NSViewクラスでのマウス・キーボードのイベント処理
12.1 NSViewクラスでのマウスイベント処理
12.1.1 NSViewクラスとNSResponder抽象クラス
12.1.2 NSViewクラスでのはじめてのマウスイベント処理
12.1.3 マウスのドラッグ操作による簡単なコードで線描画
12.1.4 マウスのボタンダウン・ドラッグ操作でお絵かき
12.1.5 マウスのクリック・ドラッグ操作で点が付きまとう
12.2 NSViewクラスでのキーボードのイベント処理
12.3 マウスのドラッグ・ダウン操作による画像移動

第13章 ファイル入出力処理
13.1 ファイル入出力処理の基本
13.1.1 はじめてのファイルへの読み書き
13.1.2 Swiftでエディタを作成する
13.1.3 三角関数表の作成とデータのセーブ・ロード
13.2 データ・グラフ表示とファイルの読み書き
13.2.1 三角関数計算表とグラフ表示、データファイルの読み書き
13.2.2 Griewank関数計算表とグラフ表示、データファイルの読み書き
13.3 パネル表示によるファイル処理
13.3.1 パネル表示によるテキストファイルの読込と保存
13.3.2 NSOpenPanel表示による画像ファイルオープン

第14章 ジェスチャー認識処理
14.1 ジェスチャー認識でのターゲット・アクション方式によるイベント処理
14.1.1 Macアプリでのタッチ操作
14.1.2 はじめてのジェスチャー認識
14.2 いろいろなジェスチャー認識アプリ
14.2.1 長押しのジェスチャー認識で色が変わる
14.2.2 お絵かきMacアプリの作成(クリックとドラッグ対応)
14.3 ジェスチャー認識による画像・文字操作
14.3.1 タップ操作のクリックによる画像移動
14.3.2 ドラッグで画像回転、クリックで逆転指定
14.3.3 指の回転操作で画像が回転する
14.3.4 タッチ操作のピンチで画像の拡大・縮小
14.3.5 3つのタッチ操作によるアルファベット教育アプリ
14.4 NSGestureRecognizerクラスによるジェスチャー認識の実装

第15章 ストーリーボードによるMacアプリ作成
15.1 ストーリーボードによるMacアプリ作成
15.1.1 はじめてのストーリーボードによるMacアプリ作成
15.1.2 ビュー制御でコード追加によるWebブラウザ表示
15.1.3 ビュー制御でコード追加によるマップ表示
15.2 ストーリーボードにおけるセグウェイ接続
15.2.1 画像繊維のアクションセグウェイ接続
15.2.2 はじめてのボタンクリックによるアクションセグウェイ接続
15.2.3 ボタンによるShow接続の画像ダイアログボックス表示
15.3 ビュー制御画面間のデータ転送
15.3.1 ルートビュー制御からPopover接続ビュー制御へのデータ転送
15.3.2 ルートビュー制御からModal接続されたマップビュー表示
15.3.3 ルートビュー制御からShow接続された教育用Macアプリ
15.3.4 ルートビュー制御からShow接続されたデイトピッカー表示
15.3.5 ルートビュー制御からSheet接続された画像ビュー表示
15.4 ストーリーボードを使わないでウィンドウ制御表示
15.4.1 ストーリーボードを使わないで別ウィンドウ制御表示
15.4.2 ストーリーボードを使わないで2つのウィンドウ制御表示

索引

書籍目次

Posted by shi-n