iPhone 開発 アーカイブ
東京支社で開発を担当している森本です。
いよいよ明日、 Apple が1年に1度開催する開発者向けイベント World Wide Developers Conference (WWDC 2013) がはじまります。開発者のみなさんは、今年は一体どんなことが発表されるのか、今からドキドキしているのではないでしょうか。
この一大イベントに、フェンリルからは幸運にもチケットを入手できた加藤と森本が参加します。そこで今週の Developer’s Blog では、我々が WWDC 2013 に参加して現地で感じたことや WWDC の雰囲気などを何回かに分けてお伝えして行きたいと思います。
こんにちは。Mac / iOS アプリ開発担当の金内(Emacs 派)です。
UNIX ベースである Mac OS X は、たくさんのオープンソースソフトウェアから成り立っています。基盤である Darwin はカーネルを含む OS そのものがオープンソースですし、
OS X の兄弟にあたる iOS や Xcode を中心とした開発環境もまた、オープンソースソフトウェアを多く含んでいます。
いろいろと秘密主義で有名な Apple ですが、ソースコードを公開・共有することでオープンソースの世界に多くの貢献をしているのも事実です。
こんにちは。iOS / Mac アプリ開発担当の金内です。
今日は GUI アプリ開発で役立つのに、通常の学習フローにはなかなか登場してこないワザをご紹介します。
イベント駆動型プログラム
iOS や Mac で使うような GUI アプリは一般に「イベント駆動型(イベント・ドリブン)」と呼ばれていて、ユーザーやシステムの動きがイベントとしてアプリケーションに通知され、処理が実行されるという作りになっています。
こんにちは。iOS / Mac 開発担当の金内です。
使って幸せなアプリには、サクサクとした動きが欠かせませんね。自分たちで作っているアプリが「サクサク」でなく「もっさり」と言われてしまうと残念な気持ちになりますが、反面「よし。こうなったら超最適化して超サクサクなハイパフォーマンスアプリを目指す!」と誓いを立てるよい機会でもあります。
そんな誓いを立てたあなたにピッタリのツールが Xcode に付属している Instruments(インストゥルメンツ)です。フェンリルのウェブブラウザ Sleipnir for Mac や Sleipnir Mobile for iPhone / iPad の開発でも大活躍しています。
こんにちは。Objective-C は Emacs で書く金内です。
ウェブブラウザ Sleipnir for Mac や Sleipnir 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 3 for Mac, Sleipnir Mobile for iPhone / iPad 開発担当の宮本です。
少し前ですが、今年の11月19日に Kindle Paperwhite が発売されたので買いました。
技術書があまり対応していないので本はほとんど買ってないのですが、iOS のドキュメントを読むのに Kindle をフル活用しています。
Kindle では MOBI 形式のファイル閲覧をサポートしており、HTML などの構造化された文章であれば、まあまあ変換できます。
iOS や Mac のドキュメントは Docset という形式で提供されており、中身はただの HTML なので、MOBI に変換できそうですね。
さっそくスクリプトを書いてやろう思ったのですが、少し検索したらすでに良いスクリプトがあったので、今回はその紹介をします。
こんにちは。プロモーション担当のクーパーです。
iOSがリリースされてから、いち早くアプリの開発に取り組んできたフェンリルです。今後は、iOS に限らず、タブレットの重要性が一層強くなってきそうです。GigaOM によると、ユーザーは一日を通して異なるデバイスを使いこなしながらタスクを行っており、スマートフォンやタブレットが生活に欠かせないツールになっているそうです。
こんにちは、Sleipnir Mobile 開発担当の宮本です。
皆さん、iOS では Web ページをアイコンにしてホーム画面に追加できるのをご存知でしょうか。いちいち Safari を起動してブックマークを開く必要もなく、ただアイコンをタップするだけで開けるようになります。
この機能ですが、やはり Safari で開くアイコンしか作成できません。Sleipnir Mobile ユーザーとしては、全然うれしくない機能です。悲しいですね。
ということで、今回はこれをなんとかしてみましょう!!
Mac / iOS 開発担当の松本です。
以前同じチームのミヤモトさんが紹介記事を書いていた UIAutomation ですが、使いにくくて使っていませんでした。というのも以前のバージョンはコマンドラインからテストを実行できず、毎回 Instruments を手で起動して、、という残念な状態だったからです。
ところが iOS SDK 5からはコマンドラインからテストを実行できるようになったと言うので再度トライしてみました。
こんにちは。開発担当の金内です。
みなさん、新しい iPad をもう触ってみましたか?話題は何といっても Retina ディスプレイ。4倍のピクセル数になって、まるで印刷物のような美しさです。
Sleipnir Mobile for iPhone / iPad も iPad の Retina ディスプレイ対応版を App Store に申請しています。どうやらいつもより審査に時間がかかっているようなのですが、もう少々お待ちください。
今回は iPhone / iPad 両対応のユニバーサルアプリを Retina ディスプレイに対応させるにあたってのポイントと、下手をするとハマってしまう落とし穴を紹介します。さらに、iPhone / iPad アプリの期間限定セールのお知らせもあるので最後までお読みください。
iOS/Mac 開発担当の松本です。
突然ですが、Nib ファイル(以下 Nib)が好きになれません。確かに GUI の部品をレイアウトするコードを書くのは大変なので、Interface Builder で直感的に画面を作っていけるのはありがたいです。
しかし Visual Studio 等と違って、作った画面がソースコードではなく Nib というリソースになるため、言語や環境によって動的に部品を変更する必要が出てくると、Nib とソースコードに画面を作成する為の情報が散らばってしまいますね。これだと管理コストも高くなりますし、何より気持ちが悪いです。
どうしてソースコードが生成されないんだ!と憤っていたら、nib2objc という Nib から Objective-C のコードを生成するツールが、公開されていることを知りました。しかも随分前からあるみたいです。
AdHoc ビルドを作成し、実機に転送できないことがあったのでその解決方法の一つをご紹介します。
こんにちは。開発担当の林です。
iPhone / iPad のウェブブラウザでページを見ているとき、けっこうな割合でピンチイン・ピンチアウトすると思いますが、それがどのくらい拡大されているのかを取得する方法を書きます。
また、応用でピンチイン・ピンチアウトされても、見た目のサイズを維持するにはどのくらい拡大すれば良いかということにも触れたいと思います。
広告バナーなんかでよく使われてるアレの仕組みです。何かのお役に立てれば幸いです。
こんにちは。開発担当の金内です。
みなさん、Sleipnir Mobile for iPhone / iPad を使っていただけているでしょうか?
今日は Sleipnir Mobile の特徴となっている「TouchPaging」を開発したときの経験から、iPhone / iPad アプリ開発でスムーズなアニメーションを実現するためのコツをご紹介します。
こんにちは、開発担当の眞弓です。
テキストを表示するとき、通常は UILabel などを使いますがときどき「凝った文字列を使いたい」ということはないでしょうか? そんなときのために、今回は Core Text の基本的な使い方について書いてみようと思います。
人によってやり方は違うと思いますが、ちょっとしたことに使う場合に私がやっててわかりやすかった方法を紹介します。
位置を指定するやりかたはイメージしにくいので、文字列単位で扱えるやり方で実装をしてみました。
以下のような感じで、「属性付き文字列を作って、その文字列を付け足していって、最後にまとめて表示」というやり方です。
- 1 : 文字列を作成
- 2 : フレームを作成
- 3 : DrawRect