メルカリのデバッグ機能についてお話をさせていただきました。スライドはこちらです。Imaiwww.slideshare.net要点としては以下2点となります。デバッグ機能はモジュール化して管理し、productionのコードに入れないようにするメルカリではクライアントのデバッグ設定画面以外にデバッグメニューもあるが、メニュー表示はUIに影響を及ぼすので、ビジビリティをデバッグ機能上で制御できるようにする今回は発表ではほとんど話さなかった、メルカリのAndroidで実装しているデバッグ機能そのものについてもう少し触れたいと思います。そもそもデバッグ機能とはこのデバッグ機能は開発者が効率よく開発を進めるためにDEV版のみに追加しているものです。サーバーサイドエンジニアが、開発中の機能が入ったブランチがデプロイされたサーバーに切替えて動作確認したいクライアントエンジニアがアプリの設定や機能などをサクッと確認したいといった用途で利用しています。デバッグ設定画面とデバッグメニューの違い上でも述べましたとおり、メルカリAndroidではデバッグ設定画面とデバッグメニューという2種類のデバッグ機能があります。デバッグ設定画面デバッグメニュー2つの用途の違いとしては、ざっくり以下のようになっています。確認したい値や、画面単位で影響するような設定を行う場合に利用これらについては必要に応じて開発者が少しずつ機能を追加してきました。それぞれについてどのような機能があるか紹介します。デバッグ設定画面デバッグ設定画面では主に以下の様な機能を提供しています。APIのドメイン変更メルカリでは多くの機能を並行開発しているため、複数の開発サーバーがあります。そこで柔軟に環境を切替えるために、この機能が利用されます。特殊画面を開くエラー画面やメンテ画面など、通常の操作では開くことができない画面を開く機能です。この辺の画面を開発しているときは、さくっと開いて実機で確認できるので、とても便利です。デバッグ・ログアウトメルカリではログアウト機能を提供していないのですが、開発時にユーザーを切替えて作業を進めたい場合に、最低限の部分だけログアウトすることが出来る機能です。発表でお見せしたデモ動画です。youtu.beデバッグメニューでは主に以下の様な機能を提供してます。入力して確認が必要な画面について、自動で入力する機能です。仕組みとしては単純で、デバッグメニュー・モジュール経由でBaseActivityに作ったonDevInput()というメソッドを呼ぶだけです。自動入力を使いたい画面についてonDevInput()をoverrideして、入力したい項目に適宜いれてあげます。今開いているActivity名や、そのActivityで利用しているintentを確認できます。Activity名は意外と覚えられないので重宝します。今クライアントに設定しているAPIのブランチ情報を確認できます。デバッグ設定画面でも確認できるのですが、いちいちデバッグ設定画面まで行くのが面倒なので、ここにも用意しています。システム系情報デバイスから取得できるシステム情報を取得しています。画面dpiサイズ画面のdpiをgetDisplayMetrics().densityで確認していますデバイス情報デバイス名やOSバージョンなどをBuildオブジェクトから確認していますHeapサイズアプリが確保しているメモリをRuntime.getRuntime()でチェックします各種IDPushを送るために必要なIDなどを確認できるようにしていますマスターリフレッシュメルカリでは初回起動時の通信量を減らし、起動を早めるために、クライアント側に"マスターデータ"を保持しています。マスターデータはブランドカテゴリや県名などのような、通常変更がないデータのことです。このマスターデータがサーバーのマスターデータと差分があった場合は差分を取得するようにしています。サーバー側のマスターデータを更新した場合に、差分が反映されているかを確認させるためにこの機能を持っています。メニューの表示/非表示についてメルカリではデバッグ機能を含むDEV版でもQAを実施しています。デバッグメニューが常に表示されているとUIに影響を及ぼすだけでなく、予期せぬ動作も起こす可能性もあります。そのため、デバッグメニューは表示、非表示をデバッグ設定画面からコントロールできるようにしています。その辺のノウハウはスライドに書いてありますので、ご確認ください。デバッグメニュー表示デバッグメニュー非表示まとめ今回はメルカリのAndroidクライントで実装しているデバッグ機能について紹介しました。デバッグ機能はサービスそのものとは関係がありませんが、開発時の効率性を上げるために非常に重要な機能です。XRチー...2018-02-14メルカリQA-SETの組織づくりについてまとめてみましたこんにちは。今日は、iOSエンジニアの@orakaroです。採用情報メルカリは常に優秀なソフトウェアエンジニアを募集しています。ご興味を持たれた方はぜひご応募ください。skills月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。