potatotips#40に参加してきました!

今回はこちらのイベントに参加してきました!

potatotips.connpass.com

会場はRettyさんになります。

今回はandroidのブログ枠で参加させていただきましたが、iOSの方の発表も下の方に少し載せてあります。。

Android

Modern Java Libraries with Kotlin

speakerdeck.com

Androidのトップバッターは@kobakei122さんの『Modern Java Libraries with Kotlin』からでした。
基本的にJavaのライブラリはKotlinでも使えますが、一部対応が必要なものがあり、それぞれの対処についての説明でした。
それぞれちょっとしたハマリポイントになりそうなのでとてもいいtipsを聞けてよかったです

Kotlin Reflection

qiita.com

hikaru_satohさんのkotlinのリフレクション機能についての説明でした。
kotlinの持つリフレクション機能としてはKClass,KPropertyの2種類あり、それぞれの使い方などを実際のコードで記述していてとてもわかり易かったです。

Instant App Tips

www.slideshare.net

Samさんからの、話題のinstant Appについてのtipsの発表でした。instance appについての仕組み・どんな機能が使えるのかなど、instant Appの全体をつかむのにとてもいいtipsでした。
個人的にはmoduleを4MBに抑えなくてはいけないこと、ContentProviderが使えないことに驚きを感じました。

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

qiita.com

@tomoya0x00さんからのkotlinについてのお話でした。
マストドンの話…!かと思いきやメインはKotlinを使った際のtipsがメインで多く紹介されていていました!
個人的にcoroutineを知らなかったので勉強になりました。非同期処理をサクッとできそうであれば便利ですね。
ActivityのExtraをlazyで取得するのもいいですね

「Lottie」でお手軽Animation実装

speakerdeck.com

Lottieを利用すればサクッとおしゃれなanimationが作れるよ!という@shanonimさんからのお話でした。Adobe After Effects animationをmobile nativeに読み込んでくれるので、Android/iOS/React Nativeで使うことができるそうです。
使い方は①Adobe After Effectsでanimationを作成し、②bodymovinでJSONに変換し、③最終的にアプリに組み込む(Androidの場合はxml<com.airbnb.lottie.LottieAnimationView />jsonファイルなどを定義するだけ)というシンプルなもので導入できてしまいます!
ただ発表でもあったようにAfter Effectsを誰が作るのかは問題になってきそうですよね。
lottie fileにサンプルがいくつか載っていて、とてもおしゃれです…!

Protocol Buffer

speakerdeck.com

Androidの最後は@takusenbaさんのprotocol bufferでした。
Protocol bufferとは通常json形式でクライアント・サーバー間のやり取りを行うところ、binary形式で行うことで通信が軽量化できるというものですね。
使い方はProto fileを定義した後、server・client側にシリアライズ・デシリアライズ用のファイルを用意する必要があります。client側では今回Retrofitを利用していました。
ツラミとしてはAPI変更時にファイルを書き換えないといけないこと・binaryなのでデバックしづらいということが挙げられます。
後のtwitterでこんなライブラリがあるとの紹介がされていました…!パケットを解析できるんですね。

github.com

こちらのqiitaにも詳しいことが挙げられていました!

qiita.com

iOS

Androidのブログ枠だったのですがiOSの方も資料などを少し載せてみました

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

speakerdeck.com

kosakoさんからの発表でした。
ログをjson fileに集約することで分析しやすくなるというお話でした。
ユーザーの行動分析などをする時にログが分散しているとやはり数字を取ってきづらいですよね…。
jsonだとログの意味も見やすくなるというのも分析するとなるといいですね!

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

qiita.com DCGAN(Deep Convolutional Generative Adversarial Networks)というデータセットを読み込ませ、その特徴からありそうな画像を自動生成する技術を利用したお話でした!
今回はDCGAN-tensorflowを利用し、ドット絵を学習させて、ありそうな画像を出させようというものです。

シークバーサムネイル表示作成Tips

@satoshi0212さんからはサムネイル作成のtipsのお話でした!
動画の秒数のバーをクリックすると出て来るあれですね。
10秒ごとに1コマ再生しているため、全部を1つづつ取ってくると大変な事になってしまいます。そのためアトラス画像を取得し、そこから画像を取ってくることで軽めに実装することが可能になるそうです…!

Universal Links対応をした話

www.slideshare.net

@Ridwyさんからuniversal linksのお話でした。
universal linkを利用した時の挙動(起動する条件)・仕組み・実際運用してみた部分のtipsなど様々な観点からの説明があり、とても勉強になりました!

いまから使えるSpreadSheetView

speakerdeck.com

@jp_martha_jpさんからはSpreadsheetViewの紹介がありました!
merge cellsが使えるのは今現在このライブラリだけらしく、実際に簡易アプリを作ってみたものの紹介でした。
今度試してみようと思います。

lightweight dependency injection

speakerdeck.com

@motokieeさんで 最初にメルカリカウルについての説明がありました!
dependency injectionについてのお話でした。dependency Injectableを使って抽象化することで楽に書けるようになるそうです!
自分はあまり詳しくないのですが、これから勉強しようと思います…!

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

www.slideshare.net

最後は@_monoさんのLisensePlistについての発表でした。
LisensePlistはライセンス一覧を表示・自動で管理してくれるという便利なもので、今までライセンス管理の他のライブラリなどがありましたが、それぞれ対応していないものがあったりなど… 今回は全てのものに対応してくれるということで決定版だそうです

懇親会

懇親会ではRettyさんからピザの用意がありました!
とても美味しかったです。

何度かpotatotipsさんのイベントには参加していましたが、ブログ枠では初参戦でした。
なかなか聞くのに必死になってしまいあまりまとめた感じになりませんでしたが、とても充実したイベントでした!
懇親会などでも何人かとお話できて良かったです。
会場・ピザ・飲み物などをご提供いただいたRettyさん・登壇された方・参加者の方々ありがとうございました!
次回も参加したいなーと思っております!