iPhoneDeveloper名古屋 勉強会

微妙な海山です。
またまたお久しぶりです…

11/13に参加した勉強会のまとめメモを載せたいと思います。
iPhoneアプリについては、まだまだまだ基礎的なところから知識が足りないので、中々難しく感じてしまうところもあったのですが勉強になりました。
以下メモですが、メモ公開不可の場合などはご連絡いただけるとありがたいです!><

EventKitについて

hirobeさん
iOS4.0からカレンダーのDBにアクセスできるようになった。

EventKitを使う準備

2つのフレームワークがある
 UIの方はUIが、EventKitの方はデータのほうが入っている

EventStoreを使う準備

self.eventStore=インスタンス
 init,releaseに時間がかかるので、起動時に作成して使い回すこと


基本的にはiphoneのカレンダーアプリでしか登録できないことしか出来ない。
SDKを使ってもこれ以上のことは入れられない

画面を使わないイベントの変更
  • EventStoreのメソッドを使って変更・追加・削除が出来る
    • 画面を使わない変更の場合は、「変更する前にかならずユーザに確認してください」
こまったこと

 複数のカレンダーを持っているときに、カレンダーの情報は取れるが、カレンダーのグループを表す情報がない
 カレンダーではhoge@gmail.com、googleカレンダーなどという分類になっているのだが…
 プロパティがないのでこれが取れない。adressなどでもって入るようだが公開されてないみたい。typeで判断するしかない

iAdの話とか

sunflatさん

iAdとは?

iOS4.0から導入された、アプリ内の広告配信システム

  • OSの一部なのでメンテナンスフリーなはず
  • アプリ内に簡単に埋め込める
使用方法
  • iAdのフレームワークをリンク
  • ADBannerViewのサイズを指定
  • 初期化が呼ばれたら、ADBammerViewというクラスを記述して、サイズ指定→Viewに追加
  • UIViewControllerのViewにAdBannerViewを貼る
    • Bannerのサイズは2種類
実際
  • 実はiAdが動作しているのを確認したことがない
    • 日本ではほとんど広告が表示されない

公式で、バナーを押したあとに全面表示トイストーリ3は全部HTML5らしい。ゲームも出来る

注意
  • 広告取得失敗時はAdBannerViewを隠さないと審査が落ちる
  • 4.0以降しか表示できない
  • UIViewController上に配置する必要
    • UIViewを直接Windowに配置しているため‥
      • ゲームなどでOpenGLを使っているときは使えない
イベントハンドラの実装
  • ADBあんえrViewDelegateプロトコル
    • 広告失敗したときに呼び出されるところの部分でAdBannerViewを隠す!
    • 成功したときは表示。失敗して隠していたときは表示
  • 一定時間ごとで自動で再リクエストしているようなので、何度も呼ばれる
iOS3への対応
  • ビルド設定で、Deployment Targetを3.0に
    • ここで指定した以降のアプリケーションなら動くようになる。APIを使っていなければ
  • ターゲットのiAdTestの役割をweakに帰ることで、iADのフレームワークがOSになくても起動する。
  • if ([UIDevice currentDevice] systemVersion]とすると、現在のOSバージョンが文字列で返ってくる
    • これで分岐させて、3では表示できないようにする
実際の配信効果
  • 現状あまり広告が表示されない
    • 広告を要求した際に実際に広告が表示される確率
    • 全世界で15%程度(US30%)
  • 広告収益率(eCPM)がすごく高い
    • USではUSD程度 アプリによるが。 AdMobの10倍に見える
    • iOS4普及率*Fill Rate *eCPMを考慮すると、実際の収益率はAdmobと変わらないかも
    • AdMobとiAd両方使うという技がある。iADの広告表示失敗(OSが3以下の時)→AdMobを表示で
    • 組み合わせると、たくさん表示できるAdMob+少ないが単価高いiAd

 

  • 実際には、iAdの広告取得失敗したというのを受け取るまでには1秒程度など割と時間がかかるから、そのあとAdMobを読み込ませるというのはキツイかも。
    • 海外向けのアプリで見込みがあるときだけ利用したらいいかも。
    • 表示率Fill Rateが低い・収益率が高い

AVFoudationを使ったカメラアプリ

grandeforestaさん

カメラアプリを作る
  • UIImagePickerController(以前から
  • AVFoudation(4.0から
UIImagePickerControer
  • メリット
    • 3.x系でも使える
    • 簡単
  • デメリット
    • 細かな制御が出いない
    • 写真の品質管理が出来ない

 メモリ不足になって落ちてしまう可能性もある
 
インスタンス化→デリゲート設定→設定(カメラなのか、フォトライブラリなのか)→modelViewコントローラーに渡せば表示される

AVFoudation
  • メリット

 細かな制御が可能
 高度なカメラアプリが作れる

  • ちょっと面倒

 資料も余り無い。英語の公式資料ならあるが、サンプルコードがDevelper Centerにはないから使いにくい

豆知識
  • iOSバージョン取得
    • [UIDevice.currentDevice].systemversion

 stringで返ってくるから、比較がしにくいが、NSStringにcompareオプションズがあって、Numericサーチがある。NSStringの比較をうまく使えばいける。

  • 3.01とか3.1とかが大変だった。
    • 3.1以上などの指定にすれば行ける
    • バージョンの比較

NSString compare:options:
 NSNumericsearch


NonObjective-c

jQTouch
 http://jqtouch.com
のお話でした。
確か、以下の本を参考にされていたはずです。

iPhoneアプリケーション開発ガイド ―HTML+CSS+JavaScript による開発手法

iPhoneアプリケーション開発ガイド ―HTML+CSS+JavaScript による開発手法


イカちゃんの髪の毛がワイパーとなったおもしろスライドでキャッキャしていたのですが、
イカワイパーが公開されました!
http://blog.iwa-ya.net/2010/11/15/080918
素敵です…!


iPhoneアプリは触る話もありつつ…というのは過去の話になってしまったのが不安ですが…
とりあえず、ちょこちょこ目に入る分はチェックしていきたいと思います。



すごく余談。近況

就活なるものが始まりはじめて、これが4年生になるまで続くのかー…とちょっと(´・ω・`)としていたり、バイトでバタバタしていたり、のんびりし過ぎたりです。びっくりするぐらい、今までと生活パターン(内容)が違ってきています…(それがエントリの更新頻度の激減にも繋がっているのですが…)
多分、息切れ期間といいますか、沈んでいない期間が珍しく続いているので、また焦りすぎずのんびりしっかり進んでいきたいと思います。
今度は沈みすぎないようにやってみます。