フェンリル

Developer's Blog

Mac 開発 アーカイブ

OS X の Kernel Extension に署名する

Fenrir Advent Calendar 2015

こんにちは。無茶振りするほうのエンジニア門多です。The Go Programming Languageとどちらにするか迷ったのですが、まだ読めていないので、 Fenrir Advent Calendar 2015 の 8日目は Kernel Extension の開発ができるようになったこと、にしました。

続きを読む

Xcode を使ってプロジェクトを ARC にコンバートする

iOS 7 top

こんにちは。開発担当の福井です。

先月の WWDC で iOS 7 や OS X 10.9 が発表されましたね。このブログでも何度かお伝えしているのでご存知だとは思います。みなさんはこれらの新しい環境への準備はされていますか?今回は新環境へ対応する際に同時にやっておきたい、ARC へのコンバートについてお話しします。

続きを読む

【非開発者向け】iOS 7 / OS X Mavericks についてもっと知る方法(Apple公式)

iOS 7 top

こんにちは。開発担当の金内です。

WWDC 2013 で発表された iOS 7、全面的に新しくなった UI デザインを中心に話題になってますね。

iOS デベロッパプログラム(有料)に登録している開発者には各種ドキュメントや iOS 7 のベータ版が提供されていますが、普通のユーザーの方はデベロッパプログラムに登録しませんよね。「それでも iOS 7 のをことをもっと知りたい!」という方のために、あまり広くは知られていない iOS 7 についての Apple 公式情報を紹介します。OS X Mavericks についての情報もあります。

続きを読む

開催まであと数時間! 明け方の WWDC 2013 現地リポート

Moscone

大阪生産課で開発を担当している加藤です。

前回から Developer’s Blog では Apple が1年に1度開催する開発者向けイベント World Wide Developers Conference (WWDC 2013) のレポートを開始しています。

この記事を書いている時刻は現地時刻で 6/10 7:00 AM になります。 Keynote の当日の早朝の雰囲気をレポートしたいと思います。

続きを読む

Apple が公開しているオープンソースソフトウェアいろいろ

こんにちは。Mac / iOS アプリ開発担当の金内(Emacs 派)です。

UNIX ベースである Mac OS X は、たくさんのオープンソースソフトウェアから成り立っています。基盤である Darwin はカーネルを含む OS そのものがオープンソースですし、
OS X の兄弟にあたる iOS や Xcode を中心とした開発環境もまた、オープンソースソフトウェアを多く含んでいます。

いろいろと秘密主義で有名な Apple ですが、ソースコードを公開・共有することでオープンソースの世界に多くの貢献をしているのも事実です。

続きを読む

【iOS/Mac開発】GUI 開発の秘薬「あとで実行」でトラブル回避

こんにちは。iOS / Mac アプリ開発担当の金内です。

今日は GUI アプリ開発で役立つのに、通常の学習フローにはなかなか登場してこないワザをご紹介します。

イベント駆動型プログラム

iOS や Mac で使うような GUI アプリは一般に「イベント駆動型(イベント・ドリブン)」と呼ばれていて、ユーザーやシステムの動きがイベントとしてアプリケーションに通知され、処理が実行されるという作りになっています。

続きを読む

NSSharingService を使ってかっこいい共有を実装する

nssharingservice-on-sleipnir

こんにちは。Mac/iOS アプリケーションエンジニアの福井です。

Mountain Lion から OS X でもNSSharingServiceの導入により外部サービスとの連携が簡単にできるようになりました。NSSharingServiceは iOS の Social.framework とはひとあじ違い、OS X ならではのリッチなトランジションも実装することができます。今日はそんな NSSharingService の使い方をご紹介します。

続きを読む

【iOS/Mac開発】超サクサクアプリへの必須ツール Instruments を使いこなそう

こんにちは。iOS / Mac 開発担当の金内です。

使って幸せなアプリには、サクサクとした動きが欠かせませんね。自分たちで作っているアプリが「サクサク」でなく「もっさり」と言われてしまうと残念な気持ちになりますが、反面「よし。こうなったら超最適化して超サクサクなハイパフォーマンスアプリを目指す!」と誓いを立てるよい機会でもあります。

そんな誓いを立てたあなたにピッタリのツールが Xcode に付属している Instruments(インストゥルメンツ)です。フェンリルのウェブブラウザ Sleipnir for MacSleipnir Mobile for iPhone / iPad の開発でも大活躍しています。

続きを読む

WebKit でブラウザ開発: WebView でエラーページを表示する

OS X には今をときめく WebKit が搭載されているので、Web ページを表示するコンポーネントである WebView を使えば、ほとんどコーディングすることなしにウェブブラウザ風のアプリができあがってしまいます。

フェンリルのブラウザ Sleipnir for Mac も WebView を使っています。もしかしたらさっきのような理由で「ブラウザなんて簡単にできるもんね」と思われるかもしれませんが、実際に作っていくとデスクトップのウェブブラウザに求められるごく当たり前の機能も WebView そのままでは動かなかったりして、開発しなければならない部分が山ほどあるのが現実です。

今日は、そんな機能のうちのひとつ「エラーページの表示」について取り上げてみましょう。

続きを読む

NSString#rangeOfString: と CFStringFind ではデフォルトのオプションが違う

こんにちは、Sleipnir for Mac 開発担当の宮本です。

先ほど、CFStringFind を使うと文字列検索が速いよという記事を書いたのですが、速さの違いはオプションによるもののようです。
Twitter での、開発者さんたちの反応でわかりました。勉強になります!

rangeOfString:options: には NSLiteralSearch というオプションが、CFStringFindWithOptions には kCFCompareNonliteral というオプションがあります。

それぞれ逆のことを意味するオプションがあって、デフォルト値が逆になっているわけです。

(rangeOfString:Options:) + (NSLiteralSearch) = (CFStringFind)
(rangeOfString:) = (CFStringFindWithOptions) + (kCFCompareNonliteral)

といった感じでしょうか。

続きを読む

【Objective-C】 文字列検索するなら、NSString の rangeOfString: より CFStringFind を使うべき(検証)

こんにちは、Sleipnir for Mac 開発担当の宮本です。

前回「Sleipnir for Mac のパフォーマンスを大幅に改善するためにしたこと」という記事で、rangeOfString: より CFStringFind を使ったほうがいいよと書きました。

今回は、実際にパフォーマンス計測してみてどのくらい違うかを調べてみます。

(追記)なぜパフォーマンスに違いがでてくるか判明したので、別の記事を書きました。
=> NSString#rangeOfString: と CFStringFind ではデフォルトのオプションが違う

続きを読む

Mac の Quick Look をちょっとだけ快適に – xattr 編 –

こんにちはこんにちは! エンジニア川端です。

今年は桜の開花が早かったですね。「花は桜木、男は岩鬼。」と書こうとしたら、すでに去年のブログで書いてました

ファイルを選択してキーボードのスペースを叩けば簡単プレビュー。
Mac OS X 標準機能の Quick Look、ステキですね。
# Windows の方は FenrirFS で同機能をご堪能ください!

標準のままでもかなり役立つ Quick Look ですが、不満なのがテキストファイルの扱い。
標準のテキストエディタで作ったファイルはちゃんとプレビューできるんですが、
Quick Look 成功

最強ステキソフト Emacs などで作ったテキストファイルは
Quick Look できない(´・ω・`)
という風に巨大なアイコンが。

いくつかある解決策から、今日は「xattr 編」をお届けします。

続きを読む

【iOS/Mac開発】Core Data を使いはじめるのに最低限知っておけばいいこと

こんにちは。Objective-C は Emacs で書く金内です。

ウェブブラウザ Sleipnir for MacSleipnir Mobile for iPhone / iPad は、ブックマークや履歴・タブのデータを Core Data を使って管理しています。 Core Data は iOS / OS X 開発の主要フレームワークのひとつですが、どうにもとっつきにくいためか、尻込みしてしまう方も多いという印象があります。

この記事の目的は、とっつきにくい Core Data を最低限の内容にしぼって解説して、「なるほどそーいうものなのね。ボク/ワタシのアプリでも使ってみよっかなー」と思っていただくことです。

どんな時に使うの?

ひとことで言えば、Core Data は Apple 純正の高機能・高性能データ管理フレームワークです。

iOS / Mac 向けのアプリである程度の件数(数百件とか)を超えるデータを保存・利用する場合は、Core Data の利用を検討するのがおすすめです。 Sleipnir のブックマークや履歴も、10件くらいしかないケースもあれば、数百、数千件になるケースがあってもおかしくありません。 そのようなデータを扱う場合、Core Data は有力な選択肢になります。

続きを読む

Sleipnir for Mac の実装技術: Layer-Backed View

Sleipnir 4 for Mac

こんにちは。Sleipnir for Mac, Sleipnir Mobile for iPhone / iPad 開発担当の金内です。

今日は究極の先端的ウェブブラウザ Sleipnir for Mac の実装に用いている Mac OS X の Layer-Backed View という技術についてご紹介します。

ところで、先日 Sleipnir の先端ぶりを紹介するビデオを公開したのですが、もうご覧いただけたでしょうか?もしまだでしたらこの機会にぜひどうぞ。

まえおき

この記事に出てくる NSView は、GUI の 基本要素となるクラスです。iOS で言えば UIView、Android で言えば View に相当します。

続きを読む

Mac なら Emacs は難しくない!Command キーのすすめ。

 

こんにちは。iOS / Mac 開発担当の宮本です。
いつも Emacs で Objective-C を書く話をしていますが、今回は Objective-C とは関係ありません。

Mac で Emacs ユーザーか、Emacs を使ってみようかなと考えている方向けのお話をします。

Emacs でファイルの保存は C-x C-s ですね。
よく使うのに 2 ストロークで大変です。
なので、私はそんなものは使いません。
Command-s で保存です。
実は、コピー、カット、ペーストですら全部 Command キーでやります。

続きを読む