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
23k
「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
160
Other Decks in Technology
See All in Technology
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
260
個人でデジタル庁の デザインシステムをVue.jsで 作っている話
nishiharatsubasa
3
5.2k
AI時代、“平均値”ではいられない
uhyo
8
2.7k
Amazon Athena で JSON・Parquet・Iceberg のデータを検索し、性能を比較してみた
shigeruoda
1
170
SRE × マネジメントレイヤーが挑戦した組織・会社のオブザーバビリティ改革 ― ビジネス価値と信頼性を両立するリアルな挑戦
coconala_engineer
0
290
From Natural Language to K8s Operations: The MCP Architecture and Practice of kubectl-ai
appleboy
0
330
OpenCensusと歩んだ7年間
bgpat
0
140
20251024_TROCCO/COMETAアップデート紹介といくつかデモもやります!_#p_UG 東京:データ活用が進む組織の作り方
soysoysoyb
0
130
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
110
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
680
CREが作る自己解決サイクルSlackワークフローに組み込んだAIによる社内ヘルプデスク改革 #cre_meetup
bengo4com
0
360
AIの個性を理解し、指揮する
shoota
2
410
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
130k
Bash Introduction
62gerente
615
210k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
2.9k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Statistics for Hackers
jakevdp
799
220k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Designing for Performance
lara
610
69k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
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