タグ

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

  • Swiftでdeinitまで処理をdeferする | TOKOROM BLOG

    deferしてますか? Swift2でみんな大好きdeferさんが導入されましたね! guardと違いそんなに使う機会は訪れていないのですが、昨日、こんな感じで使いたい!という場面に遭遇しました。 CocoaLumberjackを使ってデバッグ用にUITextViewにログを吐くCustom Loggerを設定していたのですが、とあるViewControllerだけでそれを使いたく、ViewControllerがdeinitされたらそのCustom Loggerも当然外したい。 そんなコードを書く場合、defer大好きっ子ならCustom Loggerを登録した後にこんな感じで解除したくなりますよね(実際は僕はこのとき初めて実験でないところでdeferを使ったので、当のdefer大好きっ子はこんな間違いはしないだろう)。 let logger = TextViewLogger(textV

    tokorom
    tokorom 2015/10/26
    deferToDeinitを試しに実装してみたよ
  • 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

    tokorom
    tokorom 2014/07/30
    Swiftで専用の書き方をしてない普通のfunctionに部分適用できるようにしてみた
  • 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のマージ

    tokorom
    tokorom 2014/02/09
    この記事を書いた後にmergepbxの作者さんから連絡があり不具合修正をしてくれました。結果として今はmergepbxが快適に動作するようになっています。
  • iOS 7はもっさりか?比較検証してみた | TOKOROM BLOG

    今回の記事はUIデザイナの Morino氏 からの寄稿です。 iOS 7が正式リリースされました。既にアップデートを行って実際に試されている方も多いと思いますが、今回はUIに大幅な変更が加えられたために、まだ操作に戸惑いのある方もいるのではないでしょうか。 特にiOS 7にしてから重く感じる、もっさりしているという意見もけっこう多いようです。iOS 7をしばらくいじってからiOS 6の端末を触ると、たしかにiOS 6の方がきびきび動いているように感じます。 今回は半透明やぼかし、視差効果などの画像エフェクトをふんだんに使用しているために画像処理の負荷が高いことも確かでしょう。しかし、全てが端末の性能のせいというわけでもないことを、今回はご紹介したいと思います。 頻繁に操作を行う以下の4つのシーンについて、ちょっとした比較検証を行いました。 ロック解除してから、ホーム画面のアイコンが全て出現

    tokorom
    tokorom 2013/09/23
    Morino氏おもしろい記事書くなあ
  • 【アプリ開発のお手本に】iOS 7の設計においてアップルが大切にした4つのポイント | TOKOROM BLOG

    今回の記事はUIデザイナの Morino氏 からの寄稿です 前回 はiOS 7紹介ビデオの中のジョナサン・アイブ氏のパートをご紹介しました。 今回は、その中でも特に重要と感じたいくつかのフレーズをピックアップして深堀りしてみたいと思います。 “True simplicity” iOS 7から話題の"フラットデザイン"が採用されて、画面デザインは大分シンプルな外観になりました。 使う色の数は限定され、簡単明瞭なラインやシルエットがほとんどのデザインを占めています。 iOS 6まで採用されていたSkeuomorphism(装飾的・リアルな外観)は排除され、立体的で質感を感じるデザインから、平面的で形やテキストの意味性をストレートに伝えるデザインに変わりました。 ただ、“Simplicity"という言葉は、単に外観を表すものとして使われているわけではありません。 「複雑さに秩序をもたらす」という

    tokorom
    tokorom 2013/06/18
    UIデザイナのMorino氏が、現在Appleが情報公開している範囲で、iOS 7の新UIで重要な点をプログラマにも理解できる形に噛み砕いて解説してくれています。スマートフォン向けアプリプログラマ必読と思う。
  • iOS 7 Video の内容の書き起こしと日本語訳(寄稿:UIデザイナMorino氏) | TOKOROM BLOG

    今回の記事はUIデザイナの Morino@WWDC2013参加中 に寄稿いただきました! Appleの公式サイトに iOS 7 を紹介するビデオが公開されましたね。 http://www.apple.com/ios/ios7/ 特に前半の4分間でジョナサン・アイブ氏により語られているiOS 7の説明部分に、今回の大きなデザイン変更の様々な要点が含まれており、これからのアプリ設計のあるべき方向性が示唆されています。 これらをよく理解しておくことが非常に重要だと感じていますので、自分自身の復習のためとみなさんへの展開の意味で、書き起こし&和訳を行いました。 デザイナのみならずアプリ開発者の皆様にも有用かと思いますので、ぜひご参照ください。 iOS 7 Video - 書き起こし & 和訳 ※ 画像はすべて iOS 7 Video の中からの抜粋です We have always thought

    tokorom
    tokorom 2013/06/13
    Appleが公開しているiOS 7 の解説ビデオをUIデザイナのMorinoさんが書き起こし&日本語訳してくれましたー
  • Octopressでソースコードの一部分だけを参照する | TOKOROM BLOG

    おさらい:Octopressでソースコードを表示する まずはおさらいでOctopressでソースコードを表示する方法は以下のとおり。 1. 指定のディレクトリにファイルを置く 置き場所は source/downloads/code 。 例えば、ここに sample/test.rb というファイルを置いておく。 $ mkdir -p source/downloads/code/sample $ cp test.rb source/downloads/code/sample/ 2. include_code でそのファイルを指定する {% include_code sample/test.rb %} これで↓のようにそのコードが表示できる。 {% include_code sample/test.rb %} コードの全てでなく、指定した箇所だけ表示したい それでは、この test.rb の中の

    tokorom
    tokorom 2012/07/15
  • 1