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
「freeeのモバイルチームを知ってくれ」freee技術の日発表資料 - 2023年
Search
sugiken
April 17, 2023
Technology
0
24k
「freeeのモバイルチームを知ってくれ」freee技術の日発表資料 - 2023年
2023年4月16日に開催されたfreee技術の日の発表資料です。
sugiken
April 17, 2023
Tweet
Share
More Decks by sugiken
See All by sugiken
[#1 Mita.ts] Prisma Schema から コード生成
sugikent
0
170
Other Decks in Technology
See All in Technology
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
390
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
130
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
93k
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
2
210
(技術的には)社内システムもOKなブラウザエージェントを作ってみた!
har1101
0
350
Context Engineeringの取り組み
nutslove
0
380
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
200
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
220
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
170
Red Hat OpenStack Services on OpenShift
tamemiya
0
140
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
120
20260204_Midosuji_Tech
takuyay0ne
1
160
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
340
Odyssey Design
rkendrick25
PRO
1
500
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
96
Navigating Weather and Climate Data
rabernat
0
110
How to Talk to Developers About Accessibility
jct
2
140
Designing for humans not robots
tammielis
254
26k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
440
Building an army of robots
kneath
306
46k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Transcript
freeeのモバイルチームを 知ってくれ sugiken 2023年4⽉16⽇
ここに円に切り抜いた画像を入れてく ださい sugiken 2019年 新卒⼊社 webエンジニアとして freee 会計に 携わる 2021年
社内の異動制度を利⽤しモバイルチームへ異 動し会計アプリの開発を担当 趣味は旅⾏とカラオケ モバイル船 モバイル会計ヨット
⽬次 1. チームの⽬標の話 2. 「モバイルならでは」を探す話 3. 技術の話
⽬標の話 1
freeeのモバイルチームを 知ってくれ そもそもなぜこのタイトルなのか
freeeのモバイルチームを 知ってくれ 「freee」って聞くとwebサービスのイメージで すよね?
freeeのモバイルチームを 知ってくれ まだまだfreeeモバイルチームの 知名度が低い!!
freeeのモバイルチームを 知ってくれ freeeモバイルチームは、 おもしろい!!
freee会計 freee開業 freee福利厚生 freeeアプリストア freee人事労務 freee会社設立 freee受発注 freeeプロジェクト管理 freee資金調達
freee申告 freeeカード freeeのモバイルアプリ freeeサイン
モバイル会計アプリ利用者数シェアNo.1 71% 他社 ※出典:リードプラス株式会社「主要3社のサービス利⽤者数のシェア(2021年7⽉~2022年6⽉のユニークユーザー数)」 https://localfolio.leadplus.co.jp/blog/industry-analysis-series_cloud-accounting-software
モバイルチームが今後3年で⽬指すところ スマートフォンだけで「だれもが⾃由に経営できる」世界の実現 • 個人事業主ユーザーが日々の経営や確定申告が超簡単にできる • 従業員ユーザーがサクッと勤怠管理や経費精算などのバックオフィス業務を簡単・確実 にできる • 統合型経営プラットフォームを実現するためにいくつかの新規アプリのリリース
「モバイルならでは」 の話 2
「モバイルならでは」を探す理由 • web版にはほぼ全ての機能があるので、極論web版で良い • みんなPCは持ってなくても、モバイル端末は持っている ◦ 特に業種ごとに傾向もある • モバイルにはモバイルの特性があり、体験の向上ができる
• モバイルの可能性を僕らが信じている
常に「モバイルならでは」 を探し続けている
⼤切にしていること 「ユーザーを知ること」
ユーザーを知るために - ユーザーインタビュー エンジニアも同席。ユーザーの声を聞きアイディアに活かす • いくつかのインタビュー形式 ◦ モックアップによる UI
の検証 ◦ インサイトを探るためのインタビュー 良い点 • 使われている機能/難しいと思われている機能などが分かる • やっぱり直接聞くと⼼に残る
ユーザーを知るために - タウンホールミーティング モバイルユーザーの⽅7⼈に集まっていただき、経営層からエンジニアまで直接話を 聞く会 本当にズバズバと、ユーザーさんの 本⾳を聞ける会だった
モバイルならではの価値ってなんだろう • 誰でも持ってる • 直感的な操作 • カメラなどのハード⾯ ◦ モバイル端末でのエッジ
OCR • NFC による交通系電⼦カード/マイナンバー読み 取り
ユーザーについてのいくつかのファクト • モバイルアプリのユーザー層は、明らかにPCメインのユーザーと異なる 属性 ◦ 例)年齢、業種 • "知識" がユーザーごとに異なってくる
◦ 「操作の分からない」と「知識の分からない」は別 ◦ 例)確定申告の⼀連の流れを知っているかどうか
「どんなユーザーか」 × 「モバイルならではの価値」
技術の話 3
freee モバイルチームの特徴 をドドドッと紹介
MoVibes - モバイルアプリ専⽤のデザインシステム • デザイナーがそれぞれのOS⽤に作成し、これを基に社内 UI ライブラ リ作成 •
UIの統⼀感/開発速度向上を⽬指している • 新規画⾯で徐々に導⼊中 実装⾯でよかったところ • デザイナーとの共通⾔語が持てる • ⾊やテキストのスタイル指定が楽 • Component の再利⽤による開発速度向上
SwiftUI の検証‧導⼊中 ⼤規模な導⼊ < 部分的な導⼊ UIHostingController を⽤いて部分的に導⼊をしたり、新画⾯は SwiftUI を積極採⽤している。
アプリケーション全体を SwiftUI 化していくのはもう少し先。マルチモ ジュール化なども並⾏しているので、それが落ちてついてから。 新規アプリでは、フルSwiftUI & The Composable Architecture
アクセシビリティ向上に全⼒ 「⾼いアクセシビリティは売れる」 • 1⼈でも使えない⽅がいると採⽤してもらえない可能性がある • すべてのユーザーにとって使いやすくなる やり⽅ • はじめに
◦ 「freeeアクセシビリティー‧ガイドライン」を基にモバイル⽤のチェックシー トを作成 • デザイン段階 ◦ 要素の⼤きさや⾊などチェック • 実装段階 ◦ PR ごとに、特にエンジニアとして担保したい箇所をチェック • QA 段階 ◦ VoiceOver などをオンにしてチェック
MobCore Kotlin Multiplatform Mobile の社内ライブラリ。 iOS/Android の両 OS をまたいでコードを共通化。
2020年から開発開始し、iOS/Android 両エンジニアで育てている。 ⽤途 • API response のモデル ◦ API のドキュメント的役割も果たしている ▪ OS 間で「えっ!?この property Nullable じゃないの?」みたいなのが避けられる • ドメインロジック ▪ 税額計算 ▪ 要素の表⽰条件 ▪ ユーザーの権限や設定を考慮した分岐 • Form モデル(画⾯の⼊⼒内容やそれに伴うロジック)
マルチモジュール化 不要なコードのビルドを避ける環境を作ると同時に機能間‧レイヤー間の依存 関係を整理‧明確化することで以下を⽬指す • 保守性‧拡張性の向上 • ビルド速度の改善による開発速度の向上 Android マルチモジュール化済み
iOS 現在: 巨⼤な App Target と数個の社内 SwiftPackage というモジュール構成 機能群(feature)ごとに分割していく予定
⾃分たちで効果測定 リリースした機能の効果検証を⾃分たちでやっている 設計段階で、取得するべきログを PdM と相談して決定し Redash で分析 ⾃分たちで DB
の設計‧構造を理解していくことで、さらなるドメイン理解にも つながる
課⾦周りめっちゃすごい 特徴 • 国内 toB SaaS の中でも有数のプラン数 • 最⼤
54,800円/年の⾼額サブスク カオス • IAP/IAB/web からのクレカ決済など多種多様な⽀払⼿段 • 1ユーザー でも複数の事業所を持てる ◦ どの IAP/IAB で、どの事業所に課⾦してるのかのハンドリングが必要
負債返済へ真摯な姿勢 毎⽇の業務に加えて毎⽉の改善デー(1⽇⾃由に負債返済の⽇)で みんなでガッと対応 最近取り組んでること • [Android] NonTransitiveR への移⾏ •
[iOS] CocoaPods/Carthage から SPM へ移⾏ • [iOS] Warning の解消 700over から 100 くらいに減少 • モバイル専⽤ API への移⾏ ◦ 現状 Mobile API は全部で175個!!!
Ruby も書きます! ⾃分たちで Ruby on Rails のコードを書いて API の実装をしている
良い点 • クライアントからサーバーサイドまで⾃分たちで完結できる • API に任せられるロジックは API に書こうと思える • 予想外の API スキーマの変更によるトラブルを減らすことができる
まとめ スマートフォンだけで「だれもが⾃由に経営できる」世界の実現」 そのために、 • ユーザーを知る • ユーザーのための開発をする • 新しい技術を果敢に取り組む
• 負債返済も忘れない
None