2019/03/27(水)に行われた「potatotips #60 (iOS/Android開発Tips共有会)」のまとめです。
ハッシュタグは#potatotipsです🐦
イベントページはこちら↓
GitHubの管理ページはこちら↓
開場
- 時間:19:15-
今回の主催はZOZOテクノロジーズさんです。写真を撮る許可を頂いたのに撮り忘れてしまったのですが、円状のガラスで囲まれた宇宙船みたいな会議室がとにかくすごかったです笑
LT
- 時間:19:30-
意外に面倒じゃなかったXcode Template
- iOS
- 発表者:さかくらさん(@isloop)
Xcode Templateについての発表でした。
着いていけなかったので後ほどスライドを見て復習したかったのですが、スライドが見つかりませんでした…。
アプリのパフォーマンス改善を数値化
- Android
- 発表者:やまださん
Firebaseを使ってアプリのパフォーマンスを改善したお話でした。
「Firebase Performance Monitoring」はアプリのパフォーマンスを計測するツールとのことです。
「Firebase Remote Config」は設定をリモートで変更できるツールです。
私は理解が追いつかなかったのですが、どうやらこういうことのようです↓
「Firebase Performance Monitoring」は使ったことがなく、使ってみたいと思いました。
Bitrise iOS Engineer
- iOS
- 発表者:Viktor(ビクター)さん
BitriseさんのiOSエンジニアによる発表でした。
私は英語が全然できないので着いていけませんでした…。
Bitrise Android Engineer
- Android
- 発表者:Tamas(トーマス)さん
BitriseさんのAndroidエンジニアによる発表でした。
私は英語が全然できないので着いていけませんでした…。
iOSで正しく歩数を取得する
- iOS
- 発表者:sato-shinさん(@sankakuButton)
iOSで歩数を取得する方法についての発表でした。
以下の2つに対する解決策を紹介されていました。
- iPhoneとApple Watchで歩数が重複してカウントされる
- 手動で入力された歩数もカウントされる
サンプルコードまで用意されています。
発表後に参考となるスライドをツイートされています。
iOSで歩数を取得する際は参考にしたいスライドでした。
Firestoreを使って純広告配信機能を作った話
- Android
- 発表者:mahiguchさん(@mahiguch1)
Firestoreで純広告(自社で販売している広告)配信機能を作られたお話でした。
「Firestore」はFirebaseの機能の1つであり、NoSQLのDBです。クラウド上にあるのですが、SDKを使ってiOSやAndroidアプリから直接アクセスできます。
↑のドキュメントではβ版と記載されていますが、2019/01/31にGA版(「General Availability」の略, 正式リリースのことを指す)となりました。
Firebase Remote Configと組み合わせて純広告配信機能を実現されていました。先ほどのパフォーマンス改善の発表でもRemote Configを組み合わせていたので、やはり便利なようです。
私も業務でCloud MessagingとRemote Configを組み合わせて、特定のユーザーにリモートプッシュ通知することを実現しています。(その仕組みを考案したのは私ではないですが)
サーバーレス構成にするならFirestoreは非常に便利だと思いました。クライアント側に複雑なビジネスロジックを置いてもいいようなアプリには効果的です。
Azure PipelinesでiOSアプリをCI/CDしてみよう🚀
- iOS
- 発表者:ウホーイ(@the_uhooi)
Azure PipelinesでiOSアプリをCI/CDした話です。
ウホーイ史上、初のLTでした⚡
せっかくなので初LTの感想などを書きます。
今だから言えますが、発表直前に初めてApple Watchに「心拍数が高いです」と怒られました。リハーサルもしたし思ったよりは緊張していなかったのですが、やはりドキドキしてしまうものです。
笑いを取ると自分も聞き手もリラックスできるかと思い、try! Swift Tokyo 2019で頂いたFirebaseの靴下を「可愛い〜」と言いながら見せつけたのですが、結果Twitterには発表内容より靴下について多くツイートされていました🧦
靴下ツイートも嬉しいですが、批判でもいいので発表内容のフィードバックもください!!
厨二感満載のIDでごめんなさいww
実際に中学生のときくらいに考えた名前をそのまま使っているのでお許しください🙏
ここからは真面目な話です。
まず、私の発表についてツイートをしてくださったみなさん、本当にありがとうございます。たった一言でも何か頂けると励みになります😊
あとこちらのツイートについてですが、実はちゃんと意味があって今回のテーマを選びました。
Bitriseの方が来てくださることはみんなわかっていたと思うので、CI/CDに興味のある方が多く来ると推測しました。そのような場でこの発表をすることで、以下の2つが望めると考えました。
- CI/CDサービスの候補にAzure Pipelinesを入れてもらえる
Microsoftの回し者ではないですが、まだネット上に知見が少ないので、知見を共有していただける方が増えると嬉しいのです - 懇親会でCI/CDについていろいろな方とお話できる
1つ目は計測できないのでわかりませんが、2つ目は叶いました。実際に懇親会ではCI/CDに関するお話を多くの方とできました。
一番多く聞かれたことは、「なんでAzure Pipelinesを使ってるの?」でした。答えは「業務の都合上、私に選択権はありませんでした」ですw 強く主張すれば他のサービスも使えたかもしれませんが、他のチームがAzure Pipelinesを使っていて、足並みを揃えないのもどうかと思いました。
他に知らなかったこととして、Azure Pipelinesは無料枠だと1ジョブで30分を超えると強制終了されるのですが、Bitrizeは10分だそうです。ただし、Bitrizeはモバイルアプリに特化しているので、だいたいのジョブは10分以内に終わるそうです。う、羨ましい…(Azure Pipelinesもキャッシュなどを工夫すればできると思いますが)
protobuf in kotlin
- Android
- 発表者:TakuSembaさん(@takusemba)
Androidの内容ということもあり、着いていけませんでした…。
WebView as Fancy and effective View
- Android
- 発表者:Ryo Sakaguchiさん(@wakwak3125)
WebViewを使ってアニメーションを表現したお話でした。
私は着いていけない部分があったのですが、要はこういうことのようです↓
WebViewを使うとJavaScript製の豊富なライブラリの恩恵を受けられるのがいいです。私も以前ネイティブのiOSアプリにグラフを実装する案件を担当したのですが、要件を満たせるライブラリがネイティブでは見つからなかったので、UIWebViewとChart.jsで実現したことがあります。
WebViewは単にWebサイトを表示する以外の用途でも使える、ということを知っておくと選択肢が増えます。
ツイートされていた「Lottie(ロッティ)」は知らなかったので気になりました↓
Lottieはアニメーションをネイティブアプリに実装するためのライブラリで、Adobe After Effectsで作成したアニメーションをそのままアプリで表示できるようです。
ただ懇親会で聞いたのですが、Lottieでは表現しづらいアニメーションというものもあるそうです。どんなに便利なライブラリでも採用するのはケースバイケースということもあります。
最後の「フロントエンドの友達を隣の席においておく」は笑いましたw
iOSアプリで気になった動きや表現を上手にアレンジして活用してみる
- iOS
- 発表者:fumiyasacさん(@fumiyasac)
iOSアプリのUIの実装についての発表でした。
個人的にはスライドの色づかいが好きでした。
使われていたライブラリは↓の2つです。
Font AwesomeをSwiftで簡単に扱えるようにするライブラリは気になりました。アイコンを表示する際に使いたいです。
僕は上スワイプでBottomSheetを出したかっただけなんだ
- Android
- 発表者:Takao Sumitomoさん(@cattaka_net)
BottomSheetを上スワイプで出す方法についての発表でした。
掴みの部分でゴーファーの人形を自作しているのがすごすぎましたw
「BottomSheet」というのは、iOSでいうと「ActionSheet」が近そうです。
BottomSheetを上スワイプで出すためのスクロールの奪い方が大変そうでした…。
メソッドの名前で「○○2」はちょっとびっくりしましたw iOSでは見たことないです。
サンプルコードまで用意されています。
なんとサンプルアプリをGoogle Playにあげるまでされています。
つかおう!L2CAP
- iOS
- 発表者:coffeegyunyuさん(@coffeegyunyu)
L2CAPについての発表でした。
内容はめちゃくちゃ難しく、発表はめちゃくちゃ面白いと感じましたw
そもそも「L2CAP」という単語を初めて聞きました。「Logical Link Control and Adaptation Protocol」の略であり、「エルツーキャップ」と読むそうです。
以下のサイトが詳しそうなので後ほど読みたいです。
マルチモジュール化のTips
- Android
- 発表者:Kubodeさん(@swiz_ard)
マルチモジュールのメリットやTipsについての発表でした。
詳細をWANTEDLY TECH BOOK 6に書いているそうなので、ここではあまり触れないようにします。
マルチモジュール化を検討している方はぜひ見るべきだと思います。
懇親会
まず料理がおしゃれで美味しかったですー🧀🍗🍙

LTをしたこともあり、懇親会ではいろいろな方にお声を掛けていただきました!ありがたい限りです🙇♂️
ZOZOテクノロジーズのエンジニアさんに言われるまで気づかなかったのですが、木目調の壁と会議室のドアが一体化しており、ガラス張りの会議室以外にも会議室がたくさんありました笑
まさかの私と同じビルで働いているエンジニアさんもいらっしゃいました。翌日にランチをするというお互いにフットワークが軽くてとても楽しかったです笑
おわりに
登壇の機会を提供してくださったZOZOテクノロジーズさんには本当に感謝です。おかげで非常に充実し、忘れない一日となりました。
初LTだったので至らない部分も多くあったと思います。この経験を次に活かし、パワーアップして帰ってきますのでご期待ください!