Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

Swift

swiftc

Swiftをコマンドラインでコンパイルする方法swiftcを使う。 which swiftc /usr/bin/swiftc 適当にswiftでコードを書いて、 import Foundation print("hello, world!") ここではmain.swiftという名前にした。 swiftc main.swift これで、mainという実行ファイ…

ファントム型

qiita.comまねて書いてみた。何かに使える気がする。 phantom type dummy code

URLSessionConfigurationのメモ

URLSessionConfigurationのメモこちらに良い記事があった。 qiita.com とりあえずメソッド一覧。あとから説明を追記する形で。 open class URLSessionConfiguration : NSObject, NSCopying { // デフォルト open class var `default`: URLSessionConfigurati…

プロトコルMisc

CustomStringConvertible description オブジェクトの文字表示 print CustomDebugStringConvertible debugDescription オブジェクトの文字表示 debugPrint LosslessStringConvertible 文字列からそのままオブジェクト構築できる TextOutputStream write(_ st…

乱数

let x = arc4random() % 5 let x = arc4random_uniform(5) seed指定いらない。

BehaviorSubject

BehaviorSubjectは最後の値を覚えていてsubscribeで即座に値が返ってくる。最初の値はこちらで指定できる。 class Temperature { private let behaviorSubject = BehaviorSubject(value:0) var behavior : BehaviorSubject<Int> { return behaviorSubject } func </int>…

Observable

次のようなクラスを定義する。 class Temperature { private let eventSubject = PublishSubject<Int>() var event: Observable<Int> { return eventSubject } func doSomething(x:Int) { eventSubject.onNext(x) } } テキストフィールドの編集が終わったタイミングで</int></int>…

RXSwift

RxSwiftを試してみた。CocoaPodでインストールした上で以下をインポート import RxSwift import RxCocoa 使い方は textFiled!.rx.text .map { guard let text = $0, text.lengthOfBytes(using:.utf16) > 0 else { return "" } return "\(text)!" } .bindTo(l…

マルチスレッドのデザインパターン

以下を参照しつつマルチスレッドのデザインパターンを概観し、適宜Swiftでの実装を考える。 Single Threaded Execution (同時にできない) クリティカルセクション。 Immutable (不変) Guarded Suspension (用意できるまで待つ) Balking (用意できないならや…

Swift落穂ひろい プトロコル準拠

Swiftで少しわかりにくかった所を整理しておきます。Swift3です。 二つのプロトコル準拠 複数のプロトコル準拠な変数宣言に&を使います。 let animal3:Animal & Helloable = seri Switch文で特定の型に対して protocol Animal { } protocol Helloable { func…

プロトコル指向の例

WWDC2015から developer.apple.com重要だが未消化なのであとで感想を追記したい。

プロトコル指向+値型なコーディング

WWW2016におけるコーディングの指針developer.apple.comモデルは値型に Viewのレイアウト調整はプロトコルとジェネリクスを使ってUIViewから独立なクラスを作ると単体テストできる。 Controllerの状態はenum一つにまとめる。モデルの更新を通知してコントロ…

値型

WWDC2015においてSwiftでは参照より値型を用いることを推奨している。Building Better Apps with Value Types in Swift - WWDC 2015 - Videos - Apple Developer参照型を混ぜる際にはgetにmutatingをつけてコピーして渡すようにする。 isUniquelyReferenceNo…