読者です 読者をやめる 読者になる 読者になる

第19回potatotips(iOS/Android開発Tips共有会)に参加しました

第19回potatotips(iOS/Android開発Tips共有会)にブログまとめ枠で参加してきました。
今回の会場提供・主催者はクックパッド株式会社さんです。 オフィス、物凄く素敵でした。

到着しました


connpass.com

5分間という制限時間の中でiOS/Androidに関するTipsを発表(Lightning Talk)する勉強会も今回でなんと19回目。息の長い勉強会ですね!

Lightning Talk(LT)

以下が当日発表されたLTの資料と僕のメモとなります

RxT4A

gfxさん / android

gfx.hatenablog.com

  • クックパッドではがっつりRxJavaを使っている
  • RxJavaのユーティリティー的な位置づけとして公開されているRxAndroidが、微妙だったのでフォークをした
  • RxAndroidの今後の展開としてはCore部分とView特有のイベントなどを効率よくRxJavaでハンドリングするRxBinding の2軸に別れつつあり、その潮流の中で現状RxAndroidで提供されている機能が次のバージョンではごっそりと削られてしまう気配がある
  • 具体的な動向自体はまだ定かではないけれど、先行きの不透明感が拭えないことは確かなのでフォークして自分たちの足場を固めておこうという 気持ちで着手(まだ着手して2,3日といった感じらしい)
  • 社内での知見がたまり、それに伴いRxJava用のユーティリティー的なメソッド(割と汎用的)も増えてきたのでそれらを集約できる「場所」としての役割もあるみたい
  • あとは、ベストプラクティスやバッドプラクティスをexmpleとして提供できればいいなという気持ちもある(素敵!)


Making Your App Static

yuseinishiyama さん / iOS

  • RubyのカンファレスでSwiftの発表をして、動的な言語をDISるという苦行(クールだ!)をしてきたけど、ポテチで発表する方が緊張するとのこと
  • Swiftにより静的な言語でiOSアプリを書けるようになってきたけれど、Cocoaのフレームワークの特性上まだまだ動的な部分を扱わなければならい
    • 例えば、コードに対してコード外の要素から文字列(Storyboard上で指定するクラス名とかID名とか etc)を渡してあげなくてはいけなかったり など。こういった情報の散らばりは煩雑で大変だし、正確に扱えないと実行時エラーの引き金になりかねない(危険!怖い!)
  • できるだけ「動的」な要素をコードの中に書かないようにするためのアプローチについて考えてみた
  • 設定より規約といった体でコンポーネントを構成する複数の要素(StoryboardやXib)を同一のファイル名で束ねて、可能な限り静的にコードで解釈していくスタンスというのは個人的にも実践していきたい


Push通知を届けるために

@futabooo さん / Android

  • GCMにまつわるトラブルシューティングについてのtips共有
  • 恋人同士のプライベートなコミュニケーションを売りにしているアプリにとってpush通知はとても重要な要素
  • RegistrationIDが変更されるタイミング
    • アプリのアップデート時
    • 端末の再起動時
      • 端末が再起動時にregistrationIDをサーバに送ってあげないといけないのでBOOT_COMPLETEDでのフックはちゃんと考慮する
  • GCM診断がGoogle Play Developer Consoleから使えるようになった
    • 過去に送ったpush通知がクライアント側に送達されているかを確認できる(便利!)
  • ユーザの端末環境によってpush通知を正確に送ることが困難な場合がある
    • 試行錯誤の連続。Push通知を届けるための戦いは終わることはない


WWDCのチケット外れてもSFに行った方が良い理由

kitasuke さん / iOS

  • サンフランシスコに行った話
  • WWDCのチケットはあえてはずす。はずしてしまえばしめたもの!
  • かかった総額は12万円
  • 飛行機はマイルを貯めておこう。56000マイル貯めたので実質3万円でSFにいけた
  • 現地で開催されるミートアップに行こう
  • YosemiteとEL Capitanを見に行こう
    • 優しい気持ちになれる
  • WWDC開催中のSFは特に人や情報が集中する期間なのでWWDC抜きにしてでも行くと良い


メソッドを外部から無理やり叩く〜開発中だからできる荒技〜

cattaka_net さん / Android

  • デバイスの中のメソッドを直接叩きたい
  • ブラウザ経由でアプリのメソッドを叩く
  • 開発用のバッグドア
  • センサ系のアプリを開発する場合には、バックドア経由でデバッグするといいね
  • でも、バッグドアを残したままリリースすると危険です


Core Graphics on wtachOS2

shu223さん / iOS

  • watchOS2でCoreGraphicsがネイティブSDKに追加されたのでwtachOS2で何ができて何ができないのかを調べた
  • スクリーンキャプチャやキーパスアニメーションといったようにCALayer や UIView 系のAPIを利用する処理はできなかった


Android M からの Web Messaging

funnelbitさん / Android

  • JSとJavaの連携について
  • WebMessage用のクラスとメソッドをAndroid Mでも使えるようになっていた
  • だいぶモダンな印象
  • portを媒介にするスタンス
  • まだpreview段階なので変更される可能性を視野に入れておく
  • SupportLibraryでバックポートしてほしい


新しいCoreDataライブラリ

Muukii iOS

  • CoreStore という新しいCoreDataライブラリを開発している
  • CoreStoreの強み
    • Swiftで書かれている
    • Thread管理がしっかりしている
    • 複数のSQLiteファイルが使用可能(Cofigurationで分けることができる)
    • Observerの用意
    • インクリメンタルにマイグレーションすることが可能


はじめようData Binding

@sys1yagi Android

  • Android開発における課題
    • View周りがとても煩雑!!
    • 様々なライブラリの登場でそういった煩雑さも幾分か緩和されてきてはいるけれど、正直、気持ちとしては全然足らない
  • DataBindingLibraryでその煩雑さが一気に解消される
    • 大体のものを自動生成してくれる
  • ViewWithIdsでViewHolderいらずになる
  • DataBindingLibraryの最初の入門としてはViewHolderの代替として使うと良い
  • クックパッドではすでに導入している
  • TechBoosterでAndroid本にDataBindingLibraryのことを書いている


iOSの画面遷移と私

tokoromさん iOS

  • Storyboard時代以前と以後でのiOSでの画面遷移まわりを俯瞰
  • WatchKitで登場していたContextが実は画面遷移のアプローチとしては一番良いのではないのか
  • AndroidでいうところのIntent的な発想
  • SegueContextを今朝リリース

github.com


Breaking Changes for Fundation API in iOS9

kishikawa katsumiさん / iOS

  • iOS9(Xcode7 beta)でNSMutableDictionaryに変更点がある
  • NSMutableDictionaryのシンタックスシュガーでの代入の裏側で使われてるメソッドの引数がnullableになった。
  • nilを代入すると、要素の削除(Keyを含めて削除される)
  • iOS8の場合はクラッシュが発生する(NSInvalidArgumentException)がiOS9の場合は空になる
  • なんだこれは・・・


進化するGoogle Cloud Messaging (GCM Topic MEssage)

mochicoさん / Android

  • GCMのTipicMessageingについての話
  • Topicの購読ユーザに対して100万単位で一斉通知ができる
  • 詳細については夏コミで!
  • 緑の旗に集え!


UTI

Hiroki Katoさん / iOS

  • 正規表現が好き
  • 関西では繰り返すと面白い
  • 落ち着いて
  • Uniform Type Identifer (かっこいい名前)
  • iOSとかOSXの中で使われている
  • UTIの雰囲気をみてデータがどういうものかを悟りMIME TYPEをつけてくれたりする
  • UTIから拡張子やMIME TYPEを手に入れることができる
  • Appleが定めている (超クール)
    • 崇めよう


airbnb/DeepLinkDispatch

@wasabeef_jpさん / Android

  • スキーマをフックして中央集権的に遷移すべきコンポーネント(Activity,Receiver,Service等)をハンドリングしてくれるActivityがある感じ
  • 遷移すべきActivityの指定はアノテーションベースで設定する
  • シンプルな実装でDeepLinkが実現できる
  • 某DeepLink関連のサービスが提供しているSDKも、恐らくこのライブラリに近いアプローチをとっていそうな印象


iPad MultiTasking

@_mponさん / iOS

  • 圧倒的当事者意識
  • 会社のお金でWWDC2015に参加しました!
  • WWDC2015の参加レポート頑張って書きました!(すごい)
  • iPad MultiTasking
    • iPadの画面を分割できる
      • Picture in Picture
        • 動画見ながら写真とか見れたり
      • Slide Over
        • 同じ画面上で2つのアプリを切り替えながら使用することができる
      • Split View
        • 2つのアプリで画面分割できる
    • AutoLayoutしておかないとね
    • Device Orientationをすべて対応しておく
  • 御社Webサイト持ってます?
    • ますますWebのレスポンシブ対応の重要性が高まっている


Flow,Mortar and Dagger2

@tai2さん / Android

  • Flow
  • Mortar
  • Dagger2

    • コンポーネントを疎結合にすることができる
    • squareのDaggerをGoogleがフォークしてDagger2として提供している
    • Dagger2はコンパイル時にソースコードを自動生成するから静的に型チェックとかができる
  • サンプルコード公開しているよ - github.com


intoducing Teiten

@nakajijapanさん / iOS

  • モバイルに関するtips共有会なのにデスクトップアプリ( OS Xアプリ)の紹介をしている
  • 冒頭で謝罪と言っていたけれど、申し訳なさが微塵も感じられない
  • 個人的に監視するのが好きと公言した
  • TeitenはLGTM画像作成に便利
  • OS Xアプリの開発でも基本的なiOSアプリの知識があれば恐れることはない
  • @nakajijapan Swift楽しいってさ!良いことだ。
  • @nakajijapan 開発楽しいってさ!良いことだ。
  • Teitenのコードは公開されている
  • http:// https://github.com/nakajijapan/teiten


intdocution to APT

isumin5210さん / Android

  • 大学院生だけどWantedlyでエンジニアとして働いている
  • 朝の6時半にpotatotips繰り上げ当選
  • APT
    • Annotation Pricessing Tool
      • APTはdeprecatdだったんだよ Java7
    • 実際はPluggable Annotation Processing APIを指す
  • 便利annotationライブラリーを作る
  • 作るアプローチとして2つのモジュールベースで開発する
    • api: ライブラリの利用者が触る部分
    • proccessor: コンパイラが触る部分
  • GoogleとSquareは偉大

次回のpotatotips情報

connpass.com