タグ

ブックマーク / ninjinkun.hatenablog.com (14)

  • 【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary

    original: The introduction to Reactive Programming you've been missing (by @andrestaltz) (translated by @ninjinkun, reviewed by @ma0e) あなたはリアクティブプログラミングと呼ばれる新しい方法が気になっている。 勉強するのは大変で、良い教材がないのでさらに難しい。私が勉強を始めたときは、まずチュートリアルを探した。見つけたのは一握りの実践的なガイドだけ、しかもそれらは表面をなぞっているだけで、リアクティブプログラミングのアーキテクチャ全体像を構築しようとしてはいなかった。ある関数を理解するのに、ライブラリのドキュメントは役に立たないことがある。 これを見て欲しい。 Rx.Observable.prototype.flatMapLatest(selector,

    【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary
    efcl
    efcl 2014/08/21
    関数型リアクティブプログラミングについてをJavaScriptを例に解説してる。 ストリームとは、時間順に並んだ進行中のイベントの列。 RxJSはPromiseからストリームに変換もできる
  • ReactiveCocoa勉強会関西を開催しました #rac_kansai - ninjinkun's diary

    先週の土曜日にReactiveCocoa (以下RAC)というOSX / iOSで使うリアクティブプログラミング(RP)フレームワークの勉強会を開催しました。 当日の資料 当日の資料のうち、見つけられたものは以下にまとめました。 はじめてのReacitveCocoa @tinpayさん はじめてのReactiveCocoa from Shohei Fukui https://github.com/tinpay/RACWarikan ReactiveCocoa勉強会に参加してきました #rac_kansai . ゆるやかなReactiveCocoaの導入 @ninjinkun 実践!Twitter API+ReactiveCocoa @atsusy さん var RAC3 = ReactiveCocoa + Swift @ikesyo さん var RAC3 = ReactiveCocoa

    ReactiveCocoa勉強会関西を開催しました #rac_kansai - ninjinkun's diary
    efcl
    efcl 2014/08/03
    ReactiveCocoaについてのスライドまとめ
  • iOSアプリケーション開発のコードレビューで気をつけていること - ninjinkun's diary

    日常的なコードレビューで気をつけていることリストです。GitHub会議(仮)で発表しようと思っていたのですが、日程の都合で参加できないので、書きためておいたメモを公開します。またどこかで発表するかもしれません。 AutoLayoutにできないか AutoLayout化した方がすっきりしそうならAutoLayout化する AutoLayout化できそうなものでやっていないものは、なぜコードで実装したか質問する 例えばUITableViewCell ちゃんと理由があれば別に良い。コードの方が良いことも多い UIAppearanceで解決できないか 各クラスの中にスタイルの指定が入るより、UIAppearanceでスタイル指定を分離して別クラスに書く方がデザイナーも弄りやすくて良い 3.5インチ端末が考慮されているか レイアウトが決め打ちだとここで問題が出ることが多い 着信ステータスバーが考慮さ

    iOSアプリケーション開発のコードレビューで気をつけていること - ninjinkun's diary
    efcl
    efcl 2014/04/25
    NJKレビュー。 iOSアプリのレビューの注意点について
  • 未読数バッジの実装 - ninjinkun's diary

    アプリの未読数バッジを実装していてこんがらかってきたので、自分の方針をメモしておきます。バッジを消してるつもりなのに消えないとか、また復活していたりするとイライラしますよね。 いつ消すか 通知欄を見た瞬間に消える タイムラインの投稿、自分へのいいね等 大抵のものはこちらでOK 未読の部分まで読んだら消える チャット等のメッセージ 重要なお知らせ アイコンのバッジは種類に関わらず起動時には消す その後新しい通知が来るまで復活しないように Pushのみで数字を更新する場合は起動時に0にするだけ Push以外でアイコンバッジを更新することがあれば、最後にバッジを消した際の通知オブジェクトIDもしくは未読数を記録するという面倒な方法で実現する 複数クライアントがある場合は他のクライアントにもPushを送って0クリアしてあげると良さそう。あまりやってるのは見ないけど どこまで読んだかを記憶する 最後

    未読数バッジの実装 - ninjinkun's diary
    efcl
    efcl 2014/04/15
    未読バッジをどのタイミングで消すかについて
  • UIWebViewにプログレスバーを出すためのモジュールを作りました - ninjinkun's diary

    ninjinkun/NJKWebViewProgress · GitHub UIWebViewにはロードのプログレスを取れるインターフェイスがありません。恐らく内蔵ブラウザを抱えるアプリを作る開発者はみんな困っているはず。少なくとも自分はずっと困っています。いつか実装されるかなと気長に待っていたのですが、いい加減しびれを切らしたので作りました。iOS 7で追加されて速効ゴミになる可能性もありますが…。 なお、このモジュールはプログレスを返すインターフェイスだけを提供するので、画面に表示するにはUIProgressViewなりを使う必要があります。 プログレスバーはユーザーに進捗をほどよくフィードバックするためのものですが、この辺りの機微が結構難しかったです。*1 最終的にはWebKitの実装を参考にパラメータを決定しました。ロードしたbyte数が取れるWebKitとは違い、ロードが完了した

    UIWebViewにプログレスバーを出すためのモジュールを作りました - ninjinkun's diary
    efcl
    efcl 2013/04/22
    WebViewのプログレスバーの読み込みUI. 読み込み済みのリソースの数を使ってロードされてる量を表現する
  • UI/UX設計の教科書、About Face 3輪講の資料を公開します - ninjinkun's diary

    一昨年に社内で行ったAbout Face 3輪講の資料を公開します。実は今までずっと公開されていたのですが、存在を知られていなかったので、改めて周知します。 About Face 3はUI/UX設計の教科書で、ユーザーストーリーやペルソナなど、基的な内容が押さえられています。ディレクター、デザイナー、エンジニア、サポート等、プロダクト制作に関わる全員の共通知識として使える内容だと思います。 About Face 3輪講概要 1. ゴールダイレクテッドデザイン 2. 実装モデルと脳内モデル 3. 初心者、上級者、中級者 5. ユーザーのモデリング : ペルソナとゴール 6. デザインの基礎 : シナリオと要求 8. 優れたデザインの総合 : 原則とパターン 10. オーケストレーションとフロー 11. 間接的な操作を取り除く 12. 良き振る舞いのデザイン 13. メタファ、イディオム、ア

    UI/UX設計の教科書、About Face 3輪講の資料を公開します - ninjinkun's diary
    efcl
    efcl 2013/03/13
    UI/UXについての教科書資料
  • 国際化したStoryboardを一つにまとめる - ninjinkun's diary

    これまでiOSプロジェクトを国際化する際にはStoryboardファイルは対応言語分複数作る必要がありましたが、iOS6からは一つにまとめて、他の言語は.stringファイルで管理することが可能になります。これにより、Storyboardを変更した際もGUIによるレイアウトの変更は一回で良くなります。 ただしこれをやるとiOS5で動かなくなるので注意が必要です。 やり方 Use Base Internationalizationにチェックを入れる BaseにするStoryboardを選ぶ 僕のアプリは日語主体で設計していたので、日語を選択しています。英語の方が主体なら英語を選択した方が良いと思われます。 Localizeされたファイルができる この状態だとstoryboardが2つある従来の状態と一緒です。 .stringファイルを生成する Localizable Stringを選択す

    国際化したStoryboardを一つにまとめる - ninjinkun's diary
    efcl
    efcl 2013/01/14
    AutoNibL10nみたいなStoryBoardではキーを指定してstringファイルでローカライズ
  • iOS6から使えるアプリの状態復元UIStateRestoration - ninjinkun's diary

    iOSアプリを起動する際、ユーザが最後に開いた画面を表示できると利便性は高まります。しかしバックグラウンドに移ったアプリは、メモリが逼迫してくると強制的に終了させられて、最初からやり直しです。この終了状態から、あたかも直前まで動いていたかのように状態を復元するUIStateRestorationがiOS6から導入されました。 追加の実装は必要ですが、自前でやるよりは楽に状態の保存と復元が可能になります。 以下の内容は最新のiOSアプリケーションプログラミングガイド(既に日語訳出てる!)を参照しながら実装してみたものなので、詳細を知りたければそちらを参照するのがおすすめです。 はじめに この機能で保存、復元されるものは以下の通りです。 ViewControllerとViewController Container UINavigationViewControllerのスタックも復元 Vie

    iOS6から使えるアプリの状態復元UIStateRestoration - ninjinkun's diary
    efcl
    efcl 2012/10/21
    iOS6からアプリの状態復元を行うrestorationIdentifierの設定
  • iOS組み込みのキャッシュモジュールNSCacheについて発表しました - ninjinkun's diary

    NSCacheというキャッシュモジュールについて第43回Cocoa関西で発表してきました。 NSCacheの特徴 スレッドセーフ NSDictionaryのように手動でロックする必要がない 格納オブジェクトの上限を決められる 溢れたら自動破棄 iOSのようなメモリ制約の厳しい環境に最適 NSDictionaryに似たインターフェイス Mac OS 10.6 / iOS 4.0以上で使える 具体例としては、ダウンロードした画像をオンメモリにキャッシュする際等にとても有用だと思います。同じような機能を提供してくれるOSSのモジュールは見たことがあるのですが(例えばnimbusに含まれているNIMemoryCache)こちらはOS組み込みなので手軽に使えます。 発表資料 サンプルコード Twitter及びInstagramの画像をロードしてデモするサンプルコードは以下です。それぞれの機能を動かす

    iOS組み込みのキャッシュモジュールNSCacheについて発表しました - ninjinkun's diary
    efcl
    efcl 2012/03/26
    iOSのキャッシュに使えるNSCacheについて。 スレッドセーフで画像のメモリキャッシュ的に使える。
  • iPhoneアプリのアクセス解析Google Analytics SDK for iOSについて - ninjinkun's diary

    Cocoa勉強会関西でGoogle Analytics SDK for iOSについて発表してきました。資料を公開します。 Google Analyticsの豊富な機能をiPhoneアプリ内の計測にも利用でき、かなり使いでがあります。目標指標の設定や計測はもちろん、イベントのトラッキングを積極的に活用することで、UI改善の指標にすることもできると思います。 Google Analytics & iPhoneView more presentations from Satoshi Asano. 資料の中で言及している便利マクロもここに貼っておきます。 #define GA_TRACK_PAGE(PAGE) { NSError *error; if (![[GANTracker sharedTracker] trackPageview:[NSString stringWithFormat:@"

    iPhoneアプリのアクセス解析Google Analytics SDK for iOSについて - ninjinkun's diary
    efcl
    efcl 2012/03/07
    Google Analytics についてのスライド
  • iPhoneアプリの通信エラー処理についてCocoa勉強会関西で発表しました - ninjinkun's diary

    第42回Cocoa勉強会関西でiPhoneアプリの通信エラー処理について発表してきました。内容としては先日書いたブログエントリの焼き直し + ケーススタディのデモ + サンプルコードの実装という感じです。「やっぱりちゃんとやらなくちゃね…」などの感想が漏れる等、開発者にとっては耳が痛い内容になっております(僕も辛い)。 スライドは以下です。 サンプルコードは以下にあります。 https://github.com/ninjinkun/AlertResume

    iPhoneアプリの通信エラー処理についてCocoa勉強会関西で発表しました - ninjinkun's diary
    efcl
    efcl 2012/01/29
    iOSアプリの通信エラー処理について。 NSErrorとAlertView
  • iPhoneアプリの通信エラー処理を考える - iOS Advent Calendar 2011 - ninjinkun's diary

    こんにちは。お仕事iPhoneアプリを開発しているid:ninjinkunです。このエントリはiOS Advent Calendar 2011 23日目の記事です。今回はあまり注目されることがなさそうなiPhoneアプリのエラー処理を取り上げてみようと思います。 エラー処理と言うとプログラマが粛々とやるものというイメージで、主に内部のエラーハンドリングのことが中心になりがちです。しかしエラー処理はそれをユーザーに通知するところまで考えて初めて完結します。この記事ではユーザー体験の面と内部処理と両方に言及してみようと思います。自分の今までのアプリでもあまり実践できていなかったので、自戒の念も込めて…。 エラーは様々な状況で発生しますが、ここでは主にHTTP通信のエラーを想定します。HTTP通信はiPhoneのようなモバイル端末では高い確率で失敗します。移動中、地下鉄、山の中の中など通信が不

    iPhoneアプリの通信エラー処理を考える - iOS Advent Calendar 2011 - ninjinkun's diary
    efcl
    efcl 2011/12/25
    iOSアプリの通信エラーとエラー処理(表示)について。NSError+UIAlertView. ライブラリ化した https://github.com/azu/UIAlertView-NSErrorAddition
  • Tech LION vol.4で喋りました - ninjinkun's diary

    Objective-CはJavaScript化しているという無茶なテーマで話してきました。釣りっぽい感じですが、OSとフレームワークと言語がこれだけのスピードで進化するプラットフォームもあまりないと思うので、その辺りの面白さを伝えられたらと思って喋りました。またCocoa勉強会のPDF冊子「Cocoa Life KOF2011特別編」にも同じテーマで文章を書いています。 発表資料は以下です。 Webエンジニアから見たiOS5 View more presentations from Satoshi Asano

    Tech LION vol.4で喋りました - ninjinkun's diary
    efcl
    efcl 2011/11/19
    JavaScriptっぽく(コールバックや非同期処理的な意味で)かけるようになってきているiOS5について。 ARC、Blocks、GCD
  • iOSとAutomatic Reference Countingについて発表しました - ninjinkun's diary

    第41回Cocoa関西でAutomatic Reference Countingについて発表しました。資料は以下です。発表時はBlocksの仕様の理解などで怪しい部分があって申し訳なかったです。一応この資料は大丈夫だと思います。 会場で聞いた範囲では、ARCをプロダクションで採用している方はまだいない感じでした。 ARCでめちゃモテiOSプログラマ View more presentations from Satoshi Asano

    iOSとAutomatic Reference Countingについて発表しました - ninjinkun's diary
    efcl
    efcl 2011/11/19
    ARCについて。 Blocksと混ぜた処理の書き方。 __weakについて
  • 1