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
ニフティライフスタイル株式会社のiOSアプリ開発での課題と解消に向けた取り組み
Search
ニフティ株式会社
PRO
September 26, 2022
Video
Resources
Programming
0
160
ニフティライフスタイル株式会社のiOSアプリ開発での課題と解消に向けた取り組み
ニフティ株式会社
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
59
「なぜかネットが遅い」を“見える化”する 〜マイ ニフティが繋ぐサポートと暮らし〜 - NIKKEI Tech Talk #39
niftycorp
PRO
0
380
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
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
120
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
680
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
110
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
390
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
510
CSC307 Lecture 05
javiergs
PRO
0
490
Data-Centric Kaggle
isax1015
2
760
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
Fragmented Architectures
denyspoltorak
0
140
Grafana:建立系統全知視角的捷徑
blueswen
0
320
CSC307 Lecture 09
javiergs
PRO
1
830
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
680
Featured
See All Featured
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
240
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
How to Ace a Technical Interview
jacobian
281
24k
Technical Leadership for Architectural Decision Making
baasie
1
240
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
76
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
How GitHub (no longer) Works
holman
316
140k
Transcript
iOSアプリ開発での課題と 解消に向けた取り組み 2022年9月27日 ニフティライフスタイル株式会社 システム開発部 – アプリ開発チーム 齋藤 圭祐 ニフティライフスタイル株式会社の
自己紹介 ニフティライフスタイル株式会社 システム開発部 – アプリ開発チーム 齋藤 圭祐 ▶ 新卒4年目 🌸
▶ 主にニフティ不動産のiOSアプリの開発を担当 📱 ▶ 2020年2月〜ほとんど在宅で業務中 💻
ニフティ不動産 賃貸物件検索アプリについて 賃貸物件検索アプリ • 2013年にリリースされた歴史あるアプリ • 13つの不動産検索サービスを横断して「賃貸物件」を検索できるアプリ
開発体制について アプリ開発チーム 👤👤👤👤 サーバーサイド 開発チーム 👤👤👤👤 不動産企画チーム 👤👤👤👤 仕様提案&調整 プロダクトレビュー
APIなどサーバー周 りの作成依頼・仕様 調整 ▶ 企画・開発一体となった開発体制 ▪ 開発メンバーを含めた施策検討や仕様の調整も ▶ APIなどのサーバー周りは「サーバーサイド開発チーム」と仕様の調整をしながら進め ている ▪ 軽微なものであればアプリ開発チームで修正を行うことも!
アプリ開発での 課題
① 在宅勤務下でのプロダクトレビューがつらい
在宅勤務下でのプロダクトレビューがつらい 何がつらいのか? ▶ 「実装 → 実機ビルド → 端末を渡して確認」のフローが出来なくなった ▪ 実機で確認してもらうには30分かけてTestFlightに上げるしかなくなった
→ スクショや動画での確認が多くなってしまった → 色味やパーツのサイズなど実機で操作しないと分かりづらい点の調整がしづらい状態だった → Xcode上でバージョン番号を変えて、ここを押して…と手順が複雑だった ▶ PRマージ後に実装上の不具合に気づく事があった ▪ 実装者の端末でしか確認していなかったため、実際に触ってみると不具合が出たりと違和感の ある動きをしている事があった
Googleの提供するサービスで、TestFlightを使わずに「開発バージョン」を気軽に特定のメンバーに配 信することが出来る 無料 のサービス Firebase App Distribution #とは 在宅勤務下でのプロダクトレビューがつらい Firebase
App Distribution を導入 🎉
在宅勤務下でのプロダクトレビューがつらい - Before - 😣 「実装 → 実機ビルド → 端末を渡して確認」のフローが出来なくなった
😣 「PRマージ後」に実装上の不具合に気づく事があった 😆 検証版の配信が簡単に出来るようになった! → 配信までにかかる時間が30分から10分に短縮された → 気軽に配信できるのでリモートでも企画側への動作確認依頼がスムーズになった 😆 コードレビュー時に実機確認が出来るようになった! → 開発のレビュー時に「実際の動きに不具合/違和感がないか」を確認する体制が出来た 2020年 2月 - After - レイアウト調整の例
② CI/CDの存在しない開発体制
CI/CDの存在しない開発体制 - 課題 何が課題か ▶ ユニットテストの実行を強制する仕組みがなかった ▪ PRをマージした後にテストが通らなくなるといった事が発生していた ▶ テストバージョンやストアへのアップロード作業が開発者のローカル環境に依存している
▪ アップロード作業中は「コードの書き換えが出来ない」「マシンが重くなりビデオ会議もまま ならない」など時間やマシンリソースが奪われていた ▪ 稀にライブラリやSDKのバージョンの差異が発生してしまっていた
CI/CDの存在しない開発体制 Bitrise を導入 🎉 iOSやAndroidなど主にモバイルアプリ開発に特化したクラウド型CI/CDツール。 個人開発規模であれば無料〜使用することができる。 Bitrise #とは
CI/CDの存在しない開発体制 - 導入までの流れ 導入検討 調査比較 ルール策定 導入 ・機能 ・セキュリティ面 ・費用面
・実行回数/時間制限 …などを複数サービスで比較 ・導入すると何が出来るのか ・誰がどう嬉しいのか …など「そもそも導入するべきか」の検討 ・アカウント管理方法 ・コードや各種証明書の扱い ・セキュリティリスクの洗い出し …などのルールを策定し情シスに提案 一通りまとめた情報を元に 導入を決定 🎉
CI/CDの存在しない開発体制 - Before - 😣 ユニットテストの実行を強制する仕組みがない 😣 テストバージョンやストアへのアップロード作業が開発者のローカル環境に依存していた 😆 ユニットテストの実行の自動化
→ テストコードが通るまでPRのマージをブロック出来るようになった 😆 開発者のローカル環境に依存せず各種ビルドやアップロード作業ができるようになった! → ローカル環境で1コマンド叩くだけで後の作業はBitriseに任せられるようになった → 必ずBitriseの環境を用いてビルドする事になったためバージョン差異が発生しなくなった 2020年 2月 - After -
CI/CDの存在しない開発体制 - 導入後 ▶ CI:PR関連 ▪ PR単位での ユニットテストの実行 ▪ PR単位での
Lint(SwiftLint)の実行 & PRへの反映(インラインコメント) ▶ CD:各種ビルドの配信 ▪ テストバージョン配信 (Firebase App Distribution) 〜 通知 の自動化 ▪ リリースバージョン配信 (Testflight) 〜 通知 の自動化 ▪ ストア情報(メタ情報)変更の自動化 ▪ mainブランチマージ後のAppDistribution公開の自動化 何ができるようになったか ※ 2022年9月 時点
でも… なかなか改善の為の時間取れないですよね
改善活動を行うための時間が取れない なぜ時間が取れないのか ▶ 「改善活動をこの日にやろう!」と事前にスケジュールを決めてみたら… ▪ 施策開発のスケジュールの関係で潰れてしまうことが多かった ▶ 「月1で改善活動をするぞ!」と決めてみたら… ▪ 中途半端にしか改善ができず、次の改善活動は1ヶ月後で「記憶を思い出すところから…」と
なっていた
改善活動を行うための時間が取れない どうしたか ▶ 「毎日30分ずつ」に変えてみた ▪ Googleカレンダーに定期予定で入れておく(周りへのアピール) ▪ 30分ずつであれば施策開発の時間への影響を少なくする事ができた ▪ 「続きは明日」という心理的安心感を得られた
▶ 「改善活動しなきゃ!」と思えるような環境にした ▪ 改善タイム開始時にSlackで宣言するようにし、 お互いの背中を押すようにした
改善活動を行うための時間が取れない App Distribution導入🎉 ※ ローカル環境15分 2020年 現在 2021年 2022年 CI/CD導入検討開始
Bitrise導入 🎉 CI)UT自動実行導入 CD)各種ビルドのアップロード自動化導入 iOS他アプリ&Android への展開を開始 CI)既存全体への SwiftLint導入開始 CI)SwiftLint導入 ニフティ不動産 賃貸物件検索 iOSアプリの改善推移
最後に ❖ 改善は「スモールスタート」で着実に!確実に! ➤ 「大きなゴール」を設定してしまうと効果が出るまでに時間がかかってしまう ➤ Objective-C脱却などは地道にやっていくしかない ❖ 1アプリへ導入する事で横展開も行いやすいので始めてみることが大事! ➤
弊社では iOS/Android で各5アプリ以上提供しているため、1アプリで導入した物を横展開する ことが出来る ❖ 自動化できる作業は自動化した方が効率も安全性も上がる! ➤ 1人1日5分の短縮でも、1ヶ月(20営業日)で100分の短縮になる ➤ 人は失敗する生き物なので自動化出来るところはシステムに頼る
None