koogawa blog

iOS、Android、foursquareに関する話題

2014/8/2 #startup_ios スタートアップiOS勉強会 #5 に参加してきたよ

昨日(8/2)はスタートアップiOS勉強会 #5 に参加してきました。

f:id:koogawa:20140802192433j:plain

この勉強会は第3回で発表させて頂いて以来、2回目の参加になります。

スタートアップiOS勉強会 #3 に参加してきたよ - koogawa blog

すでに第5回のTogetterまとめも作成されているようです。

第5回スタートアップiOS勉強会 - Togetter

そんなわけで、今回も各発表の内容を簡単にまとめさせて頂きました。自分用メモなので、読みにくい点はご容赦ください。

※スライドをEmbedで埋め込んでいますが、問題があればご連絡くださいm(_ _)m

既存アプリにToday Extension入れてハマったよ

id:jeffsukeさんによる発表。iOS 8から導入されたToday Extension(ウィジェット)を実装する上でハマったことについて紹介されていました。

jeffsukeさんのツイートにもあるように、今回の内容は上記のブログにまとめてあるそうです。以下、発表内容のメモです。

  • Today Extensionターゲットを作成
    • File > New > Target > Application Extension > Today Extensionを選択
  • Today ExtensionのViewの生成
    • 背景色を正しく設定しないと通知センターっぽいUIにならないので注意が必要
    • 何も設定しないと真っ白になってしまう
    • 必然的に黒背景になるので、UIButtonやUILabelなどは白っぽい文字でトンマナを合わせる必要あり
  • Info.plistを編集
  • アプリ上でのコードの再利用
    • 本体アプリのコードを効率的にシェアする仕組みが必要
    • Xcode6からはiOSアプリでもEmbedded frameworkを作ることが可能
    • Extensionで使用したいファイルをBuild PhasesのCompile Sourcesに追加していく
    • Today ExtensionでCocoaPodsを利用する場合は、対象となるターゲットをPodfileに追記する必要がある
  • DBの共有:App Groupの作成
    • モデル部分の共有は、アプリ本体とExtensionどちらからでもアクセスできる領域にデータを保存する必要がある
    • App Groupを定義し、共通領域に保存
    • NSUserDefault 等が使える
  • データのアップデート処理
    • 定期的に widgetPerformUpdateWithCompletionHandler メソッドが呼ばれる
    • このメソッド内でデータ取得の成否を NCUpdateResult として渡す必要がある
  • Today Extensionからアプリを開く
    • URLSchemeでアプリを開ける
  • テストの実施
    • NSLogの中身を表示するにはビルドターゲットをToday Extensionにする必要がある
    • Today Extensionのストーリーボードに変更を加えた後、クリーン後ビルドしないと、UIが変更されない

iOSアプリ制作ツール AppBuilder を支える技術

tomzoh さんによる発表。Webブラウザ上でアプリを作成できる AppBuilder の紹介と、それを支える技術について発表されていました。

  • AppBuilderの紹介
    • iPhoneアプリを作るWebサービス
    • 実現したいこと
      • 普通の人もアプリで自己表現するための場を提供
    • アプリビルダーでのアプリ制作
    • アプリの機能
      • カタログ、マップ、イメージ、カメラ、ショー、その他
    • 申請
      • ユーザはWebブラウザ上でアプリを申請
      • 運営スタッフが審査
      • 審査OKならAppStoreに登録
  • アプリビルダーを支える技術
    • ビルド用のサーバがある
    • スタッフ審査用とAppStore申請用のバイナリがある
      • 審査用(AdHoc/Enterprise)
        • xcodebuildでコンパイル
        • xcrunでmobileprovisionを埋め込んでパッケージ
      • 申請用(AppStore)
        • xcodebuildでコンパイル
        • できた.appをzip圧縮→Application Loader
  • すべての人がアプリで自己表現できるようにしたい

https://itunes.apple.com/jp/app/appbuilder-viewer/id669006736?mt=8&uo=4&at=10l8JW&ct=hatenablog

AIR for iOSについて

itozさんによる発表。iOSアプリも開発できるクロスプラットフォーム開発環境「Adobe AIR」の特徴や、メリットについて発表されていました。

  • Adobe AIRについて
  • AIR for iOS
    • ブラウザ上でiOSアプリの動きをシミュレーションできる
      • 見積もり提案の段階でプロトタイプを見せられる
    • Q.AIRは遅いのでは?
      • GPUで描画できるモードがある
      • ネイティブと遜色無い動作
    • Q.各OS個別の機能を利用するには?
      • Native拡張というのがある
      • Air Native Extension (ANE)
      • 各OSのネイティブと連携できるエクステンションが作れる
  • AIRのメリット
    • アニメーションやデザインなどの演出要件に対して、柔軟にスピーディーにクロスデバイスでプロトタイプし、 ゴールイメージを共有できる

undaの紹介

スマートフォン向けビデオメッセンジャーunda」CEOによる英語ピッチでした。


Unda Video Selfies - YouTube

  • undaを支える技術
  • 会場からの質問
    • ダウンロード数は?
      • 200,000
    • ユーザが多い国は?
      • 50%がアメリカ、だんだんアジア圏のユーザも増えてる

Pocket Video: 動画編集 と ビデオ作成

Pocket Video: 動画編集 と ビデオ作成

  • Fitness Labs
  • 写真/ビデオ
  • 無料

KIFを使ったView周りのテスト

[twitter:@kitasuke] さんによる発表。Square製のUIテストツール「KIF」を紹介されていました。

  • 構造
  • フロー
    • beforeAll → beforeEach → testHoge → afterEach → afterAll → tearDown
  • KIF + OHHTTPStubs
    • 組み合わせることでControllerのテストが良い感じに!
  • 良い点
    • 見た目がかっこいい
    • 何となく安心する
    • 自分で担当した作業が、他の場所に影響が無いことを確認出来る
    • 早い段階からUIの改善を出来る
  • 悪い点
    • テストケースのメンテナンスが大変
    • 手が届かないところもある
    • AccessibilityLabelの管理に気をつける必要がある
    • iPhone Simulatorが事前に立ち上がっていると起動しない

懇親会

LTのあとは恒例の懇親会タイム!

残念ながら私は用事があったためここで退席(´;ω;`)

今回もたいへん勉強になりました!