ブックマーク / www.tokoro.me (4)

  • iOSのライブラリだってTravis CIとかCoverallsとか使うべき | TOKOROM BLOG

    今日はGithubに公開したiOS用のライブラリを Travis CI と Coveralls に対応した手順を紹介したいと思います。 なお、実際にこれらを適用して運用しているリポジトリのサンプルは、 https://github.com/tokorom/BlockInjection になります。 前提条件 GitHubを使っていること GitHubでなんらかiOS/Mac用のライブラリを公開していること Travis CI https://travis-ci.org/ 目的 公開しているライブラリの最新コードがきちんとビルドが通るものか、テストが通る状態かを明示できます。 iOS用のCI環境を用意するのは通常すごく敷居が高い(物理的にMacが必要)のですが、Travis CIはiOS/Mac用のライブラリのCIを無料で請け負ってくれるかなり太っ腹なサービスです。 事前準備 Travis

    daiki_17
    daiki_17 2015/06/13
  • Swiftで部分適用(カリー化) | TOKOROM BLOG

    Swiftオフィシャルの部分適用 まず、Swiftオフィシャルな構文として func addTwoNumbers(a: Int)(b: Int) -> Int { return a + b } というように引数を1つ1つ別の括弧で囲ってfunctionを定義すると let add1 = addTwoNumbers(1) add1(b: 2) //< 3 というかんじに、 まず、1つめの引数だけ部分適用(ここでは a) 部分適用したものに後から次の引数を適用(ここでは b) というのができる。 専用の書き方じゃなくてふつうのfunctionに部分適用できないの? 使うかどうかは別としてHaskellみたいに全ての関数に部分適用できたら面白いなーと。 また、上のような専用の定義にしちゃうと addTwoNumbers(1, 2) みたいな普通の呼び方ができなくなっちゃうし。 そんなとき、 Sw

    daiki_17
    daiki_17 2014/07/31
  • これがXcodeでのバージョニングの決定版になるかも • Yuta Tokoro

    概要 この記事でできるようになること 安定してInfo.plistの内容(ここではBuild番号)を変更できる ふつうにRun Scriptで編集するとタイミングによってすぐにアプリに反映されないことがあったりしたがそれが解消される Info.plistに差分がでないのでcommitのときに邪魔にならない なお、この方法を教えてくれた熊谷さんがこの方法に行き着いた経緯や所感がこちらに詳しくまとめられています。詳細や考え方などをきちんと知りたいかたは是非、熊谷さんの記事をご一読ください! 必要な設定 Preprocess Info.plist file でInfo.plistをビルド前に確定させる Run Scriptで${TEMP_DIR}/Preprocessed-Info.plistを編集する 以下、具体的な話をします。 経緯 これまで、 デバッグ用やArchive用のアプリのバージョ

    これがXcodeでのバージョニングの決定版になるかも • Yuta Tokoro
    daiki_17
    daiki_17 2014/05/19
  • Xcodeのプロジェクトファイル(pbxproj)がコンフリクトしまくるのをなんとかしたい! | TOKOROM BLOG

    2014/02/09 追記 コメントのところでやり取りしているようにmergepbxの作者さんから連絡があって、この記事で書いた問題が修正されました! 今現在は merge=mergepbx がいい感じになってきているのでそっちがオススメです。 複数人でプログラミングしているとpbxprojがやたらとコンフリクトする 例えば、 Aさんが AALabel.m をプロジェクトに追加して Bさんが BBLabel.m をプロジェクトに追加して とただそれだけなのにマージのときにコンフリクトするpbxprojさん。。。 ただそれぞれファイルを追加だけのことでコンフリクトするなんて… どうにかならんもんかいとTwitterでつぶやいたところ、 @azu_re さんから有り難い教えが! @tokorom gitはファイル別にマージ方法を指定できるので、mergepbxみたいなのをpbxprojのマージ

    daiki_17
    daiki_17 2014/02/06
  • 1