iOS 6 の新しいアクションシート機能を UIActivityViewController で実装する

iOS 6 から Safari やカメラロールなどのアクションボタンをタップすると、タイル状に並んだアイコンから [Twitter や Facebook への共有機能などが呼び出せるようになりました。 下記のように、OS標準以外のアプリにもこの機能を簡単に追加できます。 このアクションシートの機能は UIActivityViewController に集約されているので、これを呼び出すだけです。ただ単純にコピペ実装できるエントリが見つからなかったので紹介しておきます。 上記のように、よくある Twitter, Facebook などにテキストとURLを投稿するときの方法です。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - (IBAction)actionButtonPressed:(id)sender { NSString *ttl = @"Tosshi Note"; NSURL *url = [NSURL URLWithString:@"http://d.hatena.ne.jp/tilfin/"]; NSArray *activityItems = [NSArray arrayWithObjects:ttl, url, nil]; UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; [self presentViewController:activityView animated:YES completion:^{ }]; [activityView release]; } UIActivityViewController の initWithActivityItems:applicationActivities: メソッドを使って、activityItems には NSString と NSURL を NSArray にまとめて渡します。 applicationActivities には、独自のアクティビティ(機能)を渡すことでさらに追加できます。今回は、システムの標準に従って表示させるため、nil にしています。 表示させたくないアクティビティは、excludedActivityTypes プロパティに、以下の Built-in Activity Types 定数を使って NSArray でセットします。 http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIActivity_Class/Reference/Reference.html Built-in Activity Types の項には、それぞれアクティビティの説明に activityItems に指定できるリソースが書かれています。

2012年10月12日 · Toshimitsu Takahashi

US SIMフリー版 iPhone 4S を輸入してドコモの Xi 契約でテザリングするまで

まず前提として私は iPhone これまで持ったことがありません(iPhone アプリを出していますが http://itunes.apple.com/jp/artist/tilfin-ltd/id371277701)でした。これまで iPod touch + Pocket WiFiで乗り切っていましたが、ドコモならテザリングできると知り Xi プランで契約すると結構お手頃ということでチャレンジしました。 なお予め断っておくと、US版の SIMフリーを日本で修理できるかは不明です、多分難しいでしょう。ドコモ側も自分たちの出している機種以外の利用は保証外と言われました。ということで、一般の方(非開発者)が特にメインの携帯電話として使うのはかなりリスキーだと思います。 先に、あまりネットでみかけなかった又は不明な事柄で、判明したことを列挙しておきます。 「SIMフリー版でもiPhone 4Sは、SoftBankかauのSIMなどiPhoneキャリアのSIMカードでないと初期アクティベーションできない」というのは嘘です。いきなりドコモのminiUIMでアクティベーションできました。 Xi の ISP(プロバイダ)は Mopera U にした方が良い。家の回線がぷららで、ここで Xi APN も提供していたんですが、認証できませんでした。素直に Mopera にしましょう。(iOSでは認証方式の選択ができないのが原因な気がします。) 知ってる方には当たり前の話だと思いますが、端末をアクティベーションしないと何もできません。SIMフリー版iPhone 4SをiPod touch的に使うことは、何らかのSIMカードでアクティベートしないとダメです。 「メッセージ」アプリでドコモの SMS が使えます。 輸入するまで まず購入したのは Official Apple Store - Buy iPhone 5s, iPhone 5c, iPad Air, iPad mini, MacBook Pro, and more です。ただ直接購入したのではなく、Exclusively for PayPal Customers | HopShopGo という販売代行サイトを利用しました。ここは PayPal で決済してくれるため非常に重宝しています。 AdMob などから米ドル建てで PayPal に報酬を受け取っている場合、現状の超円高ドル安では、なるべき米ドルのまま取引したいわけで、それが可能になります。iPhone 4S 16GB SIM Unlocked の MD237LL/A モデルを買うのに 730 ドルくらい PayPal から払いました。そして DHL で送られてきて、輸入内国消費税や手数料を2000円ほど払いました。 ...

2012年1月5日 · Toshimitsu Takahashi

Flash Professional CS5 の Package for iPhone で AIR 2 のネットワーク機能をチェック

Package for iPhone が復活の兆しだということで、AIR 2 の機能が現状どれくらい使えるのか、とりあえずネットワーク系クラスの isSupported プロパティを確認してみました。 残念ながら isSupported はどれも false になってしまった。

2010年9月12日 · Toshimitsu Takahashi

UIViewController の init の中で self.view を参照しない方がいい

Xibファイルを使わずコードで書いてビューの生成を生成したいとき、ViewController の init メソッドの中で子ビューの初期化を下記の場所でしたくなるが、この時点ではベースとなる View 自体が生成されていないので、self.view を参照した時点でこの ViewController が実装する loadView, viewDidLoad が呼ばれてしまう。 - (id)init { if (self = [super init]) { // ここで子ビューの初期化 // self.view を参照してはいけない } } たとえば、下記のようなコードだと(1),(2),(3)の順に実行されてしまう。 - (id)init { if (self = [super init]) { CGRect rect = self.view.bounds; //(1) UIView *subview = [[UIView alloc] initWithFrame:rect]; //(3) … } } - (void)loadView { //(2) } 子ビューの生成は loadView で全て行うか、init では alloc, init にとどめ、位置、サイズかかわる設定は loadView 以降で行うこと。 サイズなどを決めうちで実装していて、上記の動作には気がついていなかった。 ということで初 iPhone SDK がらみのエントリーでした。

2010年6月27日 · Toshimitsu Takahashi

iPhone が Flash をサポートしない本当の理由を考える

はじめに 周知のとおり、Apple が iPhone 上での Flash Player を延々サポートしないため、Adobe は Package for iPhone を Flash CS5 に用意して Flash/AS プログラマーに iPhone アプリケーション開発の戸を開こうとした。 そんな中 Adobe が CS5 を発表する直前、Apple は iPhone OS 4.0 の登場とともに iPhone Developer Program を改訂して Package for iPhone などのサードパーティーツールを締め出しました。 Adobe は結局この機能の今後の開発を諦めて、Android へのシフトを発表しました。。 様々な議論が行われる中、スティーブ・ジョブズは Thoughts on Flash の声明を出しました。 ただこれでも真意の探求は止まらず、The real reason why Steve Jobs hates Flash - Charlie’s Diary など様々憶測を呼んでいます。 今回の件について自分も何か裏があるのではないかと思い、色々と頭を巡らしてみました。 iPhone の Flash サポートについて考える まず整理しておきたいのは、iPhone の Flash サポートには二つの事柄があるということです。 iPhone 上のブラウザで Flash Player がサポートされること Package for iPhone による Flash アプリの iPhone アプリケーションヘの変換 前者については、Thoughts on Flash に挙げられた理由でとりあえず自分は納得しました。 Flash が使われるのは、動画配信、クールなフルFlashサイトもしくは広告であり、動画はHTML5で足りるし、フルFlashなサイトはそもそもロールオーバーのサポートがないと動作しないためPC用ユーザーインターフェイスのままでは閲覧が困難だろうし、広告は見られなくても問題がない。 ...

2010年5月4日 · Toshimitsu Takahashi