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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ニフティ株式会社
PRO
September 26, 2022
Video
Resources
Programming
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
マイニフティアプリ開発チームにおける 開発スタイルの紹介
ニフティ株式会社
PRO
September 26, 2022
Video
Resources
NIFTY Tech Talk #5 iOS/Androidアプリ開発LT
https://nifty.connpass.com/event/259697/
More Decks by ニフティ株式会社
See All by ニフティ株式会社
microCMS移行をいまならAIでどう進めるか - microCMS Meetup 2026
niftycorp
PRO
0
340
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.6k
ニフティ株式会社 エンジニア向け Company Deck 2026年版
niftycorp
PRO
0
650
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
290
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
370
AI 開発合宿を通して得た学び
niftycorp
PRO
0
380
なぜISPでオリジナルカードゲームを作ったのか?制作者と対談 - NIFTY Tech Talk #25
niftycorp
PRO
0
120
「なぜかネットが遅い」を“見える化”する 〜マイ ニフティが繋ぐサポートと暮らし〜 - NIKKEI Tech Talk #39
niftycorp
PRO
0
650
InnerSource Summit 2025 Three points that promoted innersource activities
niftycorp
PRO
0
330
Other Decks in Programming
See All in Programming
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
460
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
660
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.6k
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
170
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
370
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
270
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
260
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
580
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
690
仕様駆動開発の消費期限
watany
20
8.3k
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
170
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.7k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
We Are The Robots
honzajavorek
0
300
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
4 Signs Your Business is Dying
shpigford
187
23k
From π to Pie charts
rasagy
0
280
Art, The Web, and Tiny UX
lynnandtonic
304
22k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
Making Projects Easy
brettharned
120
6.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
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.