クックパッド社で #potatotips 第11回に参加してきた!あのApple Watch用SDKのTipsもあった!

つい最近加湿器を片付けたと思ってたのにまたすぐに加湿器を使う季節になり冬を感じています。@yimajoです。
第11回potatotipsで発表者として参加してきました。

potatotipsとはクックパッド社が開催する参加者全員がTipsを発表するというコンセプトのiOS/Androidアプリ開発者向けの勉強会。...でしたが、最近は発表しないオーディエンス枠が増え、参加者多数でさらに新オフィスに移転後初の開催ということで人気のIT系技術発表会になっていました。

今回は私がpotatotipsのiOS発表まとめ記事を書いていきます。私自身、potatotipsでは4回くらい発表しているのでだいぶ余裕がありました。過去の資料のリンクを張っておきます→potatotips#3やはりお前らのiOS7対応は間違っている。#5クックパッドでジョブズも成仏する開発Tips発表したったwww。#6やはりお前らのCoreDataの使い方も間違っている。#9iOSアプリ開発の現場で訊いてきたTips

それでは本題の発表をまとめていきます

Animation Prototyping

クックパッド社@yskm_さんによる発表。SwiftでPlaygroundを使ってプロトタイピングをする話。クックパッド社に入ってまだ3ヶ月ぐらいとのこと。

  • スクロールビューのPullToRefreshアニメーションに伴ってヘッダーのアイコン表示を変化させる
  • 引き下げるとヘッダーを位置によってアイコンを変化
  • Playgroundでパラメータを変更しつつリアルタイムに描画結果を確認できる
  • ある程度できたらプロジェクトファイルに入れて確認
  • Playgroundについてはcookpad開発者ブログに投稿してる http://techlife.cookpad.com/entry/2014/11/12/170041

え!?Swift使ってるのにそんな描き方してるのですか

司会も務めるクックパッド社@yuseinishigayamaさんの発表。以前開かれたpotatotipsを見てクックパッドへ入ることを決意したという話が印象的でした。

  • クックパッドに入るまでAutoLayoutとSwiftをあまり使ってなかったので大変だった
  • Swiftだとインスタンス変数作ってdidSetで綺麗に書ける
  • ??でnilのときに右辺の値を入れられる(2項演算子)
  • クロージャに突っ込む変数はunwowndを使って循環参照を防ぐ
  • as?をつかってキャスト

WatchKitで出来ないことまとめ(公開範囲内で)

@kitasukeさんの発表。Apple WatchのSDKであるWatchKitについて、開発者が知りたい内容をかなり丁寧に説明されていました。

[slideshare id=41997102&doc=watchkitpotatotips-141125060847-conversion-gate02]

  • AppleのDeveloper Forumの話はNDAがあるのでしないがDeveloper Forumは盛り上がっている
  • WatchKitはApp Extensions
  • ジェスチャーも追加はできない
  • カメラはついてない
  • Mapはスナップショット表示(一枚画像なNon-interactive snapshot)
  • Core Locationはできるが推奨されてない
  • バックグランド処理はサポートされていない
  • あまりWatch Kitは長く使うようなアプリではないので操作が終了するとWatch Kit自体は停止する
  • 新しいオブジェクトの追加、変更、削除はできない(hideはできる)
  • 今はまだセンサー系にアクセス用のAPIはない
  • Digital Crown系のAPIもまだ見当たらない
  • 音を操作することもできない

小学生でも分かった気になるSize Class

恥ずかしながら自分(@yimajo)の発表です。今回はiOS8 SDKで導入されたSize Classが実は簡単なんだよということを例題をもって説明し、なぜ最近Size Classが難しいと誤解されているかについて言及しています。

タイトルにある「小学生でも分かった気になる」というのは本当に小学生がわかった気になるわけではなく、時事ネタなのであまり深く考えないでください...。

[slideshare id=41995388&doc=ios8sizeclass-141125052225-conversion-gate01]

  • 前半:Size ClassによってiPad用StoryboardをiPhoneと共通化できて便利
  • 後半:Size Classが難しいと入れている理由を説明
    • Size ClassのRegularとCompactは記号として理解をとどめておく程度でいい
    • 回転処理はSize Classと直接関係ないので混同してはいけない
    • iPhone6+のためだけにSize Classがあるわけじゃない
    • AppleはiPhone/iPadという名称で分けているがその違いは年々なくなってきている。大きなiPhoneが出た際にそれがiPad用のレイアウトであるほうがユーザーは嬉しいはず。そのためにSize Classでレイアウトを分けることがAdaptive User Interfaceなんじゃないか

iOSアプリをチャットからリリースする

@k_katsumiさんの発表。iOSアプリの申請用バイナリのアップデート自動化の話です。所属するユビレジだけでなくアドバイザーであるVASILY社iQONのアプリも同じスクリプトで自動化されたとのことです。

資料はまだアップロードされていないようです。アップロードされ次第追記します。

  • Xcode(厳密にはApplication Loader)に付属するiTMSTransporterで申請バイナリをiTunes Connectにアップロードできる
  • Hubot連携すれば担当者が外にいてもチャットでアップロードすることもできた
  • GitHubにコミットを積んでいてテスト済みなものを対象にしている
  • iTMSTransporterはAppStore用の画像を自動でアップロードすることも出来るのでそれを今後の課題としている
  • gemとしてスクリプトを公開している(!?) https://github.com/kishikawakatsumi/xcjobs

iPhoneだけでデバッグしたい

@haranicleさんの発表。iOSアプリをMacなしにデバッグするときのライブラリ紹介。Flexは便利なんですが内部処理に手を加えているようで実動作が変わってしまうという意見が会場から出ていました。

  • CocoaLumberjackで実機のログをiPhone自体で見れる
  • Flex(Flipboard社がリリースしているライブラリ)がすごい
    • Viewのプロパティが一覧できる
    • DBの内部が見れる
    • UserDefaultsの内部が見れる

その他質問情報

  • Flex使ってるとダメな副作用出た
  • ユーザーテストしてもらうときにFlex入れてると変な動作したことがある
    • 回転するとステータスバーがおかしくなった

はじめてのWKInterfaceController(公開範囲内で)

@TachibanaKaoruさんの発表。これもWatchKitです。先に発表された@kitasukeさんが開発者が知りたい内容をまとめられていたのに対して、こちらは企画者が知りたい内容をまとめられている印象でした。

[slideshare id=41996946&doc=watchkitinterface-141125060413-conversion-gate01]

  • WatchKit Appが普通のアプリケーションで動く
  • Notificationが通知に対応
  • Glanceはどういう動きをするか不明。文字盤を上に向かってスワイプすると色々な情報が見れる(という噂)
  • 公開されているSDKはiPhoneで処理してUIをApple Watchに送ることがメインになっていてがっかり
  • Menuは画面(WKInterfaceController)ごとに最大4つの機能を選ぶ画面になる(画面長押しでMenu画面が表示される)
  • Menuのアイコンはオリジナルで作れる(システムが用意しているものもある)
  • 絶対値配置でUIを並べられない
  • モーダルビューは自動でcancelボタンが表示されるので自分でモーダルを閉じる処理を書かなくていい
  • HierarchicalはiOSのナビゲーションコントローラに近い(これは戻るボタンが表示される)
  • Controller間のデータ受け渡しがiOSのViewControllerと違い特殊
    • WKInterfaceControllerでは直接任意のオブジェクトは渡せない
    • NSString, NSArray, NSDictionaryを渡すことはできる

SAICRAFT社ではAndoridアプリ開発者を募集しているようです。Wantedly上から応募して気軽に寿司を一緒に食べながらお話でもしましょうとのことでした。

写真

恵比寿ガーデンプレイスに移転して初めて参加したクックパッド社のpotatotips。移転前と同じく勉強会の最中にキッチンの流し台で洗い物をしてる音が聞こえてきて「誰かのウチに遊びに来てるんだっけ!?」という感想を抱いてしまうのはクックパッドならではでした。家庭的な感じがとても良かったです。

折角なので写真をアップロードします(めずらしく許可を取りました)。

入り口にはこっそりGitHubのマスコットであるオクトキャットが出迎えてくれてました
IMG_2909

発表はこんな様子でした

発表風景

発表の後ろには新キッチン!中央になんかある...

クックパッドキッチン

生ハムの原木ってやつかな
IMG_2909

↓ん?この冷蔵庫の右中央に変な仕組みがある?この冷蔵庫ってもしかして...

IMG_2916

日立のアイス&ウォーターディスペンサーを搭載した冷蔵庫、R-SBS6200-XSじゃないか!!

水道直結で冷蔵庫が氷を作ってくれて、この取り出し口から氷と水を出してくれるやつや!!!

↓ここにアフィリエイトを貼っています。興味がある人は是非!!!

そうなると中身が気になる〜ということで許可を得て開いてみましたー!

IMG_2917_Fotor

あー...うん、誰かのウチに遊びに来たみたいな、そんな感じすごく良いですね。

さいごに

勉強会を開くことでその会社に入りたいと思う人が出て、実際に入社し司会までするというのはiOS界隈でも面白い事が起こっている感じがします。

まだまだクックパッド社ではiOSアプリ開発者を募集しているようなので、興味がある方は次回オーディエンス枠で参加してみるのもいいかもしれません。

One Reply to “クックパッド社で #potatotips 第11回に参加してきた!あのApple Watch用SDKのTipsもあった!”

コメントを残す

CAPTCHA