×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
asmz.beer React Native + Expoで始める Webフロント開発 2025/1/17 Sendai Frontend Meetup #15 Akira Shimizu / asmz
Slide 2
Slide 2 text
asmz.beer 誰なのか? ● Akira Shimizu / asmz (@_asmz) ● https://asmz.beer/ ● モバイルアプリエンジニア ○ iOS / Android / React Native / Flutter ● お仕事募集中です!
Slide 3
Slide 3 text
asmz.beer お仕事募集中です!
Slide 4
Slide 4 text
asmz.beer アジェンダ 1. React Native, Expoとは 2. ExpoでのWebフロント開発手順 3. Expo Web開発のメリット・デメリット
Slide 5
Slide 5 text
asmz.beer React Native, Expoとは
Slide 6
Slide 6 text
asmz.beer React Nativeとは React技術を用いてiOS/Androidネイティブアプリケーションを開発できる Javascriptライブラリ https://reactnative.dev/
Slide 7
Slide 7 text
asmz.beer Expoとは React Nativeをベースとし、ネイティブ処理の隠蔽やファイルベースルー ター、クラウドビルドサービスなどアプリ開発に便利な様々な機能やツー ルを集めた開発フレームワーク https://expo.dev/
Slide 8
Slide 8 text
asmz.beer Expo つまりこういう感じ React iOS SDK iOS App Android SDK Android App React Native React Native iOS React Native Android 今日の話題 React DOM Web App React Native for Web
Slide 9
Slide 9 text
asmz.beer ExpoでのWebフロント開発手順
Slide 10
Slide 10 text
asmz.beer Expoプロジェクト作成 $ npx create-expo-app@latest --template blank-typescript Creating an Expo project using the blank-typescript template. ✔ What is your app named? … my-expo-web-sample : $ cd my-expo-web-sample $ #web開発に必要な依存パッケージを導入 $ yarn expo install react-dom react-native-web @expo/metro-runtime
Slide 11
Slide 11 text
asmz.beer Expoプロジェクト作成
Slide 12
Slide 12 text
asmz.beer コード概要 React Nativeでは抽象化された GUIコンポーネントを使って画面 を生成する UITextView Class ~~~ TextView Class
~~~
iOS Android Web https://reactnative.dev/docs/intro-react-native-components#core-components
Slide 13
Slide 13 text
asmz.beer Expo開発サーバ起動 $ yarn expo start ソースコードの変更を検知し、自 動でアプリに転送、ビルドなどし てくれるローカルサーバ
Slide 14
Slide 14 text
asmz.beer Expoアプリ起動 ターミナル上で 「w」キー押下
Slide 15
Slide 15 text
asmz.beer Expoアプリ起動 ターミナル上で「i」や「a」を 押すと
Slide 16
Slide 16 text
asmz.beer Expo Router導入 ● React Native上でファイルベースルーティングを実現す るライブラリ ● 詳細な導入方法は以下参照 ○ https://docs.expo.dev/router/installation/
Slide 17
Slide 17 text
asmz.beer Expo Router導入 「/」に該当 「/second」に該当 「/settings」に該当
Slide 18
Slide 18 text
asmz.beer Expo Router導入
Slide 19
Slide 19 text
asmz.beer Expo Routerでタブナビゲーション
Slide 20
Slide 20 text
asmz.beer Expo Routerでタブナビゲーション
Slide 21
Slide 21 text
asmz.beer Expo Web Appのデプロイ $ yarn expo export -p web distディレクトリ配下に公開用のファイル 群がビルドされるので、任意のWebサー バへアップして公開可能
Slide 22
Slide 22 text
asmz.beer EAS Hosting ● https://expo.dev/blog/expo-announces-eas-hostin g-service ● 2025/1/15にプレビュー版公開 ● 元々EASではアプリのビルド、ストア公開などが可能 だったが、そこにWebアプリのホスティング機能が追加
Slide 23
Slide 23 text
asmz.beer Expo Web開発の メリット・デメリット
Slide 24
Slide 24 text
asmz.beer Expo Web開発のメリット ● iOS/Androidアプリと足並みを揃えた開発が可能 ● モバイルアプリエンジニアがWeb開発に参画しやすい
Slide 25
Slide 25 text
asmz.beer Expo Web開発のデメリット ● WebフロントエンジニアからするとReact Nativeコンポーネ ントの扱いに戸惑うかも ● もっとゴリゴリとHTMLやCSSを書きたい場合は難しいかも しれない
Slide 26
Slide 26 text
asmz.beer Enjoy, Engineering! 2025/1/17 Sendai Frontend Meetup #15 Akira Shimizu / asmz