swift
Monads for functional programming - Philip Wadler セクション2のメモ。セクション2では、シンプルな評価器を構成することにより、モナドを導入し、修正に強い評価器を構成するのにモナドが使用できることが説明されている。 環境 Xcode 8.0 Swift 3.0 …
AVAudioEngine を使用して、マイクからの入力を録音する。 AVAudioEngineの基本的な使い方は Swift AVAudioEngine の基本 - タコさんブログ を参照。 簡単のため、マイクアクセスの許可、オーディオセッションの管理などのハンドリングは考慮していない。 環…
C言語ではじめる音のプログラミング―サウンドエフェクトの信号処理 ページ33 で取り上げられているサイン波を vDSP(vectorized digital signal processing) ライブラリを使用して、FFTにより振幅スペクトルを求める(ここでは簡単のために窓関数を用いずにFFT…
AVAudioEngine を使用して、440Hzのサイン波(ラ音)をPCMバッファーに設定し、鳴らす。 AVAudioEngineの基本的な使い方は Swift AVAudioEngine の基本 - タコさんブログ を参照。 環境 Xcode 7.3.1 Swift 2.2 準備 AVFoundation をインポートする import AV…
環境 Xcode 7.3.1 Swift 2.2 準備 AVFoundation をインポートする。 import AVFoundation AVAudioEngine AVAudioEngine は 接続された audio node(AVAudioNode) のグループを定義する。 Audio node を使用してオーディオシグナルを生成、それらの処理、オー…
Audio Queue Services Programming Guide - Playing Audio を参考にSwiftでAudio Queue Serviceを使用する。 環境 Xcode 7.3.1 Swift 2.2 準備 AudioToolbox をインポートする。 import AudioToolbox Audio Queue Service を使用する手順 状態・フォーマット…
この例ではUIWebViewDelegateメソッドをRxSwift対応させる。 環境 Xcode 7.3 Swift 2.2 準備 RxCocoa、RxSwiftをインポート。 import RxCocoa import RxSwift 今のところ以下のキャスト時に使用する関数はパブリックになっていないので、RxCocoaからコピーし…
bitterharvest.hatenablog.com に触発されて、試しにSwiftで書いてみた。 準備 16進数カラーコードを UIColor に変換する必要があるので、 SwiftでHexColor(#34495eみたいなやつ) - Qiita を参考に、UIColorに簡易イニシャライザを追加する。 extension UICo…
try! Swiftで発表のあった型消去の話。 この例ではSwiftにおける型消去技法を使用して、結城さんの 増補改訂版Java言語で学ぶデザインパターン入門 Iteratorパターンを愚直にSwiftで実装する。 前提知識 [増補改訂版Java言語で学ぶデザインパターン入門] Ite…
Swift Moyaでモヤっとしているネットワークレイヤーを解決 - タコさんブログ のRx編。 RxMoyaProviderでは、MoyaProviderにコールバッククロージャを与える代わりに、オブザーバブルなレスポンスを使用する。 今回の例もiTunes Apple APIを使用して音楽のア…
RxSwift 入門 その6 - タコさんブログ の続き。 今回は、RxSwiftプレイグラウンドの Mathematical and Aggregate Operators 、Connectable Observable Operators の項。プレイグラウンドの内容としてはこれで最後。 Mathematical and Aggregate Operators …
RxSwift 入門 その5 - タコさんブログ の続き。 今回は、RxSwiftプレイグラウンドの Error Handling Operators 、Observable Utility Operators 、 Conditional and Boolean Operators の項。 Error Handling Operators この項では、Observableからのエラー…
Combination operators RxSwift 入門 その4 - タコさんブログ の続き。 今回は、RxSwiftプレイグラウンドの Combination operators の項。 この項では、単一のObservableを生成するために、多数のソースObservablesと連携するオペレータに関して説明してあ…
Filtering Observables RxSwift 入門 その3 - タコさんブログ の続き。 今回は、RxSwiftプレイグラウンドの Filtering Observables の項。 この項では、ソースObservableから選択的にアイテム(イベント)を送信するオペレータに関して説明してある。 以下…
Transforming Observables RxSwift 入門 その2 - タコさんブログの続き。 今回は、RxSwiftプレイグラウンドの Transforming Observables の項。 この項では、Observableから送信されるアイテム(イベント)を変換するオペレータについて説明してある。 変換…
RxSwift 入門 その1 - タコさんブログ の続き。 今回は、RxSwiftプレイグラウンドのSubjectsの項。 Subject は Observer 、また Observable の両方として機能し、Hotなオブザーバブルである。 Erik MeijerはSubjectを好んでいないようだ(Why Does E.Meijer …
とりあえずRxSwiftのプレイグラウンドのIntroductionに書いてあるサンプルを見ていく。Introductionには「RxSwiftを理解する鍵は、Observablesの概念を理解することである」と書いてあるとおり、主にObservableの生成について説明してある。 環境 Xcode 7.2 …
MoyaはAlamofireを直接さわることなく、ネットワークレイヤーを抽象化してくれるライブラリ。 イメージとしては、下の図のような感じ。 Moyaの特徴として、 コンパイル時に正しいAPIエンドポイントのチェック Associated Enumによりエンドポイントを明確にで…
IDZSwiftCommonCrypto を使ってみる IDZSwiftCommonCrypto は Appleの CommonCrypto のSwiftラッパーで、Realmで紹介されていたので、ちょっと試してみた。CryptoSwiftでAES暗号 (AES-256-CBC) - タコさんブログと同じように Swift側でIDZSwiftCommonCrypto…
AnyObject と Any についてのメモ。 AnyObject AnyObjectは 全てのクラス型のインスタンス を表すことができる型 Swiftのクラス、Objective-Cを継承したクラス、Objective-Cのクラスを扱うことができる。 class SwiftClass {} @objc class ObjCClass: NSObje…
NSOperationQueueクラスは dispatch_queue_t の高レベルAPIで、NSOpertionオブジェクトの実行を規制する。 NSOperationクラスは継承して使用することを目的とした抽象基底クラスになっているので、通常はNSOperationを継承したクラスを作成する。Foundation…
CryptoSwiftを使用して、 平文をSwift側で暗号化し、Ruby側で復号化する。 暗号方式はAES、鍵は256ビット長、暗号利用モードはCBC、パディング方式はPKCSを使用する。 環境 Xcode 7.1.1 Swift 2.1 準備 適当な256ビット長の鍵(文字列)を用意する。 BDC1711…
環境 Xcode 7.3 (7.1) Swift 2.2 (2.1) タイマーの生成とRun Loopに登録を同時に行う場合 // targetObjectのObjective-Cで利用できるfunc update(timer: NSTimer)を1秒間隔で呼び出す // (または、Objective-Cクラスを継承したSwiftクラス) NSTimer.schedul…
環境 xcode 7.0 左ペインの開閉 Cmd + 0 (ゼロ) 右ペインの開閉 Cmd + Opt + 0 (ゼロ) デバッグエリアの開閉 Cmd + Shift + Y Assistant Editorの開閉 Assitant Editorを開く Cmd + Opt + , 閉じる Cmd + Enter 検索に移動 カーソルも検索窓に移動している C…
環境 Xcode 7.3 Swift 2.2 カリー化関数の構文 func 関数名 (引数) -> (引数) -> 戻り値の型 { return { (引数) -> 戻り値の型 ボディ } } カリー化関数の例 カリー化されていない関数 plus func plus(a: Int, b: Int) -> Int { return a + b } plusをカリー…
ナビゲーションコントローラ・タブバーコントローラをStoryboardに追加するとき 右側のUtilityペインの Object Library からドラッグ&ドロップするとナビゲーションコントローラ・タブバーコントローラ以外にもテンプレートのビューコントローラが付いてき…
環境 swift 2.0 xcode 7 beta 5 as オペレータ Swfitコンパイラにより型変換・キャストが成功すると保証されるときに使用 アップキャスト リテラルの型を指定 class Animal {} class Dog: Animal {} let dog = Dog() let animal = dog as Animal // アップキ…
Swiftで作ったカジュアルゲームです! 土日を使って少しずつ作りました。 モチベーションが上がらないときはコワーキングスペースに行ってみたりして作業しましたが、 基本的には引きこもって作業。 Swift良いですね! Tap Speedokuhiro ohmutaゲーム無料
indirectが使用できる前はBoxクラスなんかを使って再帰的なenumデータ型 を実装していたみたいだが、indirectを使えばBoxクラス等を使わずにシンプルにList, Tree なんかを書ける。 環境 Xcode 7.0 beta 4 Swift 2.0 2分探索木 元ネタは すごいHaskellたのし…
CocoaPodsを使用しないで、Google Analyticsを入れる方法 手動でGoogle Analyticsのスクリーン計測を行うまでをメモしておく。 環境 Xcode 7.1 (Xcode 6.4) Swift 2.1 (Swift 1.2) 準備 Google Developers Download the SDKからからzipをダウンロードする。…