nana開発者ブログ

https://tech.nana-music.com/

音楽SNSアプリ"nana"開発チームのブログです。

フィード

記事のアイキャッチ画像
Xcode Previewsをまとめて実機で触れるUIプロトタイプアプリにする
nana開発者ブログ
nanaのiOSアプリ開発において、私たちはコードを書かずとも簡単にモックを作れるようなよくあるプロトタイピングツールを使わず、ネイティブアプリとしてプロトタイプを実装しています。nanaのプロトタイプには単なるデザインの事前確認だけではなく、仕様に対する設計の事前確認、シンプルな良い設計のための仕様の事前確認といった目的があり、それらは既存のプロトタイピングツールでは実現できないためです。
2年前
記事のアイキャッチ画像
10歳になるnanaは大きく生まれ変わります。
nana開発者ブログ
音楽SNSアプリnanaは、2022年に10周年を迎えます。その節目に、サービスをフルリニューアルし、アプリをゼロから作り直します。10年間ユーザーに支えられてきたサービスを大きく作り変えることに挑む開発チームの今を紹介します。
2年前
記事のアイキャッチ画像
nanaの新機能、音声ライブ配信を支える技術 - Android編
nana開発者ブログ
nana musicでAndroidアプリ開発を担当している市原です。 前回の荒井の記事でもありましたように、10月にリリースした新機能nana LIVEのAndroidにおける開発を担当しましたので、 今回はライブのデータ同期をどうやってAndroidで実現したのかをご紹介したいと思います。 tech.nana-music.com ライブ配信機能のデータ同期方法について nana LIVEはリアルタイムで視聴ユーザー人数や投稿されたコメントを表示させたり、ライブが終了した場合に全てのユーザーを退出させたりします。 それらを実現するために使用したのがFirebase Realtime Data…
2年前
記事のアイキャッチ画像
nanaの新機能、音声ライブ配信を支える技術 - iOS編
nana開発者ブログ
初めまして!nana musicでiOSエンジニアを担当しております、荒井と申します。 iOSアプリ開発歴は10年程で、Objective-CにARC(AutomaticReferenceCounting)がない時代に、手作業でretainしたりreleaseしていたりするのがとても懐かしいです。 さて前回の中島の記事でもありましたように、10月にリリースした新機能nana LIVEのiOSにおける開発を担当しましたので、今回はどうやってiOSで実現したのかをご紹介したいと思います。 tech.nana-music.com Agoraによるライブ配信機能の構築 nana LIVEは最大6人で同…
2年前
記事のアイキャッチ画像
nanaの新機能、ライブ配信を支える技術
nana開発者ブログ
初めまして!nana musicサーバーサイドエンジニアの中島と申します。 今回のテックブログでは新たにリリースされた nana LIVEについての技術的なお話をさせていただこうと思います。 そもそもnana LIVEって何という方はこちらの記事を参照ください。 nana-music.com 導入のきっかけ さて、元々nanaにはnanaパーティという機能がありましたが、以下二点の大きな問題がありました。 ①マイクが同時に一人しか持てない ②遅延が数秒ある nana LIVEでは上記の問題を解決し、同じライブで6人までの同時配信、nanaのサウンドを流しながらマイクや音源の音量調整も行えるもの…
2年前
記事のアイキャッチ画像
XCUITestをシュミレーターで実行する前に設定しておくと便利なこと
nana開発者ブログ
初めまして!開発チームでQAエンジニアを担当している黒川と申します。 今回はXCUITestでテストを書いた後、シュミレーターでテストを実行する前に設定しておくと便利な設定を紹介します。 テストで使用する言語を固定する シュミレーターでキーボードを表示するように固定する テストで使用する言語を固定する なぜ便利なのか UIテストを実行する時にシュミレーターの言語設定が意図しない言語になっていてテストが落ちるということがありますが、後述の設定を行うことで、テストで使用する言語を事前に固定出来るため、問題を回避することができます。 シュミレーターの言語設定 ※シュミレーター自体の端末設定画面(↑の…
3年前
記事のアイキャッチ画像
新nanaエフェクト設定、どうやって作っているかを公開します。
nana開発者ブログ
nana musicでデザインの仕事をしている藤木です。いまはnana公式Twitterでちょっとだけお披露目された、新しい録音やエフェクトの画面作りを担当しています。そんなデザインの本業にくわえ、各種エフェクトの音づくりもお手伝いしています。今回は後者の音作りについて少し紹介いたします。 本格的なMIXにより近いサウンドを作り出せるように いままでのnanaはエフェクトを1つしか選べませんでした。たとえば歌声をケロケロさせる『nanaTune』を選んだら、その他の効果をあわせて使えませんでした。 でも。もう少し本格的にボーカルを録音するときは、エフェクトをいくつも使うことが大半です。声を整え…
3年前
記事のアイキャッチ画像
XCUITestとswift-snapshot-testingを共存させる際に気をつけたいこと
nana開発者ブログ
開発チームのiOSエンジニアをしている西山と申します! 前回の記事ではXCUITestについてご紹介させていただきましたが、 nanaではXCUITest以外にも、スナップショットテストを導入しています。 今回はXCUITestとスナップショットテストを共存させる時、 Bitriseで実行する際に気をつけたいことをご紹介いたします。 ~ Targetは分割しよう~ UITestにはXCUITest、スナップショットテストにはswift-snapshot-testingを導入しています。 github.com 前提としてswift-snapshopt-testingはXCTestをベースとして作…
3年前
記事のアイキャッチ画像
JMeterを使った負荷検証入門
nana開発者ブログ
はじめまして。 開発チームでサーバーサイドエンジニアをしている田中です。 今回は、JMeterを使用した負荷検証についてお話したいと思います。 主に導入〜基本操作のご紹介となりますが、これからJMeterを用いて負荷検証を行う方の参考になれば、幸いです。 負荷検証を行なった背景 JMeterとは インストール・起動 基本的な設定 ①スレッドグループを追加 ②スレッドグループにHTTPリクエストを追加 詳細な設定 ①USERの設定 ②複数リクエストでの値渡し 結果の確認 最後に 負荷検証を行なった背景 先日リリースされたとあるプロジェクトで、アクセス数が多いフィードへの機能追加がありました。 現…
3年前
記事のアイキャッチ画像
nana musicのNotion活用術を具体的にご紹介します!
nana開発者ブログ
データ活用全般を担当してる春日井です。 メイン業務は、アプリ行動ログなどの定量データやユーザーインタビューなどの定性データの取得・整備・分析ですが、「データならなんでも任せてくれ!」ということでドキュメント文化の醸成も担当しています。 この記事は、以下のような悩みを持つ方に特に参考にしていただけるのかなと思います。 自律的な組織になるためには情報の透明性が大事*1ってよく聞くけど、ドキュメント管理があまりうまくいっていない ドキュメント管理ツールとしてNotionが良いってよく聞くけど、高機能過ぎて具体的にどの様に活用したら良いか迷っている 従業員およそ30名のC向け事業会社であるnana m…
3年前
記事のアイキャッチ画像
MTAudioProcessingTapを使って、AVPlayerで再生中のオーディオデータを取得する
nana開発者ブログ
こんにちは!音声信号処理エンジニアの kaede-san です。 私事ですが、先日、新型コロナウイルスのワクチンを打ちまして、ここ数日副反応に見舞われており、更新が遅くなってしまいました🙇‍♀️ 今回は、MTAudioProcessingTapを使って、AVPlayerでオーディオデータを取得する方法を紹介します! MTAudioProcessingTapとは なぜこの技術を採用したか 活用例 実装例 呼び出し元のAVPlayerクラス ビジュアライザーの音声解析クラス 課題 注意 まとめ MTAudioProcessingTapとは SwiftではMTAudioProcessingTap、O…
3年前
記事のアイキャッチ画像
AndroidアプリにFirebase AuthenticationによるTwitter認証を導入した話
nana開発者ブログ
はじめまして。 開発チームでAndroidエンジニアをしている松崎です。 今回は弊社のプロダクトである「nana」のAndroidアプリで初めて担当したFirebase Authenticationを使ったTwitter認証の機能を実装したお話をします。 なぜFirebase Authenticationを導入したのか nanaでは以前からTwitter認証に Twitter Kit for Androidを使用していました。 しかしある時期から「Twitterアカウントでのログインに失敗する」というユーザからの問い合わせが増えてきました。 原因について調査を進めたものの有効な解決策が見つけら…
3年前
記事のアイキャッチ画像
nanaで使っている開発系サービスの紹介
nana開発者ブログ
開発チームのエンジニアリングマネージャーをしている佐々木です。 今回はnanaで使っている開発系のツールやサービスを紹介します! GitHub github.com 言わずもがなのソースコード管理サービスです。全てのリポジトリを管理しています。 ZenHub www.zenhub.com プロジェクト管理サービスです。Githubとの相性がよく、Chromeにプラグインを入れて使っている方が多いです。Epic, SprintやReleaseに加えて、RoadmapやReport周りも徐々に使い始めてます。 Slack slack.com コミュニケーションサービスです。チーム単位、プロジェクト…
3年前
記事のアイキャッチ画像
Bitrise上でXCUITestを動かすWorkflow
nana開発者ブログ
開発チームのiOSエンジニアをしている西山と申します! 今回は弊社で導入しているXCUITestをBitrise上で実行するための、Workflowを一部ご紹介したいと思います。 Device testing for iOS XCUITestを複数の端末で実行するために、以下二つのWorkflowを採用しています。 Xcode Build for testing for iOS iOS Device Testing 詳しくはDevice testing for iOSを参照ください。 Xcode Build for testing for iOS Xcode Build for testing…
3年前
記事のアイキャッチ画像
nana music 開発チームによる技術ブログを始めました!
nana開発者ブログ
ごあいさつ みなさんはじめまして!nana music 開発チームです。 この度、新たに技術ブログを開設いたしました👏
3年前