potatotips 40 まとめ


まとめ枠なのに、がっつり遅刻して、4つほどtipsを見逃してしまいました😇

登壇された方のスライドがアップロードされ次第、更新していきます。

## kosako / どうしたらログがちゃんと管理できるのか?	/ iOS

聞き逃しました🙏

(スライドはアップロードされ次第更新します)

## Keisuke Kobayashi / Modern Java Libraries with Kotlin	 / Android

聞き逃しました🙏

[Modern Java Libraries with Kotlin](https://speakerdeck.com/kobakei/modern-java-libraries-with-kotlin0)


## shu223 / ゲームアプリの「ドット絵」をディープラーニングで自動生成する	/ iOS

聞き逃しました🙏

[ゲームアプリの「ドット絵」をディープラーニングで自動生成する #potatotips](http://qiita.com/shu223/items/bd9102a10dd4ec8a86be)


## hikaru_satoh / Kotlin Reflection / Android

聞き逃しました🙏

[Kotlin リフレクション](http://qiita.com/HIkaruSato/items/d9a9b0ca4b1da77221fb)

## satoshi0212	 / シークバーサムネイル表示作成Tips / iOS

(スライドはアップロードされ次第更新します)

AbemaTVでシークバーサムネイルを作成したというTipです。

アトラス画像方式で行っていて、画像の取得タイミングを遅らせています。
必然性あるアニメーションを付けることでエレガントに、数字を表示する場合は意味と見やすさを念頭に行っているようです。

こういう部分を作る担当になるとモチベーションもあがりますね。

## Sam / Android Instant Apps / Android

[Android Instant Apps](https://www.slideshare.net/AkiyoshiSamukawa/20170524-potatotips-40)

先日のGoogle I/Oで発表されたInstant Appsについてです。

Instant Appsとは、インストール不要のAndroidネイティブアプリで、URLの起動に応じてInstant Appが実行します。

Android App Linksを使ってGoogle Play Storeからダウンロードされます。

しかし、フォアグラウンドでしか実行できない、外部ストレージへのアクセスができない、デバイス内の他のアプリと連携できない、など制限事項も多くあります。

データのやり取りDAOが使えないですが、代替としては、Firebase Realtime Databaseの利用が考えられています。

Instant Appsの対応は4〜6週間と言われているそうです。

## Ridwy / Universal Links対応をした話 / iOS

[Universal Links対応をした話](https://www.slideshare.net/chiharunameki/universal-links)

Universal LinkはHTTP/HTTPSのリンクをタップした時にドメインに対応するアプリが起動する機能です。

アプリがインストールされている
同一ドメイン内の遷移ではない
※厳密にはスキーマが違う場合は起動

アプリ側では、entitlementのassociated domainsにapplinks:をつけてドメインを記載します。
universal links経由でアプリが開かれた時に呼ばれるメソッドを実装します。

サーバー側では、AASA(apple-app-site-association)ファイルを配置します。
このとき、
	* ルート / .well-knownサブディレクトリ配下に追う
	* HTTPSで直接アクセスできるようにする

などの注意事項があります

## tomoya0x00 / フル Kotlin で Mastodon クライアントを作ってみて	/ Android

[フル Kotlin で Mastodon クライアントを作ってみて](http://qiita.com/tomoya0x00/items/863a8ba1b04f02f19700)

Swift書いてたらJavaが辛くなったので、Kotlinを使ってみたという話です(わかる)。

Swiftでもできること
* propertyのデフォルト値の設定
* lazyでの遅延取得

Kotlinでできること
* Coroutine(async/await)で簡単に非同期処理できる
	* try-catchで例外処理できる
	* UIスレッドでの実行は、launch(UI)で
	* ライフサイクル管理は、Jobを使うことで管理できる。
* 無名クラスのインスタンス化

Q&A マストドンクライアントは難しい？
そんなに難しくなさそう、Twitterクライアントよりは簡単


## pancake / いまから使える SpreadsheetView / iOS

[いまから使える SpreadsheetView](https://speakerdeck.com/jp_pancake/imakarashi-eru-spreadsheetview)

岸川さんの作った[SpreadsheetView](https://github.com/kishikawakatsumi/SpreadsheetView)で、さっそくスケジュール表を作ってみたという発表です。

スケジュール、ガントチャート、タイムテーブルというサンプルが3つついており、UICollectionViewのようなAPIとなっています。

特徴としては、セルをマージできるようになっています。

先日の[BBQ](https://connpass.com/event/56629/)で、Binary Searchの辺り聞いてみましたが、色々な試行錯誤が垣間見えましたが、まだ途中段階ということでした。今後さらなる発展を期待してます(PRチャンス)

## shanonim / 「Lottie」でお手軽Animation実装	/ Android

[「Lottie」でお手軽Animation実装 / implement animation with Lottie](https://speakerdeck.com/shanonim/implement-animation-with-lottie)

LottieはAdobe After effectで作ったアニメーションをjson形式で組み込むことができるライブラリです。

[Lottie iOS](https://github.com/airbnb/lottie-ios) / [Lottie Android](https://github.com/airbnb/lottie-android)

[Bodymovin](http://aescripts.com/bodymovin/)でjsonに変換します。

導入までのハードルとして、After Effectを誰がやるの？というのが問題としてはあります。

[Lottie files](https://www.lottiefiles.com/)というサイトがあり、色んなアニメーションのサンプルを見ることができます。ファイル自体はCreative Commonsなので、jsonをダウンロードして、アプリに組み込むことができます。見てるだけでも楽しいですね。

## Motoki Narita / Lightweight Dependency Injection / iOS

(Lightweight Dependency Injection)[https://speakerdeck.com/mnat44/lightweight-dependency-injection-tips]

Dependency Injection(DI)によって、アプリの安定化を実現したお話です。

意図しない用途で使われたときにコンパイルエラーにしたいという方針で開発されていました。

"良い設計は誤った用法をコンパイルエラーにする"

## TakuSemba / protocol buffers / Android

(スライドはアップロードされ次第更新します)

Protocol Bufferはjsonではなく、オブジェクトベースの形式で通信が行えるものです。
サーバー側とクライアント側で同じ型定義でオブジェクトを扱えるのと、シリアライズ、デシリアライズのファイルの書き出しを行うことが可能です。

いいと思いながらも、導入したという話はまだあまり聞かないですね🤔

## mono / LicensePlist - A license list generator of all your dependencies for iOS applications (作ったCLIツールの紹介 + 開発Tips) / iOS

[LicensePlist - A license list generator of all your dependencies for iOS applications](https://www.slideshare.net/mono0926/licenseplist-a-license-list-generator-of-all-your-dependencies-for-ios-applications)

[LicensePlist](https://github.com/mono0926/LicensePlist)を作ったというお話です。

実行すると、Cocoapods/ Carthage(Github経由) から、ライセンス情報を取得し、Settings.bundleにplistをインストールしてくれます。

また、yamlによるカスタマイズも柔軟に行えます。

Homebrewで簡単にインストールできます。

これをPre-actionのRun Scriptに登録しておけば、ビルド時に簡単に更新できます。

## 懇親会

🍕がおいしかった

![IMG_5062.jpg](https://qiita-image-store.s3.amazonaws.com/0/14789/85bf1a23-ad89-406d-7f5c-5eef0330e3bd.jpeg "IMG_5062.jpg")

https://twitter.com/shinyorke/status/867354915613548546

## ステッカーが名刺代わりになる文化

https://twitter.com/d_date/status/867369087743152129

## 次回のpotatotips

次回は6/19(月)にヤフーさんで開催です。

https://twitter.com/d_date/status/867422465118437376