potatotips#39にブログ枠で参加したので、内容をまとめました。

![IMG_2781.JPG](https://qiita-image-store.s3.amazonaws.com/0/135757/8fac6fa4-07ec-f093-e206-8bc49a10d6c7.jpeg "IMG_2781.JPG")

４月１３日に開かれた[potatotips勉強会#39](https://potatotips.connpass.com/event/51176/)に参加してきました。

メモったものと、取った写真、上がってるスライドをまとめましたが、一部理解できず、メモをとれてないセクションもございますので、 他のブログ(http://colorbox.hateblo.jp/entry/2017/04/15/003950 ,http://sanpeisbllog.blogspot.jp/2017/04/potatotips-39-iosandroidtips2017413.html) で参考ください。

個人的には、懇親会でお話した馬鹿にされるPHPの実は隠れたすごい所が面白かったです。

##1.Swiftでプレゼンしたら何が起こるか
- 喋る内容を書いてるものを読み上げるだけでは、聴衆はつまらなく感じる。


>口からでてくるのと同じ情報を文字でスライドに乗せてもいいことなどない。   
>*Steve jobs*

- プレゼンは自分の口で語るべき。

- Swiftでパワポみたいなプレゼンスライドを書いたが、冗長になってしまったため、別のやり方を検討中


##2.Andoirdでfatlane
![IMG_2790.JPG](https://qiita-image-store.s3.amazonaws.com/0/135757/c925c9db-d89f-27d1-77a7-5d8382263aa2.jpeg "IMG_2790.JPG")


fastlane→面倒な作業を自動化
Android→Gradleでもできる
Gradle→fastlaneでもできる

ほとんど一緒なので、iosだけ知ってる人でもandroidでfastlaneをかける。

https://speakerdeck.com/player/d9dabbefe1dc486cbae620a9d47cf68c#

##3.Learning Firebase


Firebaseを勉強する方法について

Googleの人からFirebaseならこれを見ろ、と言われた
↓
- Conferenece/meetup by google
- ios/android guides
- ios/android codelabs
- udacity course firebase in weekend for ios/android

https://speakerdeck.com/player/1099471e18624240a32b72b55e2b2649#

4月24日 IBMとサーバーサイドswiftのセミナーをやるので、参加者募集中

##4. Android Javaの既存プロダクトをKotlinで書き換えている話
![IMG_2785.JPG](https://qiita-image-store.s3.amazonaws.com/0/135757/be9a6671-a55e-a762-28e8-3e7db92e511f.jpeg "IMG_2785.JPG")


###開発しているアプリについて

- サブスクリプション型EC
- 会員向けアプリ（新規登録はWebのみ）

Kotlin導入
ButterKnifeをBindingに使っていたが、ライブラリと相性悪い
↓
データバインディングをやろう！

チーム内ルール作り
- KotlinへのConvert
- リファクタリング推奨


##5.技術本執筆のすゝめ
###執筆の敬意
Android３名で企画。はじめはAndroidのみだったが、SWIFTをあとから追加
２０１６年１１月技術評論社さんと打ち合わせで目次を決定
執筆環境はGithub privateリポジトリで作成

２０１６年１２月
執筆開始
２０１７年１月
初稿提出
２０１７年３月
印刷版提出

###執筆のつらみ
年末年始休暇が消滅
１２人で書いたので、報酬を１２分割

###執筆のうまみ
- 間違ったことをかけないので、すごい勉強した
- 他のメンバーがすごい
- 肩書が出来た
- iOS/Androidの対比を工夫して書いた。
- 親が喜ぶ
- 他の人からすごいといわれる

###執筆は怖くない

https://speakerdeck.com/player/b80d9b6986354416b19df5e28298c1a4#

##6.AutoDisposeとRxLifeCycleの話
###RxLifeCycleの話
問題点
ストリームの定義とキャンセルする部分が離れているためわかりにくい
↓
RXLifeCeclyというライブラリがある
Lifecycleを定義し、ストームにcomposeする

ストリーム定義時に埋め込むので、わかりやすい／可読性が高い

↓
これでOKだと思ったが。。。。
RxlifecycleはtakeUntilオペレータを使っている
つまい、Disposableの大体ではない。
↓
AutoDispose
→RxLifecycleの問題点から生み出されたもの
toオペレーターを使う。
↓
欠点：toオペレータはストリームチェインを破壊するので、Scopeを組みこんだあとにかけない
→AutoDisposeはRxJava2から。


##7.Swiftのstructのstored propertyはvarにしよう
![IMG_2786.JPG](https://qiita-image-store.s3.amazonaws.com/0/135757/6f9bc1ba-6d23-651d-8263-1b5a02ab46ee.jpeg "IMG_2786.JPG")


Immutableな設計は良いことだからletのほうがいいのでは？
↓
structならvarでもimmutableになるからOK
呼び出し側で、letかvarかを指定すればおｋ

http://qiita.com/omochimetaru/items/7265e440418b38088ccb

##8.Sending Simple Data to Other Apps	

シェアどうやって作ってますか
Gridのやつを作る
intent.createChooser(sendIntent,'shareTitle')

どう使い分けるか
List
- 任意アクションを別アプリで行いたいとき
- コンテンツを見るために別アプリを開くとき

Grid
- タイミングによってユーザが開くアプリを使い分けたいとき
- コンテンツを共有するために別アプリを開くとき

##9.UICollectionViewDataSourceはViewControllerと別にして実装しないほうが良いと最近思う	
![IMG_2788.JPG](https://qiita-image-store.s3.amazonaws.com/0/135757/8e44dd18-1e33-9927-cb09-91d7568f155b.jpeg "IMG_2788.JPG")


https://speakerdeck.com/player/78b0cc9ce1fd432d95d3d6183adc27bb#

##10.What’s new in Android O WindowManager
new kayer "TYPE_APPLICATION_OVERLAY" added

result of reprecated layers
→viewは映るが、タッチイベントが動かない

##11.[SE-0160] Limiting @objc inference	
![IMG_2789.JPG](https://qiita-image-store.s3.amazonaws.com/0/135757/cedd5128-959a-f0c9-df25-7a9d63744678.jpeg "IMG_2789.JPG")

https://speakerdeck.com/player/85883b9c035e4dcb81fa9e939c388b15#

##12.俺たちが欲しかった 下タブはコレジャナイ	

##13.冴えない彼女（UserInfo）の育て方	
![IMG_2791.JPG](https://qiita-image-store.s3.amazonaws.com/0/135757/dd1f34ad-19cb-7e3d-8b43-0121629b6a9b.jpeg "IMG_2791.JPG")

https://speakerdeck.com/player/22efe8bce8434090bbf0950ae099e7d6#

##14.Autofill Framework