Diverse developer blog

株式会社Diverse(ダイバース) 開発者ブログです。

iOSDC Japan 2019 に登壇 & Diverseのスポンサーブースを出展してきました!

こんにちは、暑さが落ち着いてきたので銭湯通いと回数券の購入を再開した @imaizume です。

さて既に弊社のTwitterや公式サイトでもお知らせして来ましたが、今月5日から7日に行われたiOSDC Japan 2019にてDiverseはブーススポンサーとして参加し、また私が最終日に30分枠のトークで登壇して参りました!!

iOSDC Japan とは??

iosdc.jp

iOSDC Japanは日本最大級のiOSエンジニア向け技術イベントです。今年は1000人以上が来場し、弊社を含め約20社の企業ブースが展開されるという、まさにiOSエンジニアにとっての「文化祭」的な3日間!

iOS関連技術にまつわるトークをメインコンテンツとして、他にも企業ブースの出展やおしゃれなランチ、さらにはiOSDCチャレンジといった様々な企画が楽しめるイベントとなっています。

今回は登壇とブース出展の2つの側面からの参加レポートになります!

Diverse社員 @imaizume の登壇

f:id:incheon-special:20190913172526j:plain

@imaizume の登壇時の様子

2日目 10:30からの30分枠に、PoiboyのiOSエンジニアである私 @imaizume が登壇しました。

「スナップショットテスト実戦投入」というタイトルで発表していますが、その名の通りPoiboyにスナップショットテストを導入する際に得たノウハウをお話させていただきました。

詳しくは公開している資料をご覧いただきたいのですが、スナップショットテストとはアプリのスクリーンショットを自動撮影して表示崩れを自動検知する仕組みのことです。

弊社の @kikuchy過去にLTでも発表しているように、Poiboyをはじめとしたマッチングサービスのアプリは管理すべき内部状態が多く管理が大変という背景があります。

そのため表示確認のための状態再現が大変だったりアーカイブして配信するのに時間がかかることから、表示状態再現とデグレ検知作業を自動化したいという思いがありスナップショットテストの導入を決めました。

トークを応募したのも、Poiboyと同様に表示確認作業で困っている方は多いのではないかと思い、より多くの方にスナップショットテストをQAに活用してほしいと思ったからでした。

実際にセッション中にもアンケートしてみたところ8割以上の方が表示確認作業で苦労した経験があると答えており、多くの方が表示確認の自動化に関心をお持ちなのだということがわかりました。

またスナップショットテストがUIテストではなく単体テスト上で動くことをご存じない方も少なくないようで、UIテストと比べて壊れにくかったり早く動作したりする点、導入障壁が比較的低い点などをお伝えできたのが良かったなと個人的に思いました。

f:id:incheon-special:20190917115036j:plain

セッション後のAsk the Speakerにもたくさんの方がお越しくださいました

twitterやAsk the Speaker、懇親会などでも「自分のプロダクトにもスナップショットテストを導入したい」「スナップショットは便利だと思った」「もっと詳しく知りたい」というお声をいただくことができたので、発表者としては大変うれしい限りでした。

今年のセッションには本トークをはじめとしてiOSのテストに関するセッションがいくつか出ていましたので、テストの導入のきっかけとなれば幸いです。

スポンサーブースの出展

f:id:incheon-special:20190917121906j:plain

Diverseブースにもたくさんの方がご来場下さいました!

今回の会期中に、Diverseはイベントブースを出していました!

実はiOS関連のイベントでは初めてのブース出展!!

来場されたみなさんがトークの合間に楽しんでいただけるよう、ブースでのコンテンツを社員みんなで考えました。

そして決まったのがずばり「YYC Twitter広告どれが一番バズったでしょうクイズ」と「モテるマッチングアプリのプロフィール写真当てクイズ」!!

日ごとに内容を変えてクイズボードを設置して来場者に回答してもらう参加型コンテンツにしました。

1日目:「YYC Twitter広告どれが一番バズったでしょうクイズ」

実際にTwitterで掲載されたYYCの広告3種類を題材に、最もいいねがついたものを当ててもらうという企画。

実はこれ、もともと社内の全体定例会向けにマーケティングチームが作成したもので、外部でもやってみたら面白いのでは?? という社員の提案から実施に至りました。

答えですが、他の選択肢がすべて500いいね程度だったのに対して、3つの中で一番左にある広告がなんと5000いいねを稼ぎ出しているのです!!

回答されたみなさんも「自分ならこれかな...」というように悩んで投票してくださっていましたが、やはり実際の掲載結果に近い形で票が分かれる結果となりました(笑)

弊社ではマーケティングをインハウスで行っており日々様々な取り組みを行っていますので、こうしたノウハウが日々の広告運用にも生かされております。

2日目: 「モテるマッチングアプリのプロフィール写真当てクイズ」

やはりDiverseはマッチングアプリの会社なので、社員のマッチングサービスに対するリテラシーも高いわけです。

マッチングアプリを使ったことがある方もない方も、どんなプロフィールにするとマッチしやすくなるかは気になっている方も多いはず...

そこで今回は写真の撮り方に着目し4択のクイズ形式にしてみました。

アプリの種類に限らず、やはり顔が鮮明に映るのはもちろんのこと、近すぎたり遠すぎたりしない程度に上半身や

また複数枚の写真が登録できるサービスであれば、必ず違う写真(もちろん笑顔で!)を載せておきましょう、これだけでマッチング率はぐっと上がりますよ!

今回のクイズだけではこうしたノウハウをとてもお伝えしきれないので、気になる方はぜひ今後のイベントでも弊社社員に話しかけてみてください!!

なおスライド作成用のデモ画像やブースマッチングアプリの使用状況をお聞きしたり、コンテンツの題材として私の写真が多用されていて個人的にはちょっと恥ずかしかったです(笑)

その他ブース運営にて

f:id:incheon-special:20190913172608j:plain

マッチングサービスの利用や認知の広まりを実感するイベントでした

上記に加えて追加の企画としてマッチングアプリの使用状況をアンケートしたところ、男女問わず多くの方に「マッチングアプリを使ったことがある」とご回答いただきました (中にはマッチングサービスで結婚されたという方も!!)

Diverseはもちろん、マッチングサービス業界的にもこの流れは大変嬉しい結果ですね。

また技術面では、今年6月のflutterでのyoubrideクライアント全面リニューアルを紹介し、多くの方が興味を持ってくださいました。

導入で苦労した点や対処法などをご質問いただき、改めてflutterリニューアルの影響を実感させていただだきました。

developer.diverse-inc.com

2日間を通して、大きな事故もなく無事にブース運営を終え、皆様に楽しみながらDiverseやマッチングサービスのことを知っていただけたようだったので、Diverseとは嬉しい限りです (DroidKaigi 2019で起きた誤発注のような事態は今回は起こりませんでした(汗))

 

DroidKaigi、iOSDCと大規模イベントへの協賛を行ってきたDiverseですが、これからもこうした技術イベント・コミュニティへの貢献を続けて参ります。

また登壇を始めとしたアウトプットに対しても会社として支援をしていきますので、ぜひ今後もDiverseにもご注目いただければと思います。

もちろん一緒に働く仲間も大大大絶賛募集中ですよ!!

f:id:incheon-special:20190913172651j:plain

ぜひDiverseで一緒にマッチングの未来を作りませんか??

 

かいはつ室のこれからの歩み

youbrideのリードエンジニア→かいはつ室のかいはつ室長になった@SAMUKEIです。

 

普段はサービスの話が多いのですが、今回はDiverseの「かいはつ室」という事業部についての話になります。

さて、いきなりですが、「かいはつ室」というのは、あまり聞き慣れないですよね?まずは簡単に説明します。

 

「かいはつ室」とは?

  • インフラ管理、エンジニア採用などプロダクトを横断的に作業が発生するものを見る
  • 突発的に発生するLPのマークアップなど
  • 開発部隊の居ないプロダクトの運用保守
  • 名前が「ひらがな」なのは可愛いからʕ•̫͡•ʔ

 と、Diverseにとって大事なことをやっています。

 

かいはつ室の立ち位置としては、各事業部と横並びになります。

f:id:SAMUKEI:20190902170608p:plain

 

組織変更により、私が室長になりメンバーも増えることになりました。

そこで、かいはつ室の役割の曖昧だった部分を明確にし、今後の歩みを決めるために行ったことをお話します。

 


 

最初に取り掛かったのは、「かいはつ室はやることはなんとなくは決まっているけど、ふわっとしていた」という点で、本来あるべき役割を明確にすべく定義する必要がありました。

かいはつ室の本来の役割

Diverse・サービスの成長のためには、サービスの価値を高め、「強いプロダクト」にすることが必要です。

ただ、プロダクトだけを優先すればサービスの価値が上がるわけではありません。

 

f:id:SAMUKEI:20190830102038p:plain

 

プロダクトチームだけでは優先度が低くなってしまうISSUEを解決するということが必要になります。


f:id:SAMUKEI:20190829200942p:plain

 

サービスの価値を高めるには、「運用・保守」「データ分析」「インフラ」などそれぞれも優先度を高く取り組んでいく必要があります。そこを「かいはつ室」の役割として、再定義を行いました。

f:id:SAMUKEI:20190829201308p:plain

  

これからの歩み

次に歩みを進めるために、それぞれの役割をグループとして明確に設定しました。

■ グループを定義 

  • SREグループ
  • プロダクトサポートグループ
  • マークアップグループ
  • 分析グループ

ただ、これだけではやっていること変わらず名前をつけただけになります。

そこで、ミッションを明確に設定しました。

■ ミッションを設定

かいはつ室のあるべき姿からミッションを考え 

f:id:SAMUKEI:20190829200741p:plain

と定義しました。しかし、これで終わり。だと絵に描いた餅です。

次にミッションを達成するための道筋を定義しました。

■ ミッションを達成するために何をやっていくのか?

3カ年の計画をし、達成のため着実に推進しています。

現在は、サービスをスケールさせるための土台強化に取り組み、オンプレミスからAWSへの移行作業をSREグループの最大の目標として進めています。

 

■ 最後に・・・

 20年の運用実績があるサービスをさらにスケールさせるチャレンジ一緒にコミットしてくれる人を大募集 しています!

 

herp.careers

 


 

興味は湧いたけど応募はちょっと・・・という方は、@SAMUKEI にお気軽にDMやリプライをください!

まずはご一緒にご飯を食べにいきましょう!! 

 

 

 

 

 

 

DiverseはiOSDC Japan 2019に初めてゴールドスポンサーとして協賛します

こんにちは、広報の山崎です。

iOS関連技術をコアのテーマとした技術者のためのカンファレンス "iOSDC Japan 2019"が、今年も早稲田大学理工学部西早稲田キャンパスにて開催されます。

Diverseは本カンファレンス初めてゴールドスポーンサーとして協賛するほか、弊社エンジニアも登壇します!ぱちぱち

今回はDiverseがどんなことを行うのかご紹介させていただきます!

ブース出展

f:id:incheon-special:20190903191039j:plain

(※写真は製作途中のものです)

ブース出展します! 

マッチングアプリをより身近に感じてもらえるよう、データから見えてきた「写真だけでモテる㊙︎テク」が分かるクイズ等を実施する予定! みなさんとマッチングアプリに関するリアルなお話もさせてもらえたらうれしいです!

クイズやアンケートに参加してくださった方全員に、感謝の気持ちを込めてささやかですがDiverseオリジナルノベルティをプレゼントしますぜひ覗きに来てくださいね 

登壇者 

f:id:incheon-special:20190903173229j:plain

弊社から1名がトークセッション登壇します 

  • 登壇者:今泉智博 @imaizume(マッチングアプリPoiboy iOS版開発担当
  • 日時:2019年9月7日(土)10:30〜  Track Dレギュラートーク
  • タイトル:スナップショットテスト実戦投入
  • コメント:アプリの開発で、条件ごとのレイアウト確認や意図しない表示崩れに苦労した経験はありませんか?スナップショットテストを使えば、XCTestでスクリーンショットの撮影を行い、さらに表示崩れも自動で検知してくれます。本トークでは、概要から既存プロダクトへの導入時にハマったポイント、ちょっと便利なTipsまで、あなたのプロダクトへのスナップショットテスト導入に役立つ情報をまるっとお届けします!

当日はぜひトークセッション並びにDiverseブースまでお越しください ♪

たくさんの方にお会いできるのを楽しみにしております ^^

f:id:incheon-special:20190903195810j:plain

Diverseブースは緑のバックパネルが目印です!

 おまけ: トークンは 「#出会いのプラットフォームDiverse」 です。

Flutter Meetup Tokyo #10で歴史あるプロダクトにFlutterが採用されたお話をしました

実は最近はAndroid開発に戻りました、 id:kikuchy です。

去る7/16に開催されたFlutter Meetup Tokyo #10にて、19年もの歴史がある弊社のサービスyoubrideにてFlutterが採用された話をさせていただきました。

flutter-jp.connpass.com



発表資料はこちら。


以前にこのブログで紹介させていただいた内容よりも、もう少し突っ込んだ内容をお伝えすることをテーマに色々詰め込んでみました。

developer.diverse-inc.com


結果として、設計の話からエンジニアが備えていると良い能力までと話題が盛々になってしまいましたが、
プロダクションでFlutterを採用したいあなたのお役に立てれば幸いです。



まだFlutterがプロダクションで採用されるのが一般的になるまではもうしばらく時間がかかるかな、と勝手に思っていたのですが、意外とあちこちの企業さんでFlutterを採用し始めている(世に出ているかどうかは別)、というお話を聞いてかなりの衝撃を受けました。



FlutterのDeveloper Experience (DX) は目を見張るものがあります。
HotReloadをはじめ、マルチプラットフォーム対応、豊富なデフォルトのWidget群、宣言的なレイアウト作成、賑わっているエコシステムなど…
安定性やパフォーマンスについてはまだ疑問の余地があるかも知れませんが、単純なアプリの場合はそんなに問題にならないケースも多く、むしろ慢性的にエンジニア不足な状態に対する一つの解決策として、多くの方にとって魅力的なものだと思っています。

今後はDartの文法改善、FFI対応、PlatformViewの品質向上などが進むでしょうから、ますます採用しやすくなっていくと思われます。



懇親会では、他の会社さんの状況をおうかがいしたり、ライブラリ作者さんとご挨拶できたりと、楽しい交流ができました。

次回はGoogleさんでの開催ということで、どんなコアなお話を伺えるのか、今から楽しみにしています。


Flutterでマッチングアプリの開発をしてみたい方は @kikuchy または他の弊社エンジニアへ、お気軽にDMやリプライをください!
まずはご一緒にご飯を食べにいきましょう!!

Matching Dev Meetup #4 でコーディング以外のエンジニアリングについてお話しました

どうもこんにちは、暑くて食欲が減退しているのに体重は落ちない @imaizume です。

暑さのせいでついつい進むビールが原因ですね(笑)

 

さて先月17日に、株式会社イグニスさんにて "Matching Dev Meetup #4" が開催されました。

matching-dev-group.connpass.com

Matching Dev Meetupは、マッチングサービスを運営する企業が主催する開発者向けの勉強会です。

過去の回でも弊社の社員が発表をしています。

diverse-tech.hateblo.jp

note.mu

 

4回目となる今回のテーマはズバリ「エンジニアリング全般」。

私は10分LTにて、入社時から2年半程携わっているPoiboyでのプロジェクトマネジメントにまつわるお話をさせていただきました。

speakerdeck.com

 

内容は、Poiboyで実際に取り組んできた新旧のプロジェクトマネジメント手法を比較しつつ「エンジニアリングとは何か」を改めて考えるといったものになっています。

この話をしたのは、普段Poiboyで仕事をする中で「そもそもエンジニアリングとは何だったっけ??」という疑問を抱いていたことがきっかけでした。

プログラミングを仕事にしていると、普段「エンジニアリング=プログラミング」という認識でいることもあるかと思います。

 

そんな折、発表中にも引用した「エンジニアリング組織論への招待」という本を読んだのですが、その中に「エンジニアリングとは『曖昧さを減らす行為』」であると書かれていました。

人は見えないものや知り得ないものに対しては対処ができないため、そうした曖昧な要因を減らすことで生産的にプロジェクトを進めることができるというのです。

 

詳細は同書を読んでいただきたいのですが、プログラミングも曖昧さを減らす行為の1つではあるものの、それ以外でも曖昧さを減らすことは可能ということになります。

今日開発手法の主流となっているスクラム開発で行うプランニングやKPTといった手法も、この「曖昧さを減らす」ことが一つの目的となっているわけです。

例えば1スプリント内にこなせる・こなした具体的なタスク量が見えるように可視化することや、タスクの優先度の決定基準を特定の人の中ではなく全員が認識できる外に置くことなどです。

 

そのためエンジニアリングは「エンジニアだけが行うこと」ではなく「誰でもできること」という認識を持つべきではないかと思いました。

また最終的な目的が曖昧さの削減であれば、それを達成するために行動することこそが真のエンジニアリングであるということをお話させていただきました。

 

参加者の方からも多くのフィードバックをいただきました。

 

他には、実際に取り組んでいる開発プロセスの改善活動やフレームワークなどの紹介、大規模なチーム構成におけるマネジメント・情報共有手法などについての発表がありました。

弊社でやったことがない手法も多く取り上げられていたので、今後のプロダクト開発に取り入れていきたいものがたくさんありました。

f:id:incheon-special:20190808181912j:plain

株式会社イグニスさんのイベント会場

なお会場のイグニスさんですが、イベントスペースが大変きれいで司会進行もスムーズにされていたのが印象的でした。

またノベルティのステッカーが大変可愛らしかったです ‼️

 

今後マッチング業界を盛り上げていくため、Diverseはこれからも社内の取り組みを積極的に発信していきます!

TreasureData主催 PLAZMA 2019 KANDA にてLookerとの共同セッションに登壇しました


こんにちは、次の技術書典が近いのに前回買った本を全く読み進められていないiOSエンジニアの @imaizume です。

7月16日に神田明神ホールにて行われたPLAZMAに私と熊埜御堂の2名が登壇したので今回はそのご報告になります。

f:id:kmnmm:20190718144147j:plain

plazma.red

PLAZMAはTreasureDataが主催するユーザー向けイベントで、Diverseでも以前より社内DBとしてTreasureDataを使用していました。

また今回のイベントはDiverseが昨年から導入しているBIツールであるLookerがスポンサーをしていたことから、合同セッションでの登壇機会をいただくこととなりました。

なおLookerの概要や導入経緯についてはwantedlyでも紹介していますので併せてご覧ください。

www.wantedly.com

セッションでははじめにLookerからの概要説明や導入実績等が紹介されました。

現在は日本でも20社以上が導入していて、その中でもDiverseは最初期の段階で導入しているという点もお話させていただきました。

その後Diverse側にバトンタッチし、Lookerの導入背景や抱えていた課題、導入の効果や利用時のノウハウなどを紹介しました。

(残念ながら当日のスライドについては現時点では非公開です)

 

Lookerを導入する以前は、ビジネスで必要なデータがある場合、都度エンジニアにSQL発行を依頼していたため、クエリーの属人化が進んでいました。

また可視化のためスプレッドシートで管理されているデータも多く、集計時のバグ修正や計算ロジックの管理ができないといった課題を抱えていました。

さらにビジネス側の要件で算出条件を変更する場合には、複雑なクエリを修正する手間がありました。

 

しかしLookerではクエリの条件をWeb UI上で入力することでLookMLにより自動的にSQLが発行されるため、クエリの属人性を下げることができます。

Spreadsheetに頼っていた可視化も、ダッシュボード機能を使うことで常に最新のデータを必要な形で見れるほか、普段見たい情報が集約されるため必要なシートを探す手間がなくなりました。

加えて、条件修正もLookMLでの定義追加やWeb UI上での設定変更で実現するためSQLの修正が不要となり、エンジニア以外のメンバーでもほしいデータを容易に取得することができるようになりました。

 

このようにデータの活用が難しかったDiverseが、Lookerによりデータドリブンな企業に近づいていることをお伝えしました。

当日はエンジニア以外にマーケティングや分析の担当者をはじめ様々な方が参加されており、登壇後の懇親会でも導入を検討してる企業の方から質問を受けるなど好評をいただくことができました。

 

DiverseでもまだLookerで見れないデータや扱える人が限定されているといった問題がありますが、こうした課題も今後徐々に解消していくため日々努力を続けています。

ぜひこうしたデータドリブンなサービス作りに興味がある方は、ぜひDiverseの社員までお声がけください。

PORT Firebase × Flutter を開催しました

id:kikuchy です。

先日開催されたStampさんのイベント PORT Firebase × Flutter を弊社Diverseオフィスで開催 & kikuchyが登壇いたしました。

stamp.connpass.com

PORTは主にFirebase関連の勉強会を企画されているイベントプロジェクトで、過去にも様々な企業やテクノロジとのコラボ回を実施されています。
今回はFirebaseとFlutterの組み合わせ、というテーマでした。


(当日のライブストリーミング)


kikuchyは『Flutter x Firebase Crashlytics』というタイトルで、
FlutterアプリケーションにクラッシュレポートサービスのCrashlyticisを導入して運用した際に判明した問題とTipsを紹介させていただきました。


導入対象のアプリは、先日このブログでもお伝えした、婚活サービスのyoubrideです。

developer.diverse-inc.com

実務で使用する際の運用方法についてお話できたので、Flutter開発のお役にたてば、と思います。




次の登壇者のパネルディスカッションでは、アプリのアーキテクチャ、youbirdeアプリでのテスト構成、CIの構成、クロスプラットフォーム採用の是非などについてもお話させていただきました。

FlutterはFirebaseなどを使ったプロトタイピングと相性が良いので、ビジネスロジックの状態をStatefulWidgetに押し込めたりしがちです。
BLoCパターンやScopedModelパターンなどでWidget外にビジネスロジックの状態を切り出し、StatefulWidgetには表示ロジックの状態管理に徹してもらうようにすると、状態の抽象化や結合度の低下に貢献できるでしょう。


youbrideではBitriseをCIに使用していて、PR作成時にテストの実行、PRのマージ時にビルドとデプロイを自動で行うようにしています。
ビジネスロジックの単体テストを自動で行っており、実行も2〜3分程度で終わるようになっています。

プロジェクトの開始時に、まずは「ビルドが通るか」だけを確認するタスクのみでもCIを導入して、使えるようにしておくと良いでしょう。
後からCI環境を整備すると面倒になりがちであったり、リポジトリに動作しない状態のコードを混ぜる危険性を少なくできるためです。


また、FlutterはワンソースでiOS/Android両方に対応できることがウリの一つですが、結局プラットフォーム依存の機能を使用する場合やビルド周りなどでそれぞれの知識が必要になります。
そのため、慣れていないのであれば、iOS/Androidのどちらか一方に注力する選択肢を取ったほうが無難でしょう。
(youbrideチームは、クライアント開発できるエンジニアが全員iOS/Android両方ともできたのでうまく行っています)




懇親会ではクライアントでのgRPC採用の話題で大いに盛り上がりました。



(懇親会の様子)



gRPCは共通の定義ファイルから、サーバー/クライアントのRPCに関わるコードを自動生成してくれるため、
APIの定義から実装をとても楽に行なえます。
また、やり取りするデータはProtocolBuffersでシリアライズされているため、JSONと比べると軽量で、通信時間の短縮も見込めます。

youbrideでは将来的にWebサイトもPWA化し、フロント <-> サーバの通信はgRPC Web(ブラウザ上で使用するgRPC)で行う案も出てきていたので、
gRPC Webではまだ双方向のリアルタイムストリーミングができていない、などの制限があるというお話を聞くことができて大変助かりました。


Flutterでマッチングアプリの開発をしてみたい方は @kikuchy または他の弊社エンジニアへ、お気軽にDMやリプライをください!
まずはご一緒にご飯を食べにいきましょう!!