$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
マイニフティアプリ開発チームにおける 開発スタイルの紹介
Search
ニフティ株式会社
PRO
September 26, 2022
Video
Resources
Programming
0
300
マイニフティアプリ開発チームにおける 開発スタイルの紹介
ニフティ株式会社
PRO
September 26, 2022
Tweet
Share
Video
Resources
NIFTY Tech Talk #5 iOS/Androidアプリ開発LT
https://nifty.connpass.com/event/259697/
More Decks by ニフティ株式会社
See All by ニフティ株式会社
なぜISPでオリジナルカードゲームを作ったのか?制作者と対談 - NIFTY Tech Talk #25
niftycorp
PRO
0
41
「なぜかネットが遅い」を“見える化”する 〜マイ ニフティが繋ぐサポートと暮らし〜 - NIKKEI Tech Talk #39
niftycorp
PRO
0
110
InnerSource Summit 2025 Three points that promoted innersource activities
niftycorp
PRO
0
160
Maker Faire Tokyo 2025 出展うらばなし - NIFTY Tech Talk #25
niftycorp
PRO
0
76
Private Status Pageの設定と活用 〜インシデントレスポンスへの活用とStatus Page運用をどうするか?〜
niftycorp
PRO
0
110
ニフティのPagerDuty活用状況
niftycorp
PRO
0
110
会員管理基盤をオンプレからクラウド移行した時に起きた障害たち - asken tech talk vol.13
niftycorp
PRO
0
2.6k
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
1k
2025-07-08 InnerSource Commons Japan Meetup #14 【OST】チームの壁、ぶっ壊そ!壁の乗り越え方、一緒に考えよう!
niftycorp
PRO
0
110
Other Decks in Programming
See All in Programming
Basic Architectures
denyspoltorak
0
110
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
110
tparseでgo testの出力を見やすくする
utgwkk
2
280
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
6
3.9k
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
570
Developing static sites with Ruby
okuramasafumi
0
320
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
150
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
360
エディターってAIで操作できるんだぜ
kis9a
0
750
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
280
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
150
ゲームの物理 剛体編
fadis
0
370
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
AI: The stuff that nobody shows you
jnunemaker
PRO
1
14
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
0
63
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
88
The Invisible Side of Design
smashingmag
302
51k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
How to Ace a Technical Interview
jacobian
281
24k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
260
Designing Experiences People Love
moore
143
24k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
170
Transcript
Copyright © NIFTY Corporation All Rights Reserved. マイ ニフティ アプリ開発チームにおける
開発スタイルの紹介 川上 倫人 会員システムグループ 第二開発チーム
Copyright © NIFTY Corporation All Rights Reserved. 2 自己紹介 ニフティ株式会社
システム統括部 会員システムグループ 第二開発チーム 川上 倫人(かわかみ みちと) 新卒4年目 アプリ「マイ ニフティ」の開発・運用を担当 アプリ開発歴は8ヶ月
Copyright © NIFTY Corporation All Rights Reserved. 3 マイ ニフティ
@nifty 会員向けアプリ iOS版 :2021年12月リリース Android版 :2022年3月リリース https://csoption.nifty.com/myapp/
Copyright © NIFTY Corporation All Rights Reserved. 4 マイ ニフティの全体概要
チーム人数3名 + 技術アドバイザー1名 iOS/Android/APIを担当分けなく開発・運用 スクラムによる進行
Copyright © NIFTY Corporation All Rights Reserved. 5 マイ ニフティチームの抱える課題
インフラ / API / iOS / Androidと必要なスキルが幅広く 実装方針が人により異なるときがあった 新規プロジェクトかつ人員が流動的に入れ替わったため、 アプリ開発経験がないエンジニアが多くいた 今後も多くのニフティサービスと連携する可能性があり柔軟性が大事になる メンバーが少ないため、品質のチェック方法に工夫が必要になる 柔軟な共通アーキテクチャと技術共有できる土壌が必要
Copyright © NIFTY Corporation All Rights Reserved. 共通化できる拡張性の高い アーキテクチャってなんだろう...? 6
Copyright © NIFTY Corporation All Rights Reserved. 7 アーキテクチャに共通する概念 API
/ iOS / Android共に の考えを導入 Clean Architecture 各レイヤーにより関心の分離する DIP(Dependency Inversion Principle)により依存の方向を一方向にする フレームワーク/UI/データベース等を変更・交換しやすくする Clean Architecture DB UI Devices Controllers Entity Use Cases Gateways DataSouceInterface DataSouceImplement Repository(呼び出し側)
Copyright © NIFTY Corporation All Rights Reserved. 8 アプリアーキテクチャ Repositoryパターン
Repository層にデータをキャッシュしてHTTP通信を減らす 永続化したいデータはLocalDataSource経由でローカルDBに保存する View側からはローカルかリモートのどちらにデータがあるかを意識しないで良くなる View ViewModel Repository LocalDataSouce RemoteDataSouce ローカルDB HTTP Client Model iOS / Android共に を採用 MVVM + Repositoryパターン
Copyright © NIFTY Corporation All Rights Reserved. 9 アプリアーキテクチャ データフローの統一
RepositoryにあるデータをSingle Source of Truthとする Repositoryにあるデータの変更を検知してデータを自動的にViewに反映する Usecaseにアプリケーションロジックを記載する イベント・データの流れを にする 一方向 View ViewModel Usecase Repository DataSource Model イベント(タップ・pull等) データの変更
Copyright © NIFTY Corporation All Rights Reserved. 10 アーキテクチャの利点と課題 利点
課題 概念を理解するとAPI/iOS/Androidの 区別なく実装方針が共有しやすい パッケージが綺麗に分割され、 レイヤーごとの役割が明確で混乱しない 誰が書いても似たようなモジュール名と依 存関係になりやすい Clean Architecture自体の 学習コストが高め 実装が冗長になることがある (UsecaseがRepositoryをつなぐだけ等) 油断するとViewModelまたはUsecaseが 肥大化してしまう
Copyright © NIFTY Corporation All Rights Reserved. アーキテクチャはできたけど どのように継承していこうか...? 11
Copyright © NIFTY Corporation All Rights Reserved. 12 オンボーディングの整備 基本的にはオンボーディングや仕様書を充実させていく
実際のコードの設計意図やアプリ初学者の疑問等を反映しきれない 言語、アーキテクチャ設計の参考書籍・サイト swaggerをはじめとした各APIの仕様や設計ドキュメント 開発環境の前準備
Copyright © NIFTY Corporation All Rights Reserved. 13 属人化をなくしていくために 週一でコード解読会を実施
資料を全て残すことでオンボーディング化 改めて実装内容の意図や改善案を 洗い出せる API/アプリ初学者視点のQAも残る
Copyright © NIFTY Corporation All Rights Reserved. 14 技術を継承していく タスクに応じてモブプロを実施
タスク難易度や新規メンバーの加入状況によってモブプロを実施 (全タスクではない) 実装方針が統一される 異なるスキルセットを持ったメンバー間の技術共有が可能 気軽に質問がしやすい
Copyright © NIFTY Corporation All Rights Reserved. 品質はどう保っていこう...? 15
Copyright © NIFTY Corporation All Rights Reserved. 16 品質を保つために マイ
ニフティチームの課題を考える 少人数の開発のため、端末ごとの実機テストや利用感を多く試すのに時間がかかる iOS/Android/APIで多くのログやメトリクスを集めているが 必ずしも確認できていない SLO低下や障害のアラートはあるが、アラート起こる前の潜在的な問題に気付けない
Copyright © NIFTY Corporation All Rights Reserved. 17 テストパターンと使用感のフィードバックを増やす リリース前に社内全体で内部テストの実施
社内全体で希望者を募り、TestFlightやGoogle Playの内部テスター機能で配信 機種固有の問題を洗い出すために実施(特にAndroid) フィードバック例 画面サイズが極小の端末でスクロールができなくてログインできない Xiaomi端末でスプラッシュ表示がおかしい アプリ背景色と被っていて入力欄のカーソルが見えづらい
Copyright © NIFTY Corporation All Rights Reserved. 18 品質を確認する 月一で
API / アプリのパフォーマンス会を実施 メトリクスやダッシュボードを見る機会を創出 エラー率やレイテンシー、画面エンゲージメント等で気になる点を確認 UI / UXの改善点やバグ、潜在的な問題点、運用改善(Toil削減等)を検討 Firebase Performance Monitoring Cloud Watch (SLOダッシュボード/各種メトリクス)
Copyright © NIFTY Corporation All Rights Reserved. 19 まとめ マイ
ニフティチームの取り組み API/iOS/AndroidにClean Architectureの考えを反映 意図の共有や属人化解消、技術継承のため、コード輪読とモブプロを実施 定期的な品質チェックに社内テストやパフォーマンス会を実施 それぞれのコードの理解しやすさを共通化 メンバー間で実装方針のブレをなくす
Copyright © NIFTY Corporation All Rights Reserved.