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
プロジェクト着手時に意識した大切なこと
Search
Tomomi Kimura
December 17, 2024
71
0
Share
プロジェクト着手時に意識した大切なこと
React Native Meetup #19. マイベスト登壇資料
https://react-native-meetup.connpass.com/event/336611/
Tomomi Kimura
December 17, 2024
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Navigating Weather and Climate Data
rabernat
0
160
Visualization
eitanlees
150
17k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Designing Experiences People Love
moore
143
24k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
880
Rails Girls Zürich Keynote
gr2m
96
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Design in an AI World
tapps
0
190
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Leo the Paperboy
mayatellez
7
1.6k
Transcript
プロジェクト着手時に意識した 大切なこと Tomomi Kimura
写真 • Tomomi Kimura @coco0411529 • 株式会社マイベスト 業務委託(リモート) • モバイルエンジニア
• React Native 2年目 • 愛犬家 柴推し🐕🐕 自己紹介
月間利用者数 3,000 ユーザーの “選択”を サポートするサービス 万人以上 (2024年11月時点)
プレゼンの内容 • React Nativeアプリケーションを開発する際、プロジェクト着手時に意識した大切な こと フォーカスしたいポイント ◦ デザインレビュー ◦ コンポーネントの複雑性
◦ マルチデバイスサポート
None
デザインレビュープロセス 1. フローを理解する。ユーザーの立場に立って考える ◦ ユーザーは新しい機能をどのように使うのか? ◦ ユーザーは新しいコンテンツや画面にどう遷移するのか? ◦ 不可解な点があれば、今が質問するタイミング! 2.
機能やプロジェクトのコア部分を明確に する ◦ タイトな締切のプロジェクトでは、全ての要望に応えるのが難しい時もある。ビジネスにとって本当 に重要なことを理解することで、優先度把握や相談タイミングなどの手助けに 3. 隠れた複雑性 を探す
デザインを深掘りする • 新しく作成が必要なスクリーン数はどのくらい? • 変更が必要なのは何箇所あるか? • 新しいコンポーネントはいくつか? • デザインシステムは適切に使われているか? •
コアなコンポーネントの変更は必要か? • 機能の中で、最も複雑なコンポーネントやインタラクションは何か?
None
コンポーネントを分解する(Component breakdown)
隠れた複雑さの見極め (Hidden complexity)
隠れた複雑さの見極め (Hidden complexity) 変更の可能性がある箇所を明確にする
意識したこととできる対応 • ビジネスによって、変更が必要になる可能性のある領域や機能を特定 する ◦ プロモーションバナー ◦ お金やポイントなどに関する表記 ◦ 法的文言に関する表記
◦ ユーザーアカウントや進捗に関連するUIコンポーネント • ユーザーがアプリを更新しない可能性を加味して実装する • 可能であればOTA(Over the Air)更新をサポートする
None
動作確認は、複数のデバイスでテストする
異なるデバイスの SafeAreaを考慮する
<SafeAreaView> <BaseBox> {/* ... */} </BaseBox> </SafeAreaView> const insets =
useSafeAreaInsets(); return ( <View style={{ paddingTop: insets.top, paddingBottom: insets.bottom, }}> {/* ... */} </View> ); SafeAreaView: (‼) useSafeAreaInsets: • SafeAreaView from React Native • iOS version 11以降対応 (iOS version10以前のバージョン Android非対応) • useSafeAreaInsets hook from react-navigate-safe-area-context library • React Navigationも推奨
None
const insets = useSafeAreaInsets(); const device = useWindowDimensions(); const height
= device.height - insets.top - NAVIGATION_BAR_HEIGHT - BOTTOM_TAB_BAR_HEIGHT - insets.bottom;
実際どのくらいレスポンシブにする必要があるか?
マルチデバイスサポート • 自分のアプリのカバーしているデバイスを把握 • デザイン面の考慮点:SafeArea, aspect ratio (width x height)
• 動作確認時の推奨デバイス ◦ iOS: iPhone SE, iPhone 16 Pro Max ◦ Android: Galaxy, Google Pixel ◦ 動作確認時の簡単コマンド ▪
まとめ • プロジェクト着手時に意識した大切な事 ◦ デザインレビュー ▪ 深掘り ◦ コンポーネントの隠れた複雑性 ◦
マルチデバイスサポート ▪ SafeAreaに配慮したデザイン実装 ▪ iOS&Androidの複数のデバイスでの動作確認
ご清聴ありがとうございました!