-
IBMとSwiftと私
Tuesday, February 23, 2016
日本時間23日未明に、IBM社がSwiftをクラウド対応したのと、Kituraというwebフレームワークを公開したことで話題になっています。 参考: [速報]IBMとアップル、プログラミング言語「Swift」をクラウド対応に。Bluemix上にSwiftランタイム、Webフレームワーク「Kitura」などを提供 更に、「IBM Swift Package Catalog」も用意したみたいで、 Swift Package Manager 対応しているライブラリがあれこれ掲載されています。 …
-
protocolを使って冗長的な関数のオーバーロードを減らす
Monday, February 22, 2016
タイトルが少し難しそうに聞こえますが、内容は割と簡単です。 たまたま、自分用に書いているSwiftのextensionsを整理していた時に、「あ、こうした方がいいんじゃないかな」って思ったので、それを試したまとめになります。 …
-
try?のうまい使い方
Sunday, February 21, 2016
Swift2.0からエラーハンドリングが追加され、tryを使えるようになりました。 また、Xcode7 beta6(あたり?)から、try、try!に加えtry?が追加されました。 これにより、柔軟にtryを使えるようになります。 …
-
キーボードの「次へ」を押して、次のTextField,TextViewに移動する処理を簡単にしたFormChangeableを作ってみた
Saturday, February 20, 2016
ずっと構想はあったものの、うまく形にできずに早2ヶ月経ってしまったのですが、ようやく形にできたので公開してみます。 sgr-ksmt/FormChangeable …
-
travisで特定のブランチ/タグだけ実行するようにする
Friday, February 19, 2016
最近TravisCIを使うようになったのですが、 デフォルトのままだと全てのブランチのpushやPRに反応してしまうので、 特定のブランチとタグ にだけ反応するようにしました。 ちなみにTravisCI上でも設定はできますが、こちらは全てのブランチのpush/PRに対して実行するしないを決めるものなので、今回したかったことと違いました。 …
-
自分用にカスタマイズしたpodspecを生成するスクリプトを書いてみた
Wednesday, February 17, 2016
最近μライブラリを作成することが多くなってきて、避けて通れないこと一つに、CocoaPods対応があります。 ライブラリ毎にpodspecを書かないといけないのですが、 pod lib createで作るpodspecには無駄が多かったり、毎回自分の情報を書かないといけないのが面倒 かといって他のライブラリのpodspecをコピーしてくるのはなんとなく嫌だ ということもあって、どうにかしようと考えた結果、 ライブラリ名(と初期バージョン)を与えたら自分用にpodspecを生成する スクリプトを書くことにしました。 …
-
Gitで登録したエイリアスの一覧を表示するエイリアスを設定する
Tuesday, February 16, 2016
.gitconfigにあれこれaliasを貼っていくと、何があったっけってなってしまうので、 git aliasesと入力して、設定したaliasを表示する エイリアス を作ってみました。 …
-
NSLocale.preferredLanguages()を使わずに、端末の使用言語が日本語かどうかを判定する
Tuesday, February 16, 2016
寝る前に少しtry! Swift Conference Appのソースをみて寝ようと思ったら、 今までみたことがなかった判定の仕方で、使用言語が日本語かどうか判定をしていたので、なるほどな〜って思って見入ってしまいました。 …
-
SwiftでClosureを即時実行するtips
Monday, February 15, 2016
暖かかった日が過ぎてまた寒くなったせいで体がなんだかだるいですね。。 今日はよく自分が使うちょっとした小ネタを一つ。 …
-
EnhancedAutoreleasePoolを作成しました。
Sunday, February 14, 2016
以前記事にしたautoreleasepoolから例外を投げられるようにするを更に使いやすい形にして、 sgr-ksmt/EnhancedAutoreleasePool として公開しました! 前回紹介したtryが可能になるものに加えて、autoreleasepool()内で値を返すことができようにし、更にtry可能なautoreleasepool()も準備しました。 定義としてはこんな感じです。 public func autoreleasepool(@noescape code: () throws -> ()) rethrows public func autoreleasepool<V>(@noescape code: () throws -> V?) rethrows -> V? public func autoreleasepool<V>(@noescape code: () throws -> V) rethrows -> V これで、以下の様な書き方もできます。 let value = autoreleasepool { doHighPressureMemoryTask() return "value" } autoreleasepool()の機能により局所的にメモリの圧迫を抑えつつ、必要な値を返戻することができます。 次回あたりに、あまり詳しく解説されているところがないので、throwsとrethrowsの違いでもまとめてみることにします。