nana music Tech Blog

株式会社nana music 開発チームのブログです。

nanaで使っている開発系サービスの紹介

開発チームのエンジニアリングマネージャーをしている佐々木です。

 今回はnanaで使っている開発系のツールやサービスを紹介します!

 

GitHub

github.com

言わずもがなのソースコード管理サービスです。全てのリポジトリを管理しています。

ZenHub

www.zenhub.com

プロジェクト管理サービスです。Githubとの相性がよく、Chromeにプラグインを入れて使っている方が多いです。Epic, SprintやReleaseに加えて、RoadmapやReport周りも徐々に使い始めてます。

Slack

slack.com

コミュニケーションサービスです。チーム単位、プロジェクト単位などで様々なチャンネルを使っています。絵文字やスタンプなどのフランクなコミュニケーションも歓迎しています。

Zoom

zoom.us

ビデオ通話サービです。社内で規定はないので、Google Meetを使う人もいますし1対1だとSlackコールを使う人など様々ですが、Zoomを利用しているケースが多いです。Slackと連携させて /zoom で部屋が作れるのが便利だなと思ってます。

Notion

www.notion.so

最近話題のなんでもできちゃうサービスです。nana musicでは、wikiや議事録をメインに、社内ポータルとしても利用しています。4月から導入してるのですが、徐々にドキュメントを書く文化というのが浸透してきてるなぁと実感しております!

AWS

aws.amazon.com

ご存知の通りのクラウドサービスです。nanaのサーバーサイドはAWSで動いています。EC2, ECS, S3, CloudFrontなど多くのサービスを利用しています。

GCP

cloud.google.com

こちらもご存知の通りのクラウドサービスです。BigQueryやDataProcを利用しています。

Redash

redash.io

BIサービスです。私自身前職で使っていましたが、nanaでは少し前に導入しました。これからどんどん使っていくことになると思っています。

Firebase

firebase.google.com

モバイル向けのプラットフォームです。CrashlyticsやRealtimeDatabase, App Distributionなどを利用しています。App Distributionは、iOSの社内アプリの配布で利用しています。Androidの社内アプリ配信は、後ほど消化するDeployGateを利用しています。

TravisCI

travis-ci.com

CIサービスです。APIとAndroidアプリで利用しています。

Bitrise

app.bitrise.io

CIサービスです。iOSアプリで利用しています。iOSアプリも元々はTravisを利用していたのですが、去年の11,12月ぐらいに金額が高くなったことをきっかけにBitriseに移行しました。

DeployGate

deploygate.com

App Distributionと同じくアプリの配布サービスです。Androidアプリの配布で利用しています。リモートの業務がメインの今はプロダクトオーナー・マネージャーの確認用にこまめに配布しています。CIと連動させて自動化している部分もあります。

 

開発として、プロダクトとしてのチャレンジはもちろん、本日紹介したサービス導入などでもチャレンジをどんどんしていきたいと思っています!

nanaで一緒にチャレンジしたい方は、ぜひ一度お話をしましょう!

www.wantedly.com

Bitrise上でXCUITestを動かすWorkflow

開発チームのiOSエンジニアをしている西山と申します!

今回は弊社で導入しているXCUITestをBitrise上で実行するための、Workflowを一部ご紹介したいと思います。

Device testing for iOS

XCUITestを複数の端末で実行するために、以下二つのWorkflowを採用しています。

  • Xcode Build for testing for iOS
  • iOS Device Testing f:id:nanamusic-tech:20210615101448p:plain

詳しくはDevice testing for iOSを参照ください。

Xcode Build for testing for iOS

Xcode Build for testing for iOSには大きく3つの変数を指定する必要があります。

  • Project (or Workspace) path
    • プロジェクトファイルのパスを指定します。
  • Scheme name
    • XCUITestを実行するスキームを指定します。
  • Configuration name
    • Build configurationを指定します 。(ex: Debug, Releaseなど)

以下のように環境変数に指定しておきます。 f:id:nanamusic-tech:20210615101710p:plain

iOS Device Testing

iOS Device Testingでは、UIテストを実行する端末を指定することができます。

Test devicesに所定のフォーマットで「端末、OS、言語、向き」を指定できます。

iphone8,14.1,ja,portrait
iphone11pro,14.1,ja,portrait
iphone7plus,14.1,ja,portrait

iOS Device Testingは、Firebase Test Labをベースとされているため、 指定できる最新の端末は、FirebaseのAvailable devices in Test Labを参照ください。

https://devcenter.bitrise.io/jp/testing/device-testing-for-ios/
あなたのアプリのテストはGoogleのデータセンター内にある本物のデバイス上で実行されます。

このように、よりユーザが操作するのに近い環境でテストを実行することができます。

現状だとiPhone11までだったりiOS14のものが少なかったりするので、種類が増えるのを期待したいですね。

Workflowを実施すると、Test Reportsのページから以下のように指定した端末の数だけテスト結果を確認することが可能になります。 f:id:nanamusic-tech:20210615101751p:plain

注意したい点

  • https://devcenter.bitrise.io/jp/testing/device-testing-for-ios/
    • 今回参考にした、Device testing for iOSの日本語ページには、「デバイスでのテストを許可する」の項目がありますが、こちらは現在削除されているようで、特段設定しなくてもDevice Testを実行することができました。(実際、英語ページ では、この項目は削除されています)
  • Provisioning Profile/Build Scheme/Build Configurationの環境を揃える
    • iOSエンジニアの方であれば当然の話かもしれませんが、本番/開発環境など、プロジェクト内で複数環境がある場合は、XCUITestを実施したい環境に全てが揃うように注意してください。
    • 私は1箇所勘違いしている点があり、ここで余計な時間を取られてしまいました。
  • 指定する端末について
    • 先述したように、テスト実施できる端末が豊富ではないので、これで十分か?の検討はしていただいた方が良いかと思います。
    • デバイスや、対応OSが廃止になることもあるので、定期的にデバイスリストについては確認する必要があります。こちら のページに削除予定の端末が掲載されています。

さいごに

nanaでは手動テストの負担を減らすべく、XCUITestの導入でクライアントテストの自動化を進めております。 これから導入を考えておられるプロジェクトの参考になればと思います。


nana musicでは、エンジニア/デザイナーを募集しております!

皆様のご応募をお待ちしております。

www.wantedly.com