サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
yaakaito.github.io
こんにちは!うきょーです。 前回BusterJSのtestbedの話を書いたのですが、 @yaakaito HTMLを用意するまでもない場合は buster-html-doc とかも良いと思いますがどうでしょう! という意見をもらったので、こっちのことも書いておこうと思いました。 そもそもbuster-html-docって何 BusterJSはJSTestDriver形式で書かれたテストケースの実行をサポートしているのですが、JSTestDriverにHTML Docという昨日があります。 この部分だけをBusterJS用に切り出したのがbuster-html-docで、前回のようにHTMLを用意するまでもない場合に
こんにちは!うきょーです! みなさんJavaScriptのテスト書いてますか?当然書いてますよね??? JSでテスト書く時に、こういうHTMLを使いたいんだけど的なことってあると思います。 BusterJSはデフォルトでいい感じのHTMLを作って使ってくれるので楽にテストをはじめられるんですが、まあ差し替えたいよねーってことで差し替えます。 BusterJSではこれをtestbedと呼んでいて、設定ファイル(だいたいの場合はbuster.js)で設定することができます。 設定の仕方はこんな感じなんだけど、いまんところtestbedってプロパティは設定できないので、resourcesから設定します。 var config = module.exports; config["test"] = { sources: ["lib/*.js"], tests: ["test/*-test.js"],
SEHoge *hoge = [[SEHoge alloc] init]; NSObject<SBStub> *stub = [Stubbilino stubObject:hoge]; [stub stubMethod:@selector(intMethod) withBlock:^ { return 10; }]; NSLog(@"%d", [hoge intMethod]);
こんにちは!うきょーです! 前の続きです UINibで楽チンにUITableViewCellをxibで作れることは分かったけど、 UINib *nib = [UINib nibWithNibName:@"HogeCell" bundle:nil]; cell = [[nib instantiateWithOwner:nil options:nil] objectAtIndex:0];
こんにちは!うきょーです! 僕はUIViewとかUITableViewCellを継承してかっちょいいビューを作ろうとすると3分でやる気が消える人なのですが、 最近UINibというものを知りました、創作意欲を返してほしいと思います!!!! 追記しました 続き みなさんUITableViewCellのサブクラス作りますよね。 そしてそのままコーディングしていくと非常にだるく、3秒でモチベーションがなくなるので、 Interface Builderを使いたい!と思うわけですが、UITableViewCell用のxibファイル作るのは30秒で心が折れる。 (というかいつも忘れるしXcodeのバージョンあがると分からなくなる) UINibを使う おもむろにxibファイルを作ります。 UIViewを消します。 UITableViewCellをおきます。 ClassとReuse identifiterを
こんにちは、うきょーです! Objective-C書いててふと、Role使いたいなー出来たっけーと、思ったのでやってみた。 怪しいところもあるので、あんまり参考にならないかもですよと言っておく。 最終的にデータと振る舞いを合体させる ってのができればいいと思うんだけど、Objective-Cならカテゴリで書いておけばよくね?と思ったり思わなかったり。 けどちょっと違うよねーってことで、今回はそういうのはやめとく。 で、実装としてはNSProxy使えばそれっぽいものは割と簡単に出来た。 ObjCRoleSample @interface Book : NSObject @property (nonatomic, strong) NSString *title; @property (nonatomic) NSUInteger price; @end
こんにちは!うきょーです。 2/23(土)にグリー株式会社でiOSエンジニアのためのカンファレンスイベント「conferenceWithDevelopers」を開催します! 公式サイト チケットをゲットはこちらから 無料です! 今現在、決定しているスピーカーとして、 「iPhone Core Audioプログラミング」 で有名なクックパッドの永野さん、 「ビートロボ」でiOSのリードエンジニアを務める菅宮さん。 まだWebの更新がおいついていませんが、 「Dynamic Objective-C」や「iOS開発におけるパターンによるオートマティズム」を執筆された木下さんをはじめとする、 豪華なゲストでお送りする予定です! 講演者は随時アップデート、こちらでも告知していきますのでお楽しみに!!! またLT参加者も募集しています! iOSネタであれば制限はありません、こんなことやってみた!から実
こんにちは!うきょーです。寒いですね。 Objective-C(主にiOS開発)向けのユーティリティライブラリを公開しました。 バージョンは0.1.0で、まだAPIはそこまでそろってません。 Overline 似たようなライブラリではunderscore.mとかBlocksKitが近いかなーと思います。 基本的な機能の拡張で、めんどくさいところを楽にする系のライブラリです。ひかえめです。 主に僕がだるいなーと思ったベースで追加しています。 なのでいわゆるmapもあれば、URLエンコードしてくれるメソッドもありますし、という感じ。あとはいつも忘れる系とか。 underscoreなんかと違うところは、underscoreとかってがんばってJSっぽく書こうとしてる感じが伝わってくるんですが、 僕はJavaScriptみたいに書くのが綺麗だなとか書きやすいとかまったく思ってないので、Objecti
こんにちは!うきょーです! Objective-Cアドベントカレンダー2012 6日目の記事です。 AppCodeのことを書こうと思っていたのですが、今日 NUI というライブラリを見つけて、今僕の中でアツいので紹介しようと思います。 サンプルも書いていたのですが、アドベントにカレンダーできなさそうなので、今回は紹介だけです。 NUIって何 NUIはCSSライクにUIKitのスタイルを指定できるライブラリです。 READMEからの引用ですが、こんな感じに定義することができます。 @primaryFontName: HelveticaNeue; @secondaryFontName: HelveticaNeue-Light; @primaryFontColor: #333333; @primaryBackgroundColor: #E6E6E6; Button { background-co
こんにちは!うきょーです! iOSアプリのテストのことをそろそろ1年くらい考えていて、1周した感じもするので、 ここら辺で一旦の区切りの意味でもなんとなく考えをまとめてみる。 ちなみにテストというのは主に単体テストにフォーカスした内容です。 こういう系のエントリを書くと、僕はわりと誤解を生みやすい書き方をしてしまうので先に断っておくと、 なんらかのアプリ開発手法や、テスト手法をDisっているわけではないです。 フレームワークがいろいろ登場したりしますが、それらをDisっている訳ではないですし、それぞれ素晴らしいものだと思っています。 同じくそのフレームワークを使っているプロジェクトも登場しますが、それらをDisっている訳でもありません。 もちろん特定個人をDisる内容でもありません。 という感じで、何かをDisってる記事ではないので、ご了承ください。 長めです。結局何がよかったの、っていう
こんにちは!うきょーです! 小さめのツールをCoffeeScriptで書く機会があったのですが、 テストに使ったVows(日本語訳)というのが結構良かったです。 一言で言えば、BDDライクで非同期テストに強く、Coffeeと相性のよい、topicという独特の概念をもったフレームワークです。(長い) Vowsのセットアップと実行 npm経由でインストールします。
こんにちは!うきょーです! 前まではiOSのテストには主にKiwiを使っていたのですが、最近Spectaが良い感じなので使っています。 結局のところ好みになってしまうのですが、簡単に比較というか感想を。(コードはそれぞれのREADMEみてください) どちらもRSpecに代表されるBDDスタイルの記述ができます。 Kiwi Specta そもそもの違い どちらも似た感じでテストを書くことができますが、そもそもとしてSpectaは自身がマッチャーなどは提供していません。 主にExpectaを使うことになると思いますが、他のものを使うことができます。 対してKiwiはモックから何からそろったフルセットのフレームワークです。 Spectaの方がモジュール単位に分割されているので、ライブラリとして見たときは扱い易いです。 ただ、好みのライブラリとか特にないって場合はKiwiを使った方がスムーズにいけ
こんにちは!うきょーです。 突然LTすることになったので、最近気になってるBuster.JSネタで話してきました。 LTなのであんまり内容は濃くないです。iPhoneシュミレーターとかでも楽に動くし便利だね!というくらいです。 スライドにはほとんど情報がないので、どんな感じで話したかを箇条書きで。 yaakaito.orgが変なところに飛ばされとる (今はなおったみたい) みんなJSかきますよね!テストやってますか??? フレームワークいろいろありますが、最近はBuster.JSがアツい JSTestDriverのようにブラウザ上での自動実行と、ヘッドレスでの実行がサポートされている “Test-Driven JavaScript Development”でも言及されていますが、実際の環境で動かせることは大事 ちなみにこの本書いた人がBuster.JSの作者で、Buster.JSはこの本に
こんにちは!うきょーです!株式会社ドワンゴを退職しました! とりあえずなんかください。 ドワンゴには19歳の時からお世話になっていているので、だいたい3年くらい働いていたことになります。 主な業務はiOSアプリ開発でした、当初Objective-Cってなんですか、だった僕ですが、最終的には「オブジェクティブな汁が足りない」とかキチガイっぽいことを言っていたと思います。 ドワンゴではたくさんエキサイティングなことをさせてもらいました、なんとなく振り返ってみようと思います。 ニコニコiPhone 最初から中頃まで関わっていた仕事です。 生放送のサービスイン、その後の高画質化〜安定期までで、おもにプレイヤーを書いていました。 少しづつでも確実に大きくなっていくサービスを見ているのは楽しいもので、単純に楽しかったプロジェクトでした。 最後の方はプレイヤー全部改修して使いやすくしようとか、訳あって途
こんにちは!うきょーです! いままでは外部のライブラリを使わないとかなり面倒だった、UILabelとかに色付きの文字列の描画が、iOS6から標準サポートになりました! 便利なので使ってみましょう!!!! サンプル 適当に色を付ける文章を探します、今回はgithubから「yaakaito pushed to master at yaakaito/Specs」という文章を抜き出してきました。 このうち yaakaito と yaakaito/Specs を青色にしてみようと思います。 コードはいつも通りgithubにあげてあります。 AttributedStringExample NSAttributedStringを作る 実際のところ結構だるいのであんまり使ったことがない人も多いと思うのでまずはAttributedStringの作り方から。 作り方は大きく分けて二通りあって、 小さいNSAt
こんにちは!うきょーです!前回ふざけてましたが、今回は真面目にライブラリを作りました。 といっても、毎回書くのはめんどくさいのでまとめとくか程度です。 みなさん!iOSのテスト書いてますか??? ViewControllerなんかのテストを書いてるときに、例えばGHUnitなんかを使ってたりすると、 UIAlertViewがカジュアルに飛び出てきてウザイですよね^ー^ー^ー^ 僕はUIAlertViewは、適当なラッパークラスを作って、そこを差し替えて出ないようにすることが多いんですが、 テストの為のクラスを作ってる様なものになってしまう上に、毎回書くのがだるポヨ・・・。 なのでついでだしテストも出来るようにしよう、ってことで、UIAlertViewを非表示にしつつ、スパイするライブラリを作りました。 AlertNinja AlertNinjaの機能 さっきも書きましたが、UIAlertV
普段の開発 ルパッチ!コミット!アッドッゴ! ブランチをマージするとき リベェース!プリーズ! マージしたのでプッシュするとき プッシュッストライク!サイーコーダゼッ!(reject) しかたなくpull rebaseしたとき カモン!コッミト!マァージハンド!カモン!コッミト!マァージハンド!ヒーヒーヒーヒーヒー!スラッシュストライク!(rebase失敗) がんばって直して、テストを走らせたとき ヌルッチ!マジック!タッチゴウ!ヌルッチ!マジック!タッチゴウ!メッセージ!プリーズ!チョーイイn (セグフォ) 疲れたのでケータイ持って飯へ現実逃避 シャバドゥビダッチヘンシン!ドコモ!プ,リーズ↑ドンドドドドドドン↑↑↑キメルゼェ!!!ルパッチ!アイフォン!タッチゴゥ↑コ,ネクト!プ,リーズ↑エーユ→チョ→イイネ
みたいなコールバックを指定します。そうするとIDがもらえるのでこれで登録は終わりです。 Githubへログインしてもらう OAuthなので、Safariを開いてacceptしてもらいましょう。パスワード入力してもらってJS使って押すとか、やめましょうね。 発行されたIDのうちClient IDをくっつけて NSString *scope = @"public_repo,gist"; NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://github.com/login/oauth/authorize?client_id=%@&scope=%@",kClientId, scope]]; [[UIApplication sharedApplication] openURL:url]; みたいな具合で、Saf
こんにちは!うきょーです!みなさんPullToRefresh使ってますか?便利ですよね。 けど、引っ張って更新、そろそろ飽きてきませんか?てゆーか、なんでわざわざ引っ張らなきゃいけないんですか? それを解決するために、HullToRefreshというライブラリを作りました。名前はギャグっぽいですがマジメです。 HullToRefresh 振るとRefreshはその名の通り、iPhoneを大きく振るとイベントが飛んでくるライブラリです、すごく、すごく便利ですね。 なんてったって画面に触る必要がありません、指を動かす必要もありません。更新したいな、と思ったときにはiPhoneでフリフリシェイクすればいいのです、楽しいですね。 電車に乗っているときは自動で揺れを検知し、空気を読んで更新をしてくれます。なんて便利なんでしょう、指による入力なんて、もはや時代遅れなのです。 このすばらしいアイデアの使
TypeScriptとDDDとLazyload Aug 16 2013 categories: DDD, TypeScript TypeScriptでライブラリ書くときのあれこれメモ Aug 15 2013 categories: Memo, TypeScript …
こんにちは!うきょーです。UITableViewに実装されているdequeueReusableCellWithIdentifierと同等の機能を持ったものを開発したいんだけど的な話です。 dataSourceに似たのインターフェイスを持ってビューを実装するときに、不特定個数のものに対してインスタンスをすべて生成するわけにも行かないので、ある程度制御してあげる必要があります。 今回はUIScrollView上に構築していく前提になっています。シンタックスハイライターを作ろうとしているので、使い回して描画される対象になるのは、行数表示とコード一行分の表示です。 コードはいつも通りgithubにあります。 BGSyntaxHighlighter 注)ライブラリとしては未完成です 実装方法を考える さらっと思いつくところではリングバッファのようにしておけばよい気がしますね。 ATPagingVie
こんにちは! 最近Parseというバックエンドを肩代わりしてくれるサービスを知ったので、 ちょっとAngularJSと組み合わせてユーザー毎の情報を同期する程度のアプリを作ってみました。 どうやら小規模なサービスでユーザー情報の同期とかに使うといいよ、みたいな感じらしいので、 利用用途としても今作っているものにあっていそうだったので、とりあえずテストで作ってみた感じです。 Parseに登録する Parseにいって、「Try it for free」します。 無料版だとAPI利用回数制限とかが結構厳しそうに見えますが、個人で作るくらいなら全然余裕なくらいはありますね。 ログインするとDashboradにいけるので適当な名前で新しいアプリを作ります。 QuickStart的な画面になると思うので、JavaScript用のSDKで、「New Project」を選択します。 そうすると、ここからS
こんにちは!Octopress、カスタマイズしてますか? えっ、テンプレートを変えただけ???自分で書きましょう!!!! AngularJS使えば夢が広がるんじゃね? というわけでOctopressでAngularJS使ってみよう的な話です。 まあ別にjQueryでもいいんですけど、Octopressは静的ページですし、 検索なんかもデフォルトはgoogleに飛ぶだけとか、結構貧相じゃないですか。 結局のところ単純に使いたかったのが大きいんですが、 データさえ埋め込んでおけば楽にいろいろ作れる感じがしたので、AngularJS使ってみることにしました。 そもそもシンタックスがぶつかるんですけど Handlebars.jsなんかでもそうですが {{ hoge }} というシンタックスがぶつかりますね。 これはJekyllのプラグインにrawプラグインというのがあるのでそれを使うと解決できます
このページを最初にブックマークしてみませんか?
『index - yaakaito.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く