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
ゼロから始めたFindy初のモバイルアプリ開発
Search
Takahiro Kato
January 26, 2026
Technology
2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ゼロから始めたFindy初のモバイルアプリ開発
Takahiro Kato
January 26, 2026
More Decks by Takahiro Kato
See All by Takahiro Kato
UIライブラリに依存しすぎないReact Native設計を目指して
grandbig
0
330
新規サービス開発におけるReact Nativeのリアル〜技術選定の裏側と実践的OSS活用〜
grandbig
2
2.7k
iOSエンジニアが挑んだReact Native習得の裏側
grandbig
2
160
快適な開発と高セキュリティを実現するCryptoKitを活用したCoreDataのデータ暗号化術
grandbig
2
2k
Other Decks in Technology
See All in Technology
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
200
英語が話せなくてもKubeConスタッフに参加した話
yusuke427
2
1.1k
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
360
わたしが知り合いゼロの勉強会に 行けるようになるまで
r5ni4
1
260
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
370
DDDのエッセンスを取り入れたAIでの開発
ak2ie
1
220
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
590
案件に一番詳しいAIを Amazon Bedrock AgentCore で作る ― 知見が知見を生むチームへ / Compounding Knowledge with AgentCore
yusukeshimizu
1
170
dbt in Microsoft Fabric
ryomaru0825
0
200
Adding Right-to-Left support to your web application with CSS logical properties — Lessons from Redmine
vividtone
0
180
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
2
450
AI時代のアウトプット――変わったこと、変わらないこと / Devsumi 2026 Kansai #devsumi
jnchito
0
530
Featured
See All Featured
Building AI with AI
inesmontani
PRO
1
1.2k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
800
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
240
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Site-Speed That Sticks
csswizardry
13
1.5k
The Language of Interfaces
destraynor
162
27k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
480
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
310
Crafting Experiences
bethany
1
260
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
380
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Transcript
© Findy Inc. 2026.01.22 Findy Tech Talk #01 ゼロから始めた Findy初のモバイルアプリ開発
1 ファインディ株式会社 モバイルエンジニア 加藤 雄⼤ @Takahiro_Kato15
© Findy Inc. 2 ⾃⼰紹介 加藤 雄⼤(Kato Takahiro) • プロフィール
◦ 1986年⽣まれの埼⽟県出⾝、1児の⽗ • キャリア ◦ iOSアプリ開発をメインに研鑽 ◦ 2025年8⽉にファインディ株式会社に⼊社 :@Takahiro_Kato15 :grandbig
© Findy Inc. 3 ※クローズドに試験運⽤中
© Findy Inc. 4 Findy Eventsアプリの紹介 QRコードを提⽰して チェックイン チェックインしたイベン トの概要‧参加者の閲覧
参加者同⼠で つながり登録 ※クローズドに試験運⽤中のため、機能改善は鋭意進めています
© Findy Inc. 5 Findy Eventsアプリの紹介
© Findy Inc. 6 どのように Findy初のモバイルアプリ開発に挑んだのか
© Findy Inc. モバイルアプリ開発の背景 7
© Findy Inc. 8 モバイルアプリ開発の背景 • 昨今はAIの進化が⽬覚ましく、知識を簡単にオンラインから得られるように なった • ⼀⽅で、これからの時代、オフラインの場が今まで以上に⼤事になってくる
◦ そこでしか⼿に⼊らない、⽣きた『情報』 ◦ そこでしか作れない、かけがえのない『つながり』
© Findy Inc. 9 モバイルアプリ開発の背景 • 昨今はAIの進化が⽬覚ましく、知識を簡単にオンラインから得られるように なった • ⼀⽅で、これからの時代、オフラインの場が今まで以上に⼤事になってくる
◦ そこでしか⼿に⼊らない、⽣きた『情報』 ◦ そこでしか作れない、かけがえのない『つながり』 オフラインにおけるつながりを最⼤化し エンジニア同⼠の知識‧経験の共有を促進する
© Findy Inc. 0→1の挑戦 10
© Findy Inc. 11 0→1の挑戦 モバイルアプリプロダクト: 実績なし 現役モバイルエンジニア: ⾃分だけ 開発環境‧端末‧ルール:
なし Apple / Google 法⼈登録 iOS / Android 開発端末調達 アカウント‧端末 管理ルール策定 技術選定 当時の状況 やること⼭積み 要求&要件定義
© Findy Inc. 12 0→1の挑戦 モバイルアプリプロダクト: 実績なし 現役モバイルエンジニア: ⾃分だけ 開発環境‧端末‧ルール:
なし Apple / Google 法⼈登録 iOS / Android 開発端末調達 アカウント‧端末 管理ルール策定 技術選定 当時の状況 やること⼭積み 要求&要件定義
© Findy Inc. 13 要求&要件定義 1. 企画すり合わせ 2.UX / デザイン
3.議論‧検討 4.開発 要求定義& 機能の洗い出し エンジニア (参加者視点) PO (主催者視点) POが UXベース作成 デザイナーが Figmaで作成 どうですか? ここは こう変更で OK! 確度の⾼い機能 並⾏して実装を開始 細かい挙動 &仕様決定 実装を通じた エンジニア主体の改善 完成 プロダクト
© Findy Inc. 14 要求&要件定義 1. 企画すり合わせ 2.UX / デザイン
3.議論‧検討 4.開発 要求定義& 機能の洗い出し エンジニア (参加者視点) PO (主催者視点) POが UXベース作成 デザイナーが Figmaで作成 どうですか? ここは こう変更で OK! 確度の⾼い機能 並⾏して実装を開始 細かい挙動 &仕様決定 実装を通じた エンジニア主体の改善 完成 プロダクト エンジニアも徹底的に各フェーズに関わっていける
© Findy Inc. 15 技術選定:メインフレームワークの選定 国内での採⽤事例数 ◯ △ エンジニアの習熟しやすさ ◯
( モバイルエンジニア向き ) △ ( Webエンジニア向き ) パフォーマンス ◯ ◯ UI‧UXの⼀貫性 ◯ ( カスタムウィジェット ) △ ( ネイティブコンポーネント ) AIの学習量‧優位性 △ ◯ ( JavaScript, Reactの情報量 )
© Findy Inc. 16 技術選定:メインフレームワークの選定
© Findy Inc. 17 技術選定:メインフレームワークの選定 アドバイス • 会社として「◯◯を使ってください」ということはない • 技術は変化するものであり、将来的な再構築は起こり得る
私の解釈‧考察 • 現場主導の責任を持った意思決定をする • 不確実性の⾼いことを考えすぎるより、今思うBetterな判断をする
© Findy Inc. 18
© Findy Inc. 19 技術選定:React Native 選定の理由 • 組織のアセット ◦
社内のWeb FEから、React‧TypeScriptの知識 / レビュー協⼒を得られる ◦ React製の既存プロダクトのアーキテクチャを参考にできる • モバイルエンジニアとしての⾃⾝のナレッジ ◦ iOS/Androidのプラットフォーム特性への理解 ◦ プッシュ通知などのモバイル固有の課題への対応⼒
© Findy Inc. 20 技術選定:React Native 選定の理由 • 組織のアセット ◦
社内のWeb FEから、React‧TypeScriptの知識 / レビュー協⼒を得られる ◦ React製の既存プロダクトのアーキテクチャを参考にできる • モバイルエンジニアとしての⾃⾝のナレッジ ◦ iOS/Androidのプラットフォーム特性への理解 ◦ プッシュ通知などのモバイル固有の課題への対応⼒ 最も早くリリースができる
© Findy Inc. 21 技術選定:技術スタック 言語 ・Framework React Native この組み合わせがデファクトスタンダード
+ Expoにより、専門外のエンジニアでも簡単にリリース作業ができる Expo TypeScript UIライブラリ Tamagui OS共通のデザインを実現 + モバイルエンジニアが理解しやすい デザイン カタログ Storybook 社内で標準的に利用されている データ通信 Apollo Client GraphQL 開発支援 品質管理 分析 Jest ESLint Prettier Sentry Firebase Analytics
© Findy Inc. 現状とこれから 22
© Findy Inc. 23 現状とこれから:React Nativeを選択した結果 AI時代と⾔えど、⽴ち上がりに⾮常に苦労しました • モダンReactのキャッチアップ ◦
React Hooksって何? • Swiftとは似て⾮なるTypeScript ◦ asもenumも⾮推奨!? 選択して良かった • Web FE有識者のレビューから学びを得ることが多かった • 他プロダクトのWeb FEが読めるようになった ◦ 逆も然りだと思うので、組織の流動性にも寄与するはず
© Findy Inc. 24 現状とこれから:2025年12⽉にAndroidアプリをリリース 「Android ロボットは、Google が作成および提供している作品から複製または変更したものであり、 クリエイティブ‧コモンズ表⽰ 3.0
ライセンスに記載された条件に従って使⽤しています。」 ※iOS版は開発中
© Findy Inc. 25 現状とこれから:ユーザの声から⾒えた「伸びしろ」 興味関⼼を持ってアプリを⾒て頂けた⼀⽅で、次の気づきを感じた • UI‧UX:『もっとわかりやすく、簡単に』を突き詰める • Value:『使いたい』と思える機能提供が不可⽋
これから⽬指すこと 1. 「あると便利」だと感じてもらえる⼟台に⽴つ 2. 「使いたい」「当たり前に使う」アプリへ成⻑
© Findy Inc. 26 現状とこれから:ユーザの声から⾒えた「伸びしろ」 興味関⼼を持ってアプリを⾒て頂けた⼀⽅で、次の気づきを感じた • UI‧UX:『もっとわかりやすく、簡単に』を突き詰める • Value:『使いたい』と思える機能提供が不可⽋
これから⽬指すこと 1. 「あると便利」だと感じてもらえる⼟台に⽴つ 2. 「使いたい」「当たり前に使う」アプリへ成⻑ モバイルアプリへの挑戦は始まったばかり!
© Findy Inc. Appendix 27
© Findy Inc. IDE(統合開発環境) VSCode Xcode Android Studio 28 技術選定:技術スタック
⾔語‧フレームワーク UIライブラリ React Native Expo TypeScript Tamagui デザインカタログ Storybook 開発⽀援‧品質管理‧分析 Jest ESLint Prettier Sentry Firebase Analytics データ通信 Apollo Client GraphQL