フリマアプリFrilのリニューアルを題材に、iOS開発でのコードレビュー事例を紹介します
![中規模iOS開発とコードレビュー](https://cdn-ak-scissors.b.st-hatena.com/image/square/ff3ec00f24439d85a74d7f822895b08dd9b5eeeb/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fb16c7900dd7701315be4761d16f0720c%2Fslide_0.jpg%3F3200915)
フリマアプリFrilのリニューアルを題材に、iOS開発でのコードレビュー事例を紹介します
今まではなんとなくtestemを使っていたのですが、Karmaを検討する必要があったので試してみました。 サンプルの設定などは↓で見ることが出来ます。 https://github.com/koba04/backbone-boilerplate testem to karma これまでは業務でもtestemを使っていて、テストの数が少ないうち(1000以下)は問題なかったのですが、 段々テストが増えてくるとCPU100%になってテストが走るブラウザが固まることが増えてきて辛い感じになってきました。 そんなときに下記の記事を見て同じような現象だなと思いKarmaを試してみることにしました。 http://developer.cybozu.co.jp/tech/?p=7089 Installation インストールはnpm install karmaするだけです。 globalでkarmaのコ
今回は、Hubotのスクリプトが動く仕組みについて説明し、基本的な機能であるチャットでの受け答えを実装する方法を説明した後に、その他の機能について紹介します。 スクリプトの基本 Hubotがスクリプトを読み込み実行する仕組みを説明するために、“hello”と挨拶するとHubotが“hi”と返事する単純なスクリプトのサンプルを示します。 hello.coffee module.exports = (robot) -> robot.hear /hello/, (msg) -> msg.reply 'hi' このサンプルコードの一番外側を見ると、module.exportsに関数を代入しています。このmodule.exportsは、Node.jsでモジュールを作るための仕組みです。つまり、Hubotのスクリプトとは、引数を1つとる1つの関数を提供するNode.jsのモジュールということに
iOSでダイアログ表示用のクラスUIAlertViewがiOS8からdeprecatedになるため、 UIAlertViewを使用した際の挙動と推奨されているUIAlertControllerについてまとめました。 (本記事の内容は一般公開されているiOS8の情報に基づいています。 iOS8に関するスクリーンショットは掲示していません。) iOS8で廃止されるUIAlertViewを使用した際の挙動 deprecatedされたメソッドを使用した場合、アプリが落ちるなどの問題が発生することがありますが、 iOS8 beta2の環境ではシミュレータ・実機ともに問題なく表示できます。 2014/6/24現在では継続してUIAlertViewを使用したままでも問題無いようです。 上記の内容はObjective-Cに関してであり、Swift(iOS8)ではEXC_BAD_ACCESSでアプリが落ちま
2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。本件に関する詳細は、プレスリリースをご確認ください。 2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。 本件に関する詳細は、プレスリリースをご確認ください。
を晒すことで俺以外が試してくれるかもしれない!というのは置いといて、現在の知見です。 MV* React | A JavaScript library for building user interfaces Facebook製データバインディング。jsxという謎拡張子に目をつむれば未来を感じる設計。とにかく生DOM触りたくないという気概を感じる。 Welcome - Polymer Google製WebComponent。WebComponent使うならこれが有望株っぽい。 component/component MV* とはちょっと違うけどCSS/JavaScript/HTML まとめてライブラリにできる。JavaScript以外もライブラリに含む際は有望。 何がしたいかはt_wadaさんがまとめてくれたtogetterみてください。Web フロントエンド開発用パッケージマネージャ c
swiftナニソレなのでコードはObjective-Cです。 ほぼ公式のAFHTTPRequestOperationによるサンプルのまんま。 GETのPromise版オーバーロードを作る。 @interface AFHTTPSessionManager (PromiseKit) - (PMKPromise *) GET: (NSString *) URLString parameters: (NSDictionary *) parameters { return [PMKPromise new:^(PMKPromiseFulfiller fulfiller, PMKPromiseRejecter rejecter) { NSURLSessionTask *task = [self GET: URLString parameters: parameters success:^(NSURLSe
UIKit and GCD - Ryan’s App Blog この記事を見て、なるほど確かにそれなら上手くいくかもしれないと思って、実際にやってみたらすごくよかったので紹介します。 GCDを使って、UIの描画をバックグラウンドで行うという内容。 https://gist.github.com/2584135 とりあえずgist。 前提 UIの描画を行えるのはメインスレッドだけです。 なので、UIの描画が重いと、表示が遅くなったり、ScrollViewやTableViewではスムーズにスクロールできなかったりします。 通常のdrawRectでやっていること UIGraphicsGetCurrentContext()で取得できるCGContextRefに対して描画を行うと、画面の一部として出力することができます。 通常は、このCGContextRefに直接描画しますが、前述の通り、こ
iOS向けに、クレジットカードの情報からWebPayのTokenオブジェクトを作成するライブラリを公開しました。 iOS環境上で、端末が直接WebPayとクレジットカードの情報をやり取りし、代替となるトークンを作成することで サーバサイドにクレジットカードの情報を送信することなく、決済処理を実現出来るようになります。 本ライブラリは、CocoaPodsにも公開しており、 ソースコードはgithubにてMITライセンスで公開しています。 WebPayの公開可能鍵を与えることで、クレジットカードをトークン化する部品に加えて クレジットカード情報の入力用フォームや、モーダルで表示できるビューコントローラを用意しています。 webpay-token-iosの使い方 インストール CocoaPodsを使った方法(推奨)と、手動でコピーする方法があります。 CocoaPodsを使ってインストール Po
Official connpass taketo1024「Swift がいまいちイケてない10のコト」 SlideShare お題通りの話 public, privateがない・・・近いうちに実装されるらしい class-varがない optional-bindingがイマイチ func / init / methodでのnamed-parameterの違い デフォルトパラメータの順番が不順出来ない UIKit bindingが中途半端 letなArrayはimmutableじゃない(配列だけ例外) ArrayはStructじゃない(参照元配列に要素を追加するとコピーされる) performSelectorがひと通り使えない KVOがない C++が使えない suwa yuki「Swift本ができるまで」 プレゼン資料 先取りSwiftの本を出すまでの経緯の話 「先取りSwift」の本の紹介
タイトルがそのままですが、GrowthForecastのDocker imageを作りました。 https://registry.hub.docker.com/u/kazeburo/growthforecast/ 使い方は単純に起動するだけなら次のようになります。 $ docker run -p 5125:5125 kazeburo/growthforecast これだと、データが永続化されないので、適当なボリュームをマウントします。 $ docker run -p 5125:5125 -v /host/data:/var/lib/growthforecast kazeburo/growthforecast 起動オプションを変更したい場合は、コマンドを渡すか、Dockerfileを書いてビルドすると良いでしょう。 $ docker run -p 5125:5125 -v /host/dat
今さらながら、Goをもう少し読み書きできるようになりたいな、と思い。 A Tour of Go を一通り読んで、 GitHub - mattn/twty: command-line twitter client written in golang go-oauth/examples/twitter at master · garyburd/go-oauth · GitHub などを参考にしつつ、写経というかんじで Twitterのtimelineを取得するものをまずは書いてみた。 package main import ( "encoding/json" "fmt" "github.com/garyburd/go-oauth/oauth" "github.com/typester/go-pit" "log" "net/http" "os/exec" "runtime" ) func mai
UIImageの画像をリサイズ、回転、反転したい場合がある。こんなときにはQuartz 2D APIを使用する。Quartz 2D APIはCore Graphicsフレームワークの一部。 CTM(Current Transformation Matrix)を使う。主に以下の3つ。 CGContextTranslateCTM : 原点の平行移動 CGContextRotateCTM : 原点を中心として座標系を回転 CGContextScaleCTM : 原点を中心として座標系を拡大縮小 ①とりあえずそのまま描画 - (UIImage*)drawImage { UIImage *original_img = [UIImage imageNamed:@"frog"]; UIGraphicsBeginImageContext(self.view.bounds.size); [original_
新しいブログに移行しました↓ https://boblog.ima0123.com == コア部分がC言語で記述されているがゆえ爆速に動作するPhalcon。 これを爆速で動作できる環境をつくるために、Chefレシピを用意しました。 https://github.com/aiMatz/cookbook-phalcon Phalconを動かすまで意外と道のりがありまして、 非常に手間なのでChefでやるのがベターですね。 ここ最近は、vagrantが出てきたこともあって、 開発マシンを汚さずに手軽に作成することができて、便利な世の中です。 vagrantへの各種インストール作業は、Chefのcookbookを使います。 実行はやっぱり、knife-soloですよね。 vagrantの用意 vagrantのインストールは、ググってくだされ(・ω・) vagrant box(OSイメージ)の取得
// Description: // Yudoufu blog notifier module.exports = function (robot) { var msgs = [ 'ブログ書いた?', 'ブログ...書いてょ(ヽ´ω`)', 'ブログは?(*´ω`*)', '元気?', 'ブログ更新したかな〜', 'いつになったら...ブログ書いてくれるの?', '更新は今日かな? 明日かな? ((o(´∀`)o)) ', ]; var room = "xxxxyour-room-idxxxx@conf.hipchat.com" var sendMsg = function () { var currentMessage = "@yudoufu " + msgs[Math.floor(Math.random() * msgs.length)]; robot.messageRoom(room
配色に悩んだ時の参考にしたい!最近の人気があるカラーをおさめたPhotoshop/Illustrator用のスウォッチ素材のまとめ
With everything about Cora Data data models still fresh in your mind, it's time to start working with Core Data. In this article, we meet NSManagedObject, the class you'll interact with most when working with Core Data. You'll learn how to create, read, update, and delete records. You'll also get to know a few other Core Data classes, such as NSFetchRequest and NSEntityDescription. Let me start by
運用=監視ではない。現状把握(監視)+リスク低減(リカバリ)=運用である。 今「データ保全に細心の注意をはらっている」と言いましたが、単純に「バックアップが行われているか?」「コピーしたDBダンプが保存されているか?」をチェックするだけでは運用とは言えません。運用=監視ではないんですね。 監視観点を網羅することでしっかりと現状把握をするのと同時に、いざ問題が起こったときに速やかにリカバリできる必要があります。 SonicGardenでは主に以下のリスクを念頭に置き、問題が起こったときに速やかにリカバリできるようにしています。 アプリケーションデータの一部が破損するリスク ログファイルを一定期間保存(デフォルト3年分)し、ログからのリカバリを行えるようにする。 データベース内のデータの一部が消滅するリスク リージョンをまたいだ冗長化バックアップを行い、もしもの場合には別リージョンを利用したサ
Illustrator ユーザーガイド Illustrator とは Illustrator の概要 Illustrator の新機能 よくある質問 Illustrator の必要システム構成 Apple Silicon での Illustrator の使用 ワークスペース ワークスペースの基本 Illustrator のもっと知るパネルで学習を高速化 ドキュメントの作成 ツールバー デフォルトのショートカットキー ショートカットキーのカスタマイズ アートボード入門 アートボードの管理 ワークスペースのカスタマイズ プロパティパネル 環境設定の指定 タッチワークスペース Illustrator での Microsoft Surface Dial のサポート 編集の取り消しとデザインヒストリーの管理 ビューを回転 定規、グリッド、ガイド Illustrator でのアクセシビリティ セーフモ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く