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
「もっと正確に、もっと効率的に」ANDPADの写真書き込み機能における、 現場の声を形にしたエ...
Search
ANDPAD inc
November 13, 2025
Technology
1.1k
0
Share
「もっと正確に、もっと効率的に」ANDPADの写真書き込み機能における、 現場の声を形にしたエンハンス
山根 大生
2025 年 11 月 13 日
【日経×ニフティ×アンドパッド】モバイルアプリでつなぐ現場と暮らし〜情報が“届く”を再設計する〜
ANDPAD inc
November 13, 2025
More Decks by ANDPAD inc
See All by ANDPAD inc
アンドパッドが提供する Drinks and Local Meals と Drinkup を大公開
andpad
0
88
建設DXを支えるANDPAD: 2025年のセキュリティの取り組みと卒業したいセキュリティ
andpad
0
280
小規模 SRE チームで支える、 Atlantis で実現するインフラ管理のセルフサービス化
andpad
1
72
Go コードベースの構成と AI コンテキスト定義
andpad
1
220
複数チーム並行開発下でのコード移行アプローチ ~手動 Codemod から「生成AI 活用」への進化
andpad
0
310
Building the Real World with Ruby
andpad
0
77
Catch Up: Go Style Guide Update
andpad
0
340
OSS開発者という働き方
andpad
5
1.9k
Vue・React マルチプロダクト開発を支える Vite
andpad
0
210
Other Decks in Technology
See All in Technology
レガシーシステムをどう次世代に受け継ぐか
tachiiri
0
330
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
6
2.4k
Databricksで構築するログ検索基盤とアーキテクチャ設計
cscengineer
0
120
Databricksを用いたセキュアなデータ基盤構築とAIプロダクトへの応用.pdf
pkshadeck
PRO
0
260
生成AI時代のエンジニア育成 変わる時代と変わらないコト
starfish719
0
470
🀄️ on swiftc
giginet
PRO
0
290
推し活エージェント
yuntan_t
1
900
20260410 - CNTUG meetup #72 - DiskImage Builder 介紹:以 Kubespray CI 打造 RockyLinux 10 Cloud Image 為例
tico88612
0
110
Cortex Codeでデータの仕事を全部Agenticにやりきろう!
gappy50
0
350
プロダクトを触って語って理解する、チーム横断バグバッシュのすすめ / 20260411 Naoki Takahashi
shift_evolve
PRO
1
250
本番環境でPHPコードに触れずに「使われていないコード」を調べるにはどうしたらよいか?
egmc
1
260
ZOZOTOWNリプレイスでのSkills導入までの流れとこれから
zozotech
PRO
4
3.2k
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
The Pragmatic Product Professional
lauravandoore
37
7.2k
Building Adaptive Systems
keathley
44
3k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
130
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
710
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Mobile First: as difficult as doing things right
swwweet
225
10k
ラッコキーワード サービス紹介資料
rakko
1
2.9M
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
The Curse of the Amulet
leimatthew05
1
11k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
120
Transcript
© 2025 ANDPAD All Rights Reserved. Confidential 1 「もっと正確に、もっと効率的に」:ANDPADの写真書き込み機能における、 現場の声を形にしたエンハンス
株式会社アンドパッド 山根大生
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 2 •
ANDPAD・ANDPADの写真書き込み機能について ◦ ANDPADとは ◦ エンハンス前と抱えていた課題 ◦ 課題解決のためのエンハンス後 • 写真書き込み機能の実装について ◦ アーキテクチャ ◦ プロトコルによる抽象化 ◦ 継承によるロジックの共通化 • 写真書き込み機能の現在とエンハンスの振り返り 目次
© 2024 ANDPAD All Rights Reserved. Confidential ANDPADとは 社内 現場
営業 / 監督 / 設計 事務 / 管理職 職人 / 業者 メーカー / 流通 現場の効率化から経営改善まで一元管理できる クラウド型建設プロジェクト管理サービス 案件管理 資料 工程表 写真 報告 チャット 黒板 図面 受発注 • • •
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 4 写真書き込み機能について
写真上にフリーハンドの線や図形、テキストを追 加することができる 写真書き込み機能の目的 主に、建設現場での情報共有の正確性と効率向上 のために活用される。 現場写真に直接、施工箇所、是正事項などの詳細 情報を書き込むことで、口頭や文章だけでは伝わ りにくい情報を視覚的に伝達することが目的。
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 5 ANDPADの写真書き込み機能について(エンハンス前)
提供されていた機能 • フリーハンドの書き込み • 消しゴム • テキスト挿入
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 6 現場が抱える課題と要望
1. 正確な情報伝達の難しさ フリーハンドの手書きのみでは、線がブレて指示が不明瞭になりがち。 👉 施工箇所を正確に、誤解なく伝えたい 2. 書き込み作業の「手間」と「時間」 細かい指示や修正が必要な場合、書き直しに時間がかかり、現場監督や営業の方の貴重な時 間を浪費している。 👉 作業効率を上げ、ストレスなく書き込みたい 3. 情報の密度・柔軟性の欠如 詳細な指示(複雑な施工箇所など)を書き込む際の表現力に限界がある。 👉現場状況に応じて、詳細かつ柔軟に情報を残したい
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 7 エンハンス後の写真書き込み機能
追加で実装した機能 • 図形挿入(直線、矢印、四角、楕円) • 配置後のサイズ・色・線の太さの変更 • Undo・Redo 💡 図形挿入によって、より正確で柔軟な表現が 可能に 💡 リサイズ機能や色・太さ変更、Undo/Redo によって、編集の手間を大きく削減
© 2025 ANDPAD All Rights Reserved. Confidential 8 写真書き込み機能の実装について
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 9 アーキテクチャ・DrawingLayerProtocolによる抽象化
class PhotoEditingViewModel { // 写真上に追加されたオブジェクトなど @Published var drawingLayers: [any DrawingLayerProtocol] = [] } protocol DrawingLayerProtocol { // オブジェクトが描画されるレイヤー var renderingLayer: CALayer { get } // renderingLayerを編集して、オブジェクト描画する func draw() // オブジェクトの種類や色、座標など描画するために必要な情報 } MVVMを採用。ViewModelは写真上に配置されたオブジェクトの情報を、抽象化された状態で保持。 CALayer上で実装されたオブジェクトをViewControllerでimageViewのSubLayerに追加。
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 10 各レイヤーの準拠・継承の関連図
準拠 継承
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 11 継承による、リサイズ処理の共通化
直線と矢印は見た目が異なるが、「リサイズ」や「移動」の処理は共通なので、基底クラスを実装し て処理を共通化。 共通化できない点はそれぞれのサブクラスで実装。 class ResizableLineDrawingLayer: DrawingLayerProtocol { func updateLength() { // 長さを更新 } func move() { // オブジェクトの移動 } // 他、サイズ変更のポインターを描画する処理など func draw() { assert(false, "Implement in sub-class!") } }
© 2025 ANDPAD All Rights Reserved. Confidential Confidential class ResizableFrameDrawingLayer:
DrawingLayerProtocol { func updateShape() { // 形を更新 } func move() { // オブジェクトの移動 } // 他、サイズ変更のポインターを描画する処理など func draw() { assert(false, "Implement in sub-class!") } } 12 四角形、楕円も同様に共通化
© 2025 ANDPAD All Rights Reserved. Confidential 13 写真書き込み機能の現在、振り返り
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 14 写真書き込み機能の現在、エンハンスの振り返り
現在はアップデートが行われ、三角形の挿入、図形の 角度調整が行えるようになっている。 DrawingLayerProtocolに準拠して実装を行うことで 簡単に新しい図形の追加ができた。 設計工夫でスムーズに追加の顧客対応を行うための基 盤を実装することができた。
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 15 まとめ
• 顧客要望をもとに写真書き込み機能エンハンスを行った • 実装では、抽象化・継承を活用して、処理の共通化を行った • 設計の工夫によって、追加の要望にスムーズに対応できるようになった 設計の重要性を身をもって再認識することができました🙌
© 2025 ANDPAD All Rights Reserved. Confidential 16 宣伝
© 2025 ANDPAD All Rights Reserved. Confidential Confidential 17 今年もiOSDCのアーカイブが公開されました🙌
アンドパッドから2名のエンジニアが登壇しました ネイティブ製ガントチャートUIを作って学ぶ UICollectionViewLayoutの威力 https://youtu.be/8_9GmPn7URA?si=Xd2eAoX_KWNtQSjI iOS→Flutter→iOS帰還:消えないFlutterの 傷跡 https://youtu.be/gplNWVPV14o?si=rGsLqIBIG6Gz-i30 スポンサーセッション LT
© 2025 ANDPAD All Rights Reserved. Confidential 18 ありがとうございました