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
150
ニフティライフスタイル株式会社の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 ニフティ株式会社
会員管理基盤をオンプレからクラウド移行した時に起きた障害たち - asken tech talk vol.13
niftycorp
PRO
0
2.5k
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
820
2025-07-08 InnerSource Commons Japan Meetup #14 【OST】チームの壁、ぶっ壊そ!壁の乗り越え方、一緒に考えよう!
niftycorp
PRO
0
83
2025-04-25 NIFTY's InnerSource Activites
niftycorp
PRO
0
280
外コミュニティ活動や登壇活動が技術 広報として大事だよ、と改めて周囲に伝 えられた件 - EM Oasis 特別会
niftycorp
PRO
0
180
Dify触ってみた。
niftycorp
PRO
1
260
Amazon Bedrockを使用して、 運用対応を楽にしてみた
niftycorp
PRO
1
280
自社製CMSからの脱却:10件のWebサイト再構築に学ぶ運用重視の技術選定 - NIFTY Tech Day 2025
niftycorp
PRO
0
130
エンジニアの殻を破る:インナーソースと社外活動がもたらした成長 - NIFTY Tech Day 2025
niftycorp
PRO
0
98
Other Decks in Programming
See All in Programming
ProxyによるWindow間RPC機構の構築
syumai
3
1.2k
ソフトウェアテスト徹底指南書の紹介
goyoki
1
150
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
210
ユーザーも開発者も悩ませない TV アプリ開発 ~Compose の内部実装から学ぶフォーカス制御~
taked137
0
150
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
2k
Kiroで始めるAI-DLC
kaonash
2
580
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
110
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
3
290
知っているようで知らない"rails new"の世界 / The World of "rails new" You Think You Know but Don't
luccafort
PRO
1
110
時間軸から考えるTerraformを使う理由と留意点
fufuhu
15
4.7k
TDD 実践ミニトーク
contour_gara
1
290
Zendeskのチケットを Amazon Bedrockで 解析した
ryokosuge
3
290
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
How STYLIGHT went responsive
nonsquared
100
5.8k
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