サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
griffin-stewie.hatenablog.com
まえがき 【紹介している仕組みが ver 1.0.0 になったので一部更新】 前回のエントリでビデオチャットの品質向上として映像の質について言及しておいてその内容を書いていませんでした。今回はそれについて書きたいと思います。 ここで紹介する方法はアルファ版の OSS ソフトウェアを使います。使用にあたって機材が故障してもすべて自己責任でお願いします。 基本的にソフトウェアエンジニア向けの内容です。Git, Homebrew, ビルド etc というキーワードを聞いてピンとこない方はやめておいた方がいいと思います。このあたりがわからない方で「パソコン側の負荷を下げてつつ、ミラーレス一眼をウェブカムにしてクロマキー合成したい」という方は ATEM Mini の在庫が復活したころに札束で勝負することをおすすめします。*1(やったことがないけど多分できます) 目的 画質の向上です。 普段のミーティ
最近、自作キーボード作りにハマっています。これまでに Meishi ― The micro macro keyboard kit HelixPico Mint60 と作ってきました。ハンダ付け初心者な僕がそれなりに組み立てられるようになったのには道具の力が非常に大きいです。いい大人なので力量は道具に素直に頼っています。これまでつかった便利だったもの、あって良かったものを紹介するというテイのアフィリエイトエントリです。 必須部門 温度調節ハンダゴテ 白光 ダイヤル式温度制御はんだこて FX600 出版社/メーカー: 白光(Hakko)発売日: 2012/01/18メディア: Tools & Hardware クリック: 1回この商品を含むブログを見る 温度調節ができるものじゃないと Helix とかの LED のハンダ付けで部品を壊してしまうらしい。温度が体感で分かるわけがないので絶対に温度
Atom の Package linter-redpen を作りました。 以前もこのような RedPen を使った Package を書いていたので第二弾という感じです。 特徴 "何行目の何文字目" までナビゲート 以前作った redpen package は文書の問題箇所を列挙し、クリックすることで該当行にジャンプすることが出来ました。しかし、具体的な場所(何文字目)までのナビゲーションには対応出来ていませんでした。そこで Atom で使っている他の Lint 系 Package と同じようにピンポイントの場所までナビゲートしてくれるようなものを作りました。 他の linter-XXX ファミリーに準拠した形で linter service の API を使って実装しました。 redpen-server サポート RedPen にはサーバー機能があります。このサーバーには REST AP
先週、東京で開催された try! Swift に参加してきました。参加者のブログエントリとしてはかなり遅いですが try! Swift 後の諸々の課題が完了して落ち着いたのでそこで感じたことを書いてみたいと思います。気付けば前回のこのブログの更新から1年以上もご無沙汰していたようで、アウトプットが減ったのだなと感じています。 try! Swift try! Swift のイベントそのものの説明や、そこで話されたセッションの内容などはすでにたくさんの方が書かれているのでそちらを参照してください。特に id:niwatako さんのエントリ群はすごいのでぜひ "try niwatako" でおググりください。 英語 当日は英語のセッションが8割以上で、会場に来ている人も印象としてかなり外国人が多くいました。セッションと Q&A についてはすばらしい通訳があったので特に支障はなかったでしょう。た
GitHub がメインで開発しているエディタ Atom の Package redpen を作りました。 RedPen とは 普段僕は Objective-C で iOS アプリの開発をしています。Objective-C のようなコンパイル言語で typo した場合にはコンパイルエラーがでたり、型を謝ったコードを書いてると警告がでたりすることで事前にミスを防げているわけです。RedPen は自然言語を書いている時にもそれに近いものを得るために作られた自動文書検査ツールです。詳しくは gihyo.jp で連載されているこちらを見ていただいた方がわかりやすいと思います。 Atom Package を作った理由 仕事で書く文書ではアルファベットの前後にスペースを入れるような基本ルールがあって、最近はよくそのレビューを任されることがあり結構面倒な作業でした。そんなときに RedPen の事を知った
先日、AFNetworking や NSHipster で有名な Mattt が Ruby の Nokogiri 風の XML & HTML パーサー Ono 斧 を公開しています。 早速少しだけ触ってみた CSS Selector でのパースをサポート XPath での指定なら今もいくつかライブラリがありますが CSS Selector をサポートしたものは私は知りませんでした。個人的には Nokogiri を連想させる最大のポイントです。 Subscripting 対応 エレメントのアトリビュートへのアクセスは Subscripting 対応になっています。 element[@"href"]; という書き方で href アトリビュートの値が取得出来ます。 NSDate のサポート XML が対象になるかと思いますが dateValue メソッドで NSDate 型を返してくれます。 "
表題の通りです。 2週間くらい前に id:cockscomb さんが CXCKeyValueObserver というライブラリをリリースしていました。これはどんな感じのライブラリかっていうと KVO の 監視開始/終了 忘れず安心に実行できる 複数 KVO を使っても通知を受けた後の処理が監視単位ごとにスッキリ分かれる っていうシンプルながら KVO の面倒くさいところが綺麗にまとまっているものです。 このコードを見たときに 確かに監視する側(感覚的には監視を管理する側)が死ぬときに自分で後始末すればいいよな ARC な今どきならインスタンス変数として保持しておけば、オーナーが死ぬときに自動的に死んでくれるよな と気づきました。 そこで、同じ方法で Notification も監視管理してしまえってことで作りました。 CSNNotificationObserver NSNotificati
以前アプリの画面を開いているアプリケーションのプレビュー画面から隠すというものを書きました。先日たまたま見つけたライブラリがこのような処理を補助するものがあったので一応ご紹介。 MMAppSwitcher というライブラリです。使い方的には MMAppSwitcherDataSource プロトコルを実装して App Switcher に表示して欲しい View を返す感じです。 ライブラリの内部的には UIApplicationWillBeginSuspendAnimationNotification という非公開な Notification をきっかけに App Switcher 用の View を表示させているようです。非公開なものなので若干審査だったり将来のバージョンアップとか大丈夫かな?って気がしますね。 こんなことをしている理由として推測するには、applicationDidE
はてなさんが はてなインターンで利用したiOSアプリ等のサンプルコードを公開しました - Hatena Developer Blog という素敵なサンプルコードを公開してくれたので、好き勝手に感想を書いてみたいと思う。本来は Web アプリ側も動かしたかったんだけど、ウマく環境が作れなかったのでアプリはコードを読んだだけで動かしてはないです。あと、細かい検証とかしてないので勘違いとかしていると思うので指摘してください。 参考になった真似したい NSError と UIAlertView の使い方 NSError の内容ベースでエラーアラートを出すのは理にかなっていると思った。OS 側が返す NSError は期待する値が入っていない不親切な場合があるので、オリジナルの NSError から一度適切な値を持った NSError を再生成して返すクラスを介したらいいのかもしれない。 すっきりし
iOS 7 以前でも、アプリ実行中にホームボタンを押してまた、そのアプリに戻ってきた場合には OS が作成した画面のスクリーンショットが表示されていました。プライバシーが気になるようなアプリでは Home に戻る直前の画面をそのまま次回前面になったときに使われると困ることがあります。家計簿等のお金を扱うアプリだと独自に暗証番号でロックできるようになっていますが、私が使っている「マネー2」は前面に戻ってきた時にちらっと前の画面がうつってからロック画面に移行してて何だかなぁと思っていました。iOS 7 になってからはホームボタンを2回押して出てくる最近使ったアプリ一覧画面にプレビュー画面が付いて Exposé 風になりました。Exposé 風になったことでますますこの問題が出てきてしまって気になったのでどうすれば良いのか試してみました。 iOS App Programming Guide iO
前回は Background Fetch を試してみました。この方法ではアプリだけの実装でバックグラウンドで通信処理等を走らせる事ができますが、実行タイミングが OS 側の学習によるもので任意のタイミングでは発動させることができません。iOS 7 からは Background Fetch 以外にも Remote Push Notification をトリガーに Background Fetch を実行させる機能も追加されています。Remote Push Notification を送るためのサーバサイドの準備が必要ですが、任意のタイミングで実行できる(Rate Limit はあります)のは魅力的です。APNs 環境を作ったことがない僕が APNS 環境の構築から Remote Push Notification から Background Fetch を動かすまでのメモを残しておきます。
先日、「M7 と少しだけ戯れてみた」というエントリでモーションアクティビティを試しに触ってました。その流れで自分の歩数を定期的に Tweet するようにしてみたらおもしろいかなぁと思って折角なので iOS 7 から導入された Background Fetch を使って見ようと思い、その時の内容をメモとして残してみようと思います。 ここに書く実験内容は Apple の審査を通った実績のあるものではない点をご了承ください。 Background Fetch とは iOS 7 から追加された新しい Background Mode のひとつ OS 側が不定期(OS の判断で適切だと思われるタイミング)で - (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBac
9/20 に無事に iPhone 5s Space Gray 64GB を手に入れました。前日の14時過ぎぐらいからヨドバシ梅田界隈をうろうろし、閉店少し前から列に並び、希望端末の整理券1番を Get し、9時くらいには現品 Get しました。 CMStepCounter と CMMotionActivityManager そんなことはさておき本題。 iPhone 5s にしか搭載していない M7。これがないと動かない機能が CMMotionActivityManager と CMStepCounter あたりの API です。せっかく iPhone 5s を手に入れたので少し触ってみました。 CMStepCounter CMStepCounter はその名の通り雑にいうと万歩計。計測自体は特にこのクラスを使わなくても iPhone 5s を持っていると OS 側がカウントしているようです
ボタンのタップ反応エリアの拡大方法 アプリを作っていると、実機で触ってみたときに「ボタンが押しにくい」とか「タップのあたり判定がせまい」とかってあるかと思います。たいていの場合はボタンに使っている画像が小さい等が原因だったりします。このような場合の対処方法があらためて探してみても意外と見つからなかったので今更感がありますが普段僕がやっている方法を紹介します。もっと良い方法があれば教えてください。 追記: @k_katsumi さんに指摘頂いた内容を追記しました。 対処方法 1. UI デザイン自体を再考 そもそも論ですが、HIG でも 44pt x 44pt を基準にすることが推奨されているわけですから押しにくい UI デザイン自体を直すのがユーザーのためです。実際にはひっくり返すことになるのでなかなか出来ない話ですw 2. 単純に大きさを大きくする 全然対処方法でもないですねw ビジュア
今日貯めてた Reading List を見てたらこんな記事が。 New thing I do in code 例 以下のようなコードが動きます。 self.downloadButton = ({ UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; NSLog(@"%s %@", __PRETTY_FUNCTION__, button); button.frame = CGRectMake(40, 40, 100, 50); [button setTitle:@"Donwload" forState:UIControlStateNormal]; [button addTarget:self action:@selector(buttonAction:) forControlEvents:UIContro
以前 @xcatsan さんのこちらの記事をさっきみてて思い出したので備忘録として。 以前、非同期で実行される処理の塊を直列に順序を決めて実行したいというシチュエーションがありました。そのときにぱっと浮かんだのは昨日の Cocoa 勉強会関西で@yashigani が発表した内容 にも登場した NSOperation と NSOperationQueue でした。「非同期で実行される処理の塊を直列に順序を決めて実行」だけならそれでも良かったんですが、その処理の塊の結果を次の処理の塊に受け渡す必要がありました。さらにその処理結果によって次以降に実行する処理の塊も振り分けるとか…。基本的に非同期処理のコールバックは Blocks を使うことは僕の中できまっていたので Blocks の入れ子とか地獄なのは分かっていたのでどうにかしたかった。 やりたかったこと要求されてたこと UI から1つのタス
前回も座標系だったんですけど今回も座標系。 CGGeometry にはいろいろ地味に便利な関数が揃ってるんですけどあまり日の目を見ない気がするので CGRectDivide について書こうかと思います。 使い方と得られる結果が理解しにくい CGRectDivide は任意の Rect を指定した方向から切り取り2つの Rect に分割してくれる関数です。 定義は以下の通り。 void CGRectDivide ( CGRect rect, CGRect *slice, CGRect *remainder, CGFloat amount, CGRectEdge edge ); 実行するとこんな感じ。 CGFloat amount = 44.0f; CGRect baseRect = self.view.frame; CGRect sliceRect = CGRectNull; CGRect
Blocks 怖いような、便利なような。そんな物ですがみなさんはどんな感じに使っていますか? 僕は最近こんな感じのメソッドを実装して使ってます。 UINavigationController *nvc = [DetailViewController navigationBasedViewControllerWithConfigurationBlock:^(DetailViewController *viewController) { NSDate *object = _objects[indexPath.row]; viewController.detailItem = object; }]; [self.navigationController presentViewController:nvc animated:YES completion:NULL]; 特に凄く便利かというとそうでも
最近、頑張って比較してるのにバグっている見たコードをみました。簡単な比較方法を知らない人もいるのかもと思って書いてみます。 たまに求められるバージョン番号比較 何らかの理由でバージョン番号の比較をしたいときってありますよね?○○バージョン以上なら△△するとか。求められる内容によって Class オブジェクトが生成できるかどうか? respondsToSelector: で期待しているセレクターが呼べるか? とか方法はいろいろありますが、今回は文字列での比較の話です。 文字列ベースで比較 文字列ベースでのバージョン番号の比較ってどうしてますか? integerValue とか floatValue とかで数値化して比較してますか?最近見たコードでもそのような比較をしてました。でも、バージョン番号って 「5.1」とかなら単純に数字にしてしまって比較できますが、「5.1.1」とかだと少数でもない
iOS で「LINE で送る」を実装する 昨年末頃、LINE より公式に「LINE で送る」の仕様が公開されました。私の知る範囲では Objective-C で書かれた iOS 向けのライブラリは以下の2つです。 LineKit LineActivity LineKit 実装されている内容 LINE.app のインストール確認 テキストを送る 画像を送る 上記の通り非常にシンプルなライブラリになっています。 LineActivity 実装されている内容 LINE.app のインストール確認 未インストールの場合 App Store を開く テキストを送る 画像を送る UIActivity のサブクラスとして実装されています。アイコン用の画像ファイルも添付されています。 練習がてら自分も作ってみた CSNLINEOpener 実装されている内容 LINE.app のインストール確認 未インス
今日の出来事なのですが、Xcode の Organizer がいつの間にか進化していることに気がつきました。 下の画像は Oarganizer 上でスクリーンショットを1つ選択したところです。特になんてこともない状態です。 下の画像が Oarganizer 上でスクリーンショットを1つ選択したところです。よく見ると下のツールバーの "Compare" チェックボックスがアクティブになっています。 下の画像が Compare のチェックを On にしたところです。差異が無いところは黒く塗りつぶされています。 この機能を使えばレイアウトの微調整や表示コンテンツの間違い探しが簡単になりますね。
canberlandさんが開発したSafari用SIMBLプラグイン SafariTabConfig Ver0.1.1 をリリースします。 SafariTabConfig Ver0.1.1 の変更点 不具合修正 Safari 5.1 で発生していた問題を修正しました。 当方、Lion + Safari 5.1 の環境しかないため Snow Leopard + Safari 5.1 での動作を確認していません。 ダウンロード *Lion 専用です。 SafariTabConfig Ver 0.1.1 for Lion をダウンロード SafariTabConfig に不具合、要望があればお気軽にコメント下さい。 cyan-stivy.net - SafariTabConfig
Cocoaの日々: Xcode のマクロ定義 こちらの記事をみて、昔 cocoa 勉強会でちょこっと紹介した内容に似たようなのがあったのを思い出しました。 久しぶりなのでブログに書いてみようかと思いました。 Objective-C 2.0 の プロパティ定義文を挿入する UserScript さきの記事ではテキストマクロとしてプロパティ定義文を挿入して実際のプロパティ名は自分で入力するような形をとっていました。 私はもっと怠け者なので文字入力なしで済ましたいと思ったので UserScript にしました。 UserScript とは これ。 ちょっとしたことができる仕組みです。 デフォルトで入っているのものでおそらくみんながお世話になっているだろう コメントアウトのショートカット Cmd+/ は実は Perl で書かれた UserScript が実行されています。 何ができる? こんなのが
canberlandさんが開発したSafari用SIMBLプラグイン SafariTabConfig Ver0.1.0 をリリースします。 SafariTabConfig Ver0.1.0 の変更点 不具合修正 Safari5 で発生していた問題を修正しました。 Safari5 で発生していた問題を修正しました。 Snow Leopard版 と Leopard版 のリリースです。 Safari4.1 に対応した Tiger版 のリリースです。 For English en.cyan-stivy.net ダウンロード *Snow Leopard専用です。 SafariTabConfig Ver 0.1.0 for Snow Leopard をダウンロード *Leopard専用です。 SafariTabConfig Ver 0.1.0 for Leopard をダウンロード *Tiger専用で
最近ぜんぜんブログを書いてなかったので自分備忘録としてエントリ書いておきます。 Tombloo で Google Bookmark にPostできてなかった 先日、Tombloo で Google Bookmark にPostできてなかった事が発覚しました。 普段ははてブとGoogle Bookmarkにクロスポストしてるのですが、Google Bookmarkだけできてませんでした。 幸いはてブにはポストできていたので差分をGoogle Bookmarkに移しました。*1 やりかた いろんなやり方があるみたいですが僕がやった方法はdelicious.comを経由するもの。 はてブをブックマーク形式でダウンロード delicious.com に上記ブクマをインポート delicious.com からGoogle Bookmarkにインポート Google Bookmark さんは賢いので重
SIMBL の作者さんが Snow Leopard 対応をしてくれているところですが、なかなか不具合とかもあって満足には使えない状況です。 僕の環境でも起こっていた SIMBL も Plugin もちゃんとインストールされているはずなのに動かない という状況ですが某大型掲示板に書かれていた方法で改善するかもしれないのでご紹介。 SIMBL-0.9.6b で試しました。それ以前、以降 のバージョンではどうなるかわかりません。 自己責任でお願いします。 アクセス権の修復 launchd を使ってSIMBL Agent.app を起動するようにして各アプリの起動状況を監視しているようなのですが、まずそこでこけている可能性があります。 /Applications/Utilities/Disk Utility.app にあるディスクユーティリティ.appを使ってアクセス権の修復をしてみるといいかもし
canberlandさんが64bit版Safari で動作するSIMBLをリリースされました。 本家が対応版をリリースしましたのでSafariSIMBLは削除されました。 Snow Leopard でGreaseKitが動かなくなった件 - ものつくりのxdd こちらでxddさんが行った手法を応用した物になっています。 詳しくはcanberlandさんのブログを見てください。 SafariSIMBL (SIMBL for Safari 64bit) - canberlandの日記 ということで、 SafariSIMBLで動作するプラグイン達をドドッとあげておきます。 機能的には最新の32bitと同じ物で64bit用にビルドし直したものです。 Snow Leopard専用です。LeopardやTigerでの動作は未確認ですのでご注意下さい。 SafariGestures 64bit をダウン
もう2ヶ月くらい前になるかもしれませんが、Xcode関連で調べ物をしていたときに偶然見つけた方法をちょっと弄ったらうまい具合に SIMBL plugin 向けにも動いたよっという話です。 超ニッチな情報ですが、僕は超テンションが上がりましたのでご紹介。 Custom Executable を追加 メニューバーから ”Project” > ”New Custom Executable” をクリック 出てきたウインドウに適当な名前を付けて、プラグインの対象となるアプリを選択。 Run Script Build Phase を追加 メニューバーから ”Project” > ”New Build Phase” > ”New Run Script Build Phase” をクリック 出てきたウインドウに以下のスクリプトをコピペ。 # clean up any previous products/s
たまたま見つけた Xcode でのコーディング支援アプリを適当にご紹介。 accessorizer http://www.kevincallahan.org/software/accessorizer.html accessorizer はXcodeでプロパティとか Keyed Archiving に対応させるとか copy に対応させるなど、「ほぼ定型で自力で書くのが面倒くさいようなコード」をパコっとコピペできるようにしてくれるコーディング支援アプリ*1っぽいです。 詳細は配布元のビデオとか見て下さい。 いろいろと結構細かい設定もできる見たいです。 使い方 使い方の流れ的には あらかじめ自分のコーディングスタイルを設定しておく accessorizer を起動したままXcodeでコード書く。 @interface 内のインスタンス変数を書く最初のブレースをダブルクリックしてインスタンス変
次のページ
このページを最初にブックマークしてみませんか?
『griffin-stewieのブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く