サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
CES 2025
developer.diverse-inc.com
こんにちは Diverse developer blogです。今回はプロジェクトの構想から完了まで、1年半ほどかけて行った「PerlとDebianの更新プロジェクト」を振り返ります。 なぜやったのか? 弊社のYYCは20年以上稼働しているサービス(SNS, マッチング, ライブ配信)です。ユーザーの要望に応えるため、機能開発を優先してきたことで開発環境の改善が遅れていました。 特にバックエンドの開発言語(Perl 5.8)と、コンテナOS(CentOS)のアップデートが遅れており、今後の機能開発やセキュリティ対応に課題が生じていました。 そのため、プロジェクトの目標は「開発言語とコンテナOSをLTS(long-term support)バージョンまで更新する」ことにしました。そして、課題を一つ一つ段階的に解決して、ついに目標を達成しました。現在のYYCのバックエンドは、最新のPerl5.4
こんにちは、Diverse Developer Blogです。今回は、Diverseの開発組織の生産性と計測結果をどのように活用しているかをご紹介します。 リポジトリごとの開発生産性ダッシュボード 最初に計測中の開発生産性ダッシュボードを公開します。このダッシュボードはGoogleスプレッドシートで作成しており、データは自作したGitコマンドで集計しています。指標や計測の詳細は後述します。 計測対象は、開発が最も盛んで売上の高い弊社のサービス「YYC(https://www.yyc.co.jp)」の3つのリポジトリです。なお、Serverリポジトリは課題解決を優先して実施中なので、ClientやInfraにはない指標を追加しています。 Serverリポジトリ:Perl製のサーバー(API/batchなど)でWebクライアントと管理画面も含む Clientリポジトリ:Flutter製のiOS
Diverseの須藤(id:kurotyann) です。 昨年10月から婚活サービスのyoubrideのリプレイスを開始しました。 しかし、このリプレイスは今年の3月に経営判断により終了しました。 このリプレイスを最後までやり切りたかったですが、Diverseの今後の成長を考慮した判断となります。5ヶ月間という短期間ですが、得られた知見は多く、Techブログに結果を残すことにしました。 今回は、以下の2部構成でリプレイスの結果を共有し、このブログは前編になります。 前編:リプレイスの理由と、どのように進めたのか 後編:リプレイスの成果について 世の中のプロジェクトは成功か失敗のどちらかに区別されます。しかし、今回のリプレイスは成功とも失敗とも言い切れないまま終了しました。ある意味で珍しい事例です。この成果が社内だけなく、サービスのリプレイスを検討したり、実施中の社外の方々への参考になると幸
id:kikuchy です。 婚活サービスyoubrideのスマートフォンアプリは以前からFlutterを採用しています。 developer.diverse-inc.com このアプリでは、始めはscoped_model、次にproviderを状態管理ツールとして採用してきました。 この度、通常の開発を大きく止めることなくproviderからriverpodへと移行できたので、どのように移行したのかをお話したいと思います。 前提:なぜriverpodにしたのか providerパッケージ(以下、provder)もriverpodパッケージ(正確にはflutter_riverpodパッケージ。以下、riverpod)も同じ作者(Remi Rousseletさん)による状態管理&依存性注入のためのライブラリです。 両者で実現できる機能はほとんど変わりません。 できることは主に以下のとおりです
こんにちは!Diverse広報担当です。 Diverseでは週に1回、エンジニア同士で「見せびらかし会」を開催しています。 「見せびらかし会」とは、各エンジニアが1週間の中で頑張った開発Tipsを、仲間に向けて発表する場。 各自の知見やノウハウの共有を目的に行っています。”見せびらかす”という仰々しい名前ですが、ちょっとした工夫や改善も大歓迎!というラフな発表会です。 ▼過去の見せびらかし会ブログ 見せびらかし会 カテゴリーの記事一覧 - Diverse developer blog 第4回目は、エンジニアoyaさんの”見せびらかし”と、oyaさんが感銘を受けたabuiさんの”見せびらかし”を紹介します。 ぜひお読みください! ▼目次 LIVE配信画面でテキストをアニメーションで出す方法 oyaさんの今週の見せびらかしについて どうやってアニメーションを作ったのか? 実装までの試行錯誤…あ
こんにちは!Diverse広報担当です。 Diverseでは週に1回、エンジニア同士で「見せびらかし会」を開催しています。 「見せびらかし会」とは、各エンジニアが1週間の中で頑張った開発Tipsを、仲間に向けて発表する場。 各自の知見やノウハウの共有を目的に行っています。”見せびらかす”という仰々しい名前ですが、ちょっとした工夫や改善も大歓迎!というラフな発表会です。 ▼過去の見せびらかし会ブログ 見せびらかし会 カテゴリーの記事一覧 - Diverse developer blog 第3回目は、第1回目でも登場したエンジニア菊池さん(@kikuchy)の”見せびらかし”を紹介します。 ぜひお読みください! ▼目次 「いいね!」ダイアログのパターンをEnumで管理したい 菊池さんの今週の見せびらかしについて どんな仕組みを作ったのか? ―(一同拍手)ここから質問タイムです! 最後に 「いい
こんにちは!Diverse広報担当です。 突然ですが、Diverseでは週に1回、エンジニア同士で「見せびらかし会」を開催しています。 「見せびらかし会」とは、各エンジニアが1週間の中で頑張った開発Tipsを、仲間に向けて発表する場。 各自の知見やノウハウの共有を目的にトライアルとして始めてみました。”見せびらかす”という仰々しい名前ですが、ちょっとした工夫や改善も大歓迎!というラフな発表会です。 せっかくなので、見せびらかし会の様子を色々な方に知ってもらいたい!と思い、ブログで発信することにしました。 記念すべき第1回目は、菊池さん(@kikuchy)と藤田さん(@SAMUKEI)の見せびらかし会に密着しました。 ぜひお読みください! ▼目次 イベントの記録をシンプルにしたい 菊池さんの今週の見せびらかしについて どんな仕組みを作ったのか? スクラムで各自の進捗を見える化したい 藤田さん
id:kikuchy です。新型コロナウィルスによって社会情勢が大きく変化しつつある中、いかがお過ごしでしょうか。 各種技術系イベントが開催場所をオンラインに移していく中、先日、GDG TokyoとFlutter Meetup Tokyoのコラボイベントが開催されました。 gdg-tokyo.connpass.com 当日のアーカイブはこちらからご覧いただけます。 www.youtube.com 当日はFlutterのAdd-to-appという機能についてお話させていただきました。 docs.google.com 「Flutterを既存のiOS/Androidアプリに導入する」というものです。 この機能は弊社のプロダクトでも使用されています。 FlutterはアプリケーションをDartで記述することになるため、既存のソースコードの使いまわしが妨げられてしまいます。 そのため、ソースコードの
今年のKotlin Festは最初から一般参加を決め込んでいました id:kikuchy です。 Kotlin FestからCfPが出ている時期はFlutterばかり触っていたので、Kotlinについてはむしろキャッチアップが追いついていないレベルでした。 ですが、ひょんなことからKotlin Festのその会場でReject Conferenceの方で発表することが決まってしまいまして、登壇させていただくことと相成りました。 dena.connpass.com Kotlin Fest Reject Conferenceは、主にKotlin Festに惜しくも採択されなかった発表を集め、みんなで楽しむイベントです。 Kotlin Fest非公式のイベントですが、主に渋谷近郊のエンジニアを中心に、多くの人が集まる活気あるイベントとなっておりました。 発表内容 Kotlin 1.3.50現在で
こんにちは。Diverseが提供する婚活サービス「 youbride 」でフロントエンドの開発している id:yukioya-dvs です。 youbrideは、運営19年目を迎えるサービスで、PC/SP/Androidアプリ/iOSアプリの4つのプラットフォームで提供しています。 この歴史あるサービスの Android/iOSアプリ を、マルチプラットフォームフレームワークのFlutterで書き換えるという大掛かりなプロジェクトを発足し、この度ついにリリースすることができました! リプレイスに関する背景や詳細については、以下をご覧ください。 developer.diverse-inc.com youbrideでは先にAndroidアプリをリリースして、それから約1ヶ月遅れてiOSアプリをリリースしました。 「Flutter使ってるんだから同時リリースできたのでは?」と疑問を抱かれたかもし
最近はすっかりFlutterエンジニアになってます。id:kikuchy です。 Diverseが提供するサービスの一つに、youbrideという婚活サービスがあります。 youbride.jp この6月に、youbrideはAndroidアプリのデザインリニューアルを行いました。 youbrideアプリのデザインが大きく変わりました! 変わったのは見た目だけではありません。 新アプリには、マルチプラットフォームフレームワークのFlutterを採用しています。 flutter.dev 近々、iOSアプリもFlutterで開発したバージョンに置き換える計画が進行中です。 そして、APIサーバーもRuby on Railsを使ったものに置き換えています。 rubyonrails.org サーバーとクライアント間の接続にはgRPCを使用しています。 grpc.io 構成はこうなっています なぜy
『Androidテスト全書』の一部を書かせていただきました id:kikuchy です。 peaks.cc こちらの書籍の発売を記念して、DeNAさん主催のAndroid Test Night #5にて、執筆陣のトークが開催されました。 トークにはkikuchyも加わらせていただき、執筆の思い出などについてお話させていただいたり、会場の皆様からお寄せいただいたご質問に答えたりしました。 testnight.connpass.com なんと当日の模様を、参加してくださった id:nowsprinting さん、 id:Gateau さん、id:wifeofvillon さんがブログにまとめてくださっています。 ありがとうございます! www.nowsprinting.com gateau.hatenablog.com wifeofvillon.hatenablog.com 会場で何があったか
去る11/22、いい夫婦の日に、マッチングサービス運営の老舗であるDiverse(ダイバース)初のミートアップを開催しました! その名も、『Diverse.tech #1 〜レガシーシステムを語らう夜〜』 diverse.connpass.com 弊社Diverseでは、YYCやyoubrideなど18年間もの歴史を持つサービスを運営し、今なお成長させ続けています。 また同時に新しいサービスの開発にも取り組んでおり、Poiboyなどを開発している会社でもあるのです。 そうした長期に渡ってマッチングサービス開発を継続するノウハウ、新しいマッチングサービスの産みの苦しみを同時に経験している弊社だからこそ、お伝えできるものがあるはず。 それをエンジニアのあなたと共有したい。 という趣旨のもとに、Diverseではミートアップの開催を計画しています。 Diverse.tech #1の様子 今回はそ
そろそろAdvent Calendarの季節が近づいてきて、勢い勇んで枠だけ取ったものの何を書くのかほとんど決まっていない id:kikuchy です。やばい。 先日、Matching Dev Meetup#1 - iOS / Androidというイベントが開催されました。 マッチングサービスを提供している各社からエンジニアが集まって、マッチングサービスに特有の話題などを共有しよう! という会です。 弊社Diverse(ダイバース)の他にも、Pairsのエウレカさん、タップル誕生のマッチングエージェントさん、withのイグニスさん、CROSS MEのプレイモーションさんなど、たくさんの会社からたくさんの関係者が集まる賑やかな会となりました。 matching-dev-group.connpass.com マッチングエージェントさんによるブログでも、当日の様子が公開されています。 devel
『Androidテスト全書』のJUnit 5の章(7章)を執筆しました id:kikuchy です。 クラウドファンディング出資者への発送が一段落し、『Androidテスト全書』の一般販売がはじまりました。 peaks.cc 白山さんや外山さんと平田さんがすでに概要やそれぞれのエピソードを語ってくださっております。 ここではkikuchyの視点から、本の概要、kikuchyの担当章の解説と裏話をお伝えします。お付き合いください。 本書の概要 第1章 テスト入門 第2章 ユニットテスト実践入門 第3章 ユニットテスト応用編 第4章 UIテスト (概要編) 第5章 UIテスト (Espresso編) 第6章 UIテスト(Appium編) 第7章 JUnit 5 第8章 CI/CD この1冊で、現在のAndroid開発環境に自動テストを取り入れるためのノウハウすべてが揃います。 なぜなら、テスト
Flutter Meetup #4のホストをしました、 id:kikuchy です。 Flutter Meetupは比較的新しい、マルチプラットフォームフレームワークFlutterの勉強会です。 第4回目になる今回も、Flutter開発スキルを更に向上できるような充実した内容でした。 flutter-jp.connpass.com 発表については、Flutterをプロダクション導入するに至った経緯とその過程で検討したことなどをお話させていただきました。 docs.google.com 弊社のオンライン婚活サービスyoubrideでは、現在Androidクライアントの改修が計画されています。 そこにチームが現在抱える問題も一緒に解決すべく、Flutterの導入が検討され、本決まりになった、というお話です。 人的リソースはそうそう簡単に確保できるものではありません。 ただ、今いる開発メンバーに
本職はFF14でララフェル族の光の戦士(白魔道士)をやっているYoshihisaです。 先日開催されたShibuya.apk#26にて、『Android Architecture Components(AAC)を使ってリファクタリングした話』と題して泥臭く地道にリファクタリングしていった話をさせていただきました。 shibuya-apk.connpass.com speakerdeck.com P.4からP.11ではそこはかとなくやばい香りがするだけでまだマシだったActivityが度重なる機能追加などにより地獄へと変貌していく様子が手に取るようにわかると評判(?)でした。 ヤバさがひと目でわかる #shibuya_apk — 菊池紘 (@kikuchy) 2018年6月26日 地獄だ #shibuya_apk — asmz (@starmAIne777) 2018年6月26日 ああ〜〜〜
『Androidテスト全書』を執筆中の id:kikuchy です。 執筆の近況報告として、Android Test Night #4 にて執筆陣のトークに参加させていただきました。 testnight.connpass.com ファシリテーターを務めてくださったながのさんからの質問と、それに対する私の答えはだいたい以下の通りでした。 当日の参加者のみなさまのツイートと合わせてお届けします。 Q1 どんな感じになりそうですか? JUnit 5の章を担当しています。 後述しますが苦労しているところがあるので、このままでは「JUnit 5にはこんな便利な機能があるけれどAndroidでは使えないよ」という内容になりそうですこし苦しいです。 思い描いたことを書き出すのは良いのですが、それが本当にそうだったか、自分の理解や記憶が正しいか、の裏取りですごく時間がかかっています。 JUnit 5や、そ
DroidKaigi 2018が迫ってきて、それに伴って社内でもいろいろなことが動き始めていて面白いです(DiverseはDroidKaigi 2018 プラチナスポンサーです!参加されるあなたと当日はブースでお会い出来るのを楽しみにしております!)。 id:kikuchy です。 先日開催されたAndroid Test Night #2にて、『今更聞けない? Androidのテストのいろは』と題しまして、Android特有のテストの事情を解説させていただきました。 testnight.connpass.com 今更聞けない? Androidのテストのいろは from Hiroshi Kikuchi www.slideshare.net 「Androidのテストをこれから始める人に『コレ読んでおいて』と渡せるくらいまとまった資料が今まで無かったので、良い資料が出てきて嬉しい」というご意見も
はじめまして!今年の4月にインフラエンジニアからAndroidエンジニアに転生したYoshihisaです。 先日開催されたShibuya.apk#20にて「kotlin界のsealed classはJava界からみても『sealed』なのか」というタイトルで5分LTをしました。 shibuya-apk.connpass.com Kotlin界のsealed classはJava界でも『sealed』なのか from Yoshihisa Takeda www.slideshare.net Kotlinには「sealed class」という継承範囲を同一ファイル内に制限する仕組みがあります。これをJavaから使おうとしたとき継承の範囲制限は有効なのか?を調べた結果をまとめたものです。*1 調べた動機と方法 そもそもこれをなんで調べたのかというと、YYCのAndroidアプリのある画面に新機能を
こんにちは、一人でAndroidの新規アプリ開発やってます、 id:kikuchy です。 先日開催されたShibuya.apk #20にて、Androidの新規アプリ開発において感じた、大切だと思うことについてお話させていただきました。 shibuya-apk.connpass.com 新規Androidアプリ開発において何より大切なこと from Hiroshi Kikuchi www.slideshare.net プロダクトオーナーと事前に目的などのすり合わせしておきましょう、というお話です。 聞き取りを行う際に便利なヒヤリングシートのテンプレートも作りましたので、こちらも合わせてお使いください。 「コードベースの寿命について議論する発想が今まで無かったので、チームの人とも話してみたい」といった感想もいただきました。 お役に立てれば幸いです。 頂いた質問など いくつかいただきましたの
こんにちは、Androidやってます。 id:kikuchy です。 先日開催されたOisixさん主催の Swift/Kotlin合同勉強会 #2 で、モバイルアプリ開発で使えるKotlinの便利なところを紹介させていただきました。 oi-study.connpass.com モバイルアプリ開発をグッと楽にするKotlinの便利なところ3選 from Hiroshi Kikuchi Kotlinをあまりご存じない方向けに、便利でよく使うKotlinの言語機能と応用例を紹介しております。 これらの機能を使うことで、「考えていることをそのままコードに落とす」という気持ちのよいコーディングが可能になります。 Androidアプリ開発をされている方は、ぜひ一度Kotlinを使ってみてください! 導入も簡単です! Swift/Kotlin合同勉強会は、Swiftだけ使ったことがある、もしくはKotl
Diverse で iOS アプリの開発をしている Kuniwak です。前に書いた記事では、単体テストで開発を2.5倍高速化した話を書きました。 さて、先日開催された iOSDC のリジェクトコンで、単体テストのテスト結果をわかりやすくするライブラリ「MirrorDiffKit」の開発秘話をお話ししてきました。この発表では、Swift を Mirror という API を通して見たときの奇妙な挙動を紹介しています。 発表の概要 5分ほどで読み終わるスライドになっています。Swift の奇妙な挙動をお楽しみください。 speakerdeck.com 宣伝 Diverse では Mirror というマイナー API とかも触ってみたい iOS エンジニアを募集しています! あと、MirrorDiffKit をよろしくお願いします github.com
はじめまして。Diverse で iOS アプリの開発をしている Kuniwak です。 先日開催された iOSDC の第三者によるリジェクトコンで、設計のデザインパターンについて発表してきました。 発表内容は、単体テストを簡単にするための設計のデザインパターンの紹介です。 発表の概要 このパターンを実践し続けた未来 宣伝 発表の概要 speakerdeck.comこの発表では、単体テストでは必須となる、代替オブジェクト(Stub や Spyと呼ばれます)の作成方法から、UIKit への応用などの広範なベストプラクティスを紹介しています。また、特にアーキテクチャを限定していないため、MVVM や MVC、MVP などの設計にも応用できます。 このパターンを実践し続けた未来 なお、このパターンを使って単体テストを活用していくと、どのようになるかについてもお話ししましょう。 私の所属する iO
id:kikuchy です。 先日開催されたイベント Android Test Night #1 - connpass にて、JUnit5とAndroidのテストについてお話させていただきました。 testnight.connpass.com JUnit5とAndroidのテスト from Hiroshi Kikuchi つい10日ほど前にリリースされたばかりのJUnit5はAndroidで使えるのか、 どんな機能が便利に使えるのか、というお話です。 はじめは 「Junit5のユーザーガイド通りにセットアップしても動かない」 という旨をお話させていただいたのですが、発表後にAndroid対応版があるということを教えていただきました。 これどうなんじゃろhttps://t.co/xpHke4DTZR#android_test_night— 足の指打撲マン (@ogapants) 2017年9
id:kikuchy です。 先日開催された夏のKotlin LT祭にてKotlinJSについてお話させていただきました。 kotlin.connpass.com KotlinJSって正直どうなん from Hiroshi Kikuchi GoogleがAndroidの公式開発言語にする、Springが対応を表明する、Kotlin/Nativeが発表されるなどして、Kotlin界隈もますます盛り上がってきております。 しかし、Kotlinのファーストリリース時からある機能なのにいまいちパッとしない機能があります。 Kotlin -> JavaScriptのトランスパイル機能です。 当日も会場の方々に挙手をお願いしたところ、予想通り使っている方はほとんどいらっしゃいませんでした。 どうしてパッとしないのか、実は隠れた使い勝手の良さがあるのでは、もしかしたらすぐにでも業務に投入できたりするので
id:kikuchy です。 Androidをやっていたはずですが、最近はiOSをガッツリやっています。 先日開催されたiOS Test Night #4に登壇してLTをさせていただきました。 testnight.connpass.com 今回は、テストコードをアプリケーションコードと同じ(Groupの)階層に置きなおすツールを作った話をしました。 テストコードをアプリケーションコードと同じ階層に置きたい from Hiroshi Kikuchi 紹介しているツールはこちらになります。 github.com きっかけは、前回 iOS Test Night #3 であった以下のツイートを見てのことでした。 Tests下に置くのに比べ、Targetsのチェックを手動で直さななきゃいけないのが悲しいなと思ったのですが、懇親会での話をの中で、build phaseでのRun scriptでなんかで
2016年11月22日、ヒカ☆ラボにて、ネットマーケティング様と合同で「レガシーシステム脱却秘話」をテーマに勉強会をさせていただきました。 atnd.org 弊社からはエンジニア3人が登壇いたしました。何を発表したのか、どのような思想や思いでレガシーからの脱却に取り組んでいるのかをご紹介します。 どうしてコードはレガシーになるのか id:kikuchy です。 『どうしてコードはレガシーになるのか』という題でお話をさせていただきました。 どうしてコードはレガシーになるのか from Hiroshi Kikuchi YYCチームでは昨年から今年の頭にかけてAndroidアプリをフルスクラッチでリニューアルしました。 そのきっかけ(原因)となったリニューアル前のアプリのコードのレガシーさと、その分析から得られた「レガシーコードを生み出さない環境づくり」の方法についてのお話です。 レガシーコード
次のページ
このページを最初にブックマークしてみませんか?
『Diverse developer blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く