Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
マイニフティアプリ開発チームにおける 開発スタイルの紹介
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ニフティ株式会社
PRO
September 26, 2022
Video
Resources
Programming
0
310
マイニフティアプリ開発チームにおける 開発スタイルの紹介
ニフティ株式会社
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
63
「なぜかネットが遅い」を“見える化”する 〜マイ ニフティが繋ぐサポートと暮らし〜 - NIKKEI Tech Talk #39
niftycorp
PRO
0
390
InnerSource Summit 2025 Three points that promoted innersource activities
niftycorp
PRO
0
210
Maker Faire Tokyo 2025 出展うらばなし - NIFTY Tech Talk #25
niftycorp
PRO
0
87
Private Status Pageの設定と活用 〜インシデントレスポンスへの活用とStatus Page運用をどうするか?〜
niftycorp
PRO
0
140
ニフティのPagerDuty活用状況
niftycorp
PRO
0
120
会員管理基盤をオンプレからクラウド移行した時に起きた障害たち - asken tech talk vol.13
niftycorp
PRO
0
2.6k
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
1.1k
2025-07-08 InnerSource Commons Japan Meetup #14 【OST】チームの壁、ぶっ壊そ!壁の乗り越え方、一緒に考えよう!
niftycorp
PRO
0
120
Other Decks in Programming
See All in Programming
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
今から始めるClaude Code超入門
448jp
8
9k
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
130
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
CSC307 Lecture 06
javiergs
PRO
0
690
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.5k
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.5k
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
AI & Enginnering
codelynx
0
120
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
200
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
110
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
77
How STYLIGHT went responsive
nonsquared
100
6k
Un-Boring Meetings
codingconduct
0
200
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Marketing to machines
jonoalderson
1
4.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
97
YesSQL, Process and Tooling at Scale
rocio
174
15k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
86
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
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.