中江 亮 @ryo_dg
brdr.jp ryonakae
twitter
link github
株式会社ディー・エヌ・エー
デザイン本部サービスデザイン部第1グループ デザイナー・グループリーダー
k 新規事業を中心にデザインとマネジメントをしていま
k 個人開発ではWebサイト、アプリ、Figmaプラグインを作ったr
k 趣味は飲酒とキーボードの自作で
k 好きなプロ野球チームは横浜ベイスターズ
Who am I 自己紹介
Slide 3
Slide 3 text
YOKOHAMA DeNA BAYSTARS TaxiBell Nakanohito Live
and etc.
Who am I 自己紹介
Slide 4
Slide 4 text
THEO AD:PIANO Qualum franky Fanfare
and etc.
Who am I 自己紹介
Slide 5
Slide 5 text
Team Library Component Browser
EditText
Run Plugin API
Figma Plugin
figma.com/@ryo_dg
Who am I 自己紹介
Slide 6
Slide 6 text
Violet
A Simple Tumblr Client App
by React Native + Expo
App Store Google Play
Slide 7
Slide 7 text
Libraries
利用している主なライブラリ
Slide 8
Slide 8 text
React Navigation v6
t リリース当初はv5だったが、後にアップグレーW
t Native Stack Navigatorを使ってい@
t ネイティブAppと同じパフォーマンス(らしい
t 通常のStack Navigatorよりカスタマイズ性は劣る
reactnavigation.org
Libraries 利用している主なライブラリ
Slide 9
Slide 9 text
Unstated Next
F 非常にシンプルな状態管理ライブラS
F シンプルなアプリなので十分事足りA
F 今作り直すならZustandを使いた&
F Providerでラップしなくていいのが便利
jamiebuilds/
unstated-next
zustand-demo.pmnd.rs
Libraries 利用している主なライブラリ
React Native Typography
iOS Human Interface Guidelines, Android Material Design
Guidelinesに準拠した文字の設定をインポートでき6
文字サイズに合わせたスペーシング/カーニングが最初から
設定されているのがめちゃくちゃ良
それぞれのOS準拠の色も用意されている
hectahertz/react-native-typography
Libraries 利用している主なライブラリ
Slide 12
Slide 12 text
React Native Paper
V Material Designに対応したコンポーネント
ライブラE
V スイッチなど、一部コンポーネントはiOS/Android
の両方に対応してい'
V Violetでは、Switch, Divider, RadioButton,
TouchableRippleを使っています
reactnativepaper.com
Libraries 利用している主なライブラリ
expo-haptics
b 触覚フィードバックが実装できるライブラD
b ボタンのタップなどに利用していま4
b 一部Androidでは最小設定でもバイブレーションが大きすぎる
ことがあったので、設定から無効にできるようにしている
Haptics - Expo
Libraries 利用している主なライブラリ
Slide 15
Slide 15 text
expo-localization + i18n-js
p expo-localizationが、デバイスの言語, 地域, タイムゾーンなどを含
んだオブジェクトを返してくれP
p Violetでは英語をデフォルト言語として、日本語にも対応していま4
p 例えばスマホの言語設定がスペイン語のとき、英語で表示される
ようになP
p App Store / Google Playへの提出も、デフォルト言語を英語にし
ている
Localization - Expo fnando/i18n-js
Libraries 利用している主なライブラリ
Slide 16
Slide 16 text
expo-blur
r ダッシュボード下部のUIの背景にブラーをかけたかったの
で採Q
r ナビゲーションバーはReact NavigationのheaderBlurEffect
オプションでブラーをかけられま
r 残念ながらiOSのみ対応(React Navigationも
r Androidは半透明にフォールバックされる
BlurView - Expo
Libraries 利用している主なライブラリ
Slide 17
Slide 17 text
Expo
w 開発がy
w XcodeやAndroid Studioを使う必要がなl
w (ReactNative) JSが書けたらアプリが開発できる、というのはWeb畑の人間にとっては嬉しl
w 公式ドキュメントがとても分かりやすl
w Expo SDKが充実しており、大抵のやりたいことは実現でき`
w とはいえできないこともある(アプリ内課金とか)ので、その場合はEjectする必要はあ`
w 後述するEAS (Expo Application Services)を使うと、ビルド→実機確認やストアへの提出がめちゃくちゃ楽
EAS Build
Q EAS (Expo Application Services)はExpo向けのクラウドサービ5
Q EAS Buildはそのうちの1つの機(
Q 従来のexpo buildに代わるビルドサービ5
Q expo buildは2023年1月4日以降利用できなくなります
EAS Build - Expo
Hermes & EAS HermesとEASについて
Slide 22
Slide 22 text
eas.json(の例)
eas-cliをインストールして、ログイン&設定ファイルを作成
Slide 23
Slide 23 text
Internal Distribution
eas.jsonで"distribution": "internal" にしておくと、Expoのサイトからアプリを実機に直接インストールで
き3
特にiOSでの実機確認が&
従来:
ビルド → Expoのサイトからipaをダウンロード → TransporterでApp Store Connectにアップロード →
輸出コンプライアンス情報を提出 → TestFlightからアプリをインストー4
EAS Build:
ビルド → Expoのサイトからアプリをインストール
Internal Distribution - Expo
Hermes & EAS HermesとEASについて
Slide 24
Slide 24 text
EAS Submit
Expo経由でアプリをApp Store / Google Playに提出できる機D
Androidは未設定だと「内部テスト/完全公開」の状態でアップ
ロードされてしまq
内部テストはInternal Distributionで実機確認できているので
個人的には不
右のようにすると、「製品版/下書き」でアップロードできます
EAS Submit - Expo
Hermes & EAS HermesとEASについて
Slide 25
Slide 25 text
Before EAS Submit
3 ビル
3 (iOS) Expoのサイトに行って.ipaファイルをダウンロー
3 (iOS) TransporterでApp Store Connectにアプリをアップロー
3 (iOS) 輸出コンプライアンス情報を提'
3 (iOS) リリースノートを書いて申請 → 公R
3 (Android) Expoのサイトに行って.aabファイルをダウンロー
3 (Android) Google Play Consoleに.aabファイルをアップロー
3 (Android) リリースノートを書いて申請 → 公開
Hermes & EAS HermesとEASについて
Slide 26
Slide 26 text
After EAS Submit
B ビルR
B (iOS) 輸出コンプライアンス情報を提6
B (iOS) リリースノートを書いて申請 → 公
B (Android) リリースノートを書いて申請 → 公開
Hermes & EAS HermesとEASについて
Slide 27
Slide 27 text
EAS Update
c アプリをストアに提出せずにアップデートできるサービj
c いわゆるOTA (Over The Air) Updatw
c 従来のexpo publishのEAS版
c ちなみに、EAS Build環境でもexpo publishは使える(のでEAS Updateの存在意義がよく分かっていない'
c 2022年6月時点ではまだプレビューI
c Production or Enterpriseプランでないと利用できません
EAS Update - Expo
Hermes & EAS HermesとEASについて