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
140
ニフティライフスタイル株式会社の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 ニフティ株式会社
2025-04-25 NIFTY's InnerSource Activites
niftycorp
PRO
0
230
外コミュニティ活動や登壇活動が技術 広報として大事だよ、と改めて周囲に伝 えられた件 - EM Oasis 特別会
niftycorp
PRO
0
110
Dify触ってみた。
niftycorp
PRO
1
220
Amazon Bedrockを使用して、 運用対応を楽にしてみた
niftycorp
PRO
1
240
自社製CMSからの脱却:10件のWebサイト再構築に学ぶ運用重視の技術選定 - NIFTY Tech Day 2025
niftycorp
PRO
0
110
エンジニアの殻を破る:インナーソースと社外活動がもたらした成長 - NIFTY Tech Day 2025
niftycorp
PRO
0
77
システム全体像把握の超高速化〜システム関連図を使い倒そう (LT) - NIFTY Tech Day 2025
niftycorp
PRO
0
75
Rust で生成 AI の社内 chatbot をメンテしている話 (LT) - NIFTY Tech Day 2025
niftycorp
PRO
0
82
メタバースは仕事に使える?〜100日間でバーチャルオフィスへの挑戦〜 (LT) - NIFTY Tech Day 2025
niftycorp
PRO
0
71
Other Decks in Programming
See All in Programming
関数型まつりレポート for JuliaTokai #22
antimon2
0
160
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
210
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
160
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
610
VS Code Update for GitHub Copilot
74th
2
630
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.5k
生成AI時代のコンポーネントライブラリの作り方
touyou
1
170
技術同人誌をMCP Serverにしてみた
74th
1
630
GraphRAGの仕組みまるわかり
tosuri13
8
530
すべてのコンテキストを、 ユーザー価値に変える
applism118
3
1.2k
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
76
25k
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
350
Featured
See All Featured
Speed Design
sergeychernyshev
32
1k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
The Language of Interfaces
destraynor
158
25k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Docker and Python
trallard
44
3.5k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Scaling GitHub
holman
459
140k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Designing for Performance
lara
610
69k
How GitHub (no longer) Works
holman
314
140k
Music & Morning Musume
bryan
46
6.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
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