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

mattakのブログ

てきとうにあそぶ

potatotips #19 いってきた

ただのメモ

Potatochips #19


@gfx

  • RxAndroidの先行きが不透明
  • RxJavaユーティリティを突っ込みたい

AndroidSchedulers

  • RxAndroidと同じ

Schedulers

  • ベストプラクティスあんまりわかんない
  • とりあえずthread2つでよさそう

AndroidCompositeSubscription

  • 同じinstanceをfinalで持ってる. 再利用可能

OperatorFilterLite

  • もうすこし軽く. objectを作り過ぎないようにしたい

RxAndroid/RxBindingの動向をみまもりたい


@yuseinishiyama

静的にもっと書きたい話

UIViewController

  • 例えばStoryboardとのヒモ付け、同じ情報を何箇所にも書かないといけない
  • 1Storyboard / 1ViewControllerがオススメ
  • global funcでstoryboard instantiateする関数

型名の抽出

  • 一般的な方法、nest classには使えない
  • mirror typeつかう
  • swift 2.0では selfのdescritionでおk

IndexPath

  • enum in enum で定義するとよさそう

UITableCell

  • class name == nib == class identifier

@futaboo

push通知周り

GCM

  • registoration idを保存
  • 送信

注意

  • 再起動するとregistration idが変わることがある

RECEIVE_BOOT_COMPLETED

  • GooglePlayの自動アップデートが効かなくなるのが問題

GCM診断

  • idを入力すると過去に届いたかどうか、その一覧がでる

問題

  • Dozeモード
  • 省電力

@kitasuke

  • fastlane meetupにいったよ
  • 日本語ガイドに紹介されてうれしい
  • Clipper = suika
  • Meetupいくといいよ

メソッドを外部から叩く技

  • c88 tech boosterに寄稿したよ
  • Method Http Exporter: つくったよ
  • 開発用のバックドア

仕組み

デバック

  • センサ系の操作に便利ですよ

Core Graphics

  • @shu22

watchOS2

  • 線、UIBezierPath、円、gradationのかける
  • 手書きできない

JS native間のmessage

htlm5 web messaging

  • 送信用ポート、受信用ポート
  • mWebView.postMessage()

  • html5標準なのでよさそう

  • いまはpreview 段階. M Preview

New Library for CoreData

  • Hiroshi Kimura

新しいデータストアライブラリつくってる

  • CoreStore

よいところ

  • swift
  • thread管理
  • mainthreadはread only / 書き込みはbackground
  • sqlite fileが複数使用可能. configでわけられる
  • sqlが結構シンプルに書ける
  • fetchの記述がシンプル
  • VCとの連携が簡単
  • migrationが充実

swift2.0対応中


はじめよう Data Binding

  • @sys1yagi

Android開発の課題

  • View周りが煩雑

View Binding

  • RoboGuice / ButterKnife
  • 助かるんだけど、全然足りない

Google IO Data Binding Library

  • com.android.databinding:dataBinder:1.0-rc0
  • minSdkVersion 2.1-

Layout XMLの記法を拡張してくれる

  • root要素にlayout書くだけ
  • compileの時にコードを吐いてくれる
  • view with idsでview holder
  • automatic setter
  • observable...

View With IDs

ViewHolderいらずに・・・

layout書くとViewHolderが出来上がる

実際に試すと超楽しい

  • ViewHolderの代わりにくらいからやると良さそう

夏コミ

Cookpadではすでにリリース済み


iOSの画面遷移と私

  • @tokorom

  • 紀元前: Storyboard登場まえ

  • 紀元後: Storyboard登場

self.presentViewControllerでやる

storyboard時代の遷移

  • prepareForSegue
  • 超嫌だ

watch kitの contextがよい

  • 疎結合 anyobject
  • 遷移後・遷移前で依存関係ができてない
  • interfaceで何でも渡せる

ライブラリつくった

  • SegueContext

NavigationController/TabController挟んでもへっちゃら


Breaking changes for Foundation API in iOS9

  • @kishikawa
  • Relm
  • meetup T-shirtくばるよ

NSMutableDictionary

- (void)setObject:(nullable ObjetType)obj forKeyedSubscript:(KeyType <NSCopying>)key

破壊的な変更なので要注意

  • nilを渡すと要素が削除される => xcode7
  • xcode6.x時代は NSInvalidArgumentException

GCM Topic Message

  • @mochicon
  • KAYAC inc
  • Lobi
  • C88 東A-39a

GCM Topic Messagin

  • グループユーザに送信
  • Topicに登録した100万件までに送信
  • ニュース配信とかに使える

GCMのGoogle APIsの利用方法が変わった

  • google-services.jsonというconfiguration fileを取るように変更された
  • project_number: sender_idに相当
  • 複数のアプリで使いまわせる

新しい方式

  • app/直下にconfigファイルをおいておくと、勝手にpluginがidを生成してくれる

UTI

  • hatena

extension / mime / uti

UTI

  • Uniform Type Identifier

mime type -> extensionを作れる

  • ライブラリある
  • UTI(mimetype: "image/jpeg").extension

DeepLinkDispatch

  • wasabeef
  • CA
  • ameba tv

DeepLinkDispatch

  • airbnb
  • deeplink schema 起動が楽
  • simple
  • anotation base

Activity

@DeepLinks({"wasabeef://deeplink/{id}"}) public class MainActivity extends Activity {}

  • Bundleにidが入ってる

Method Annotationも使える

  • static, returnでintent

ApplicationにDeepLinkCallbackをimplementするとエラーがくる

Test

  • adb shell am start -W -a android.intent.action.View -d "wasabeef://"

iPad Multi Tasking

  • @mpon
  • 参加レポートを1日づつかいた

Picture in Picture

  • 動画を再生しつつ操作できる
  • Youtubeとか

Slide Drawer

  • 引っ張ってくとSplitViewになる
  • Device Orientationを全部対応すればできる

iPadアプリ

  • safariが対応してる
  • ipadなのにiphoneサイズで閲覧されることがある

Flow, Mortar, Dagger2 Tips

  • @tai2

Fragmentのライフライクル問題

  • IllegalStateException

Flow

Mortar

  • getSystemServiceを拡張
  • Viewの永続化がBundleでできる

Dagger2

画面ごとにObjectGraphを作る

  • @WithComponent、画面に対応するobject graphを指定する

サンプル作った

  • github.com/tai2/flowmortardagger2demo

CookPadはRoboGuice使ってる


Teitenってアプリをつくった

  • @nakajijapan
  • pepabo
  • NKJxxx をたくさん作ってるよ

teiten

  • 自分を10秒毎に撮り続けるアプリ
  • osxあぷり

previewをdrag&drop -> LGTMできるようにしたい

  • NSTableView -> drag&dropに必要
  • NSDragOperation
  • NSPasteboardWriting

github / qiitaでclipboardにcopy&pasteできるのいいよね


APT

  • @izumin5210

Annotation Processing Tool

  • aptはjava7でdeprecated
  • もとはコマンド
  • Pluggable Annotaion Processing API

構成

javacのための入り口

  • autoservice

あがめよう

  • JavaPoetで生成するとよい
  • testはGoogleのCompile Testingをつかうとよい

小並感

  • cookpad 良いオフィスだ
  • dataBinderおもしろそう、導入しようか
  • DeepLinkDispatchもよさそう