2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
React Native(Expo) + Firebaseを使って爆速でアプリを作る(全1記事)
リンクをコピー
記事をブックマーク
羽賀流登氏:はじめまして、よろしくお願いいたします。「React Native(Expo) + Firebaseを使って爆速でアプリを作る」というタイトルでやらせていただきます。
自己紹介なんですが、羽賀流登と申します。Twitterは「mxcn3」というIDでやらせていただいております。
ふだんはFACTBASEという、仮想通貨関係のニュースをあつかっている会社で、React Nativeでアプリ開発をしたり、Webのフロントエンドをやったりしています。仕事以外ではReact、最近はElmに興味をもって、すごくいいなと思い始めてます。
React LT用にReact Nativeでアプリを作ったので、本日はその話をしようと思っています。使用したUIのライブラリや、Expoなどについて話します。
1つ聞きたいんですが、Reactをやられてる方で、React Nativeをやられてる方はどれくらいいらっしゃるんですかね……?
(会場挙手)
やっぱり少ないですよね、よかったです!(笑)。多かったら今日の話はつまらなさそうだなと思ったので。
React NativeとはFacebookが作っている、クロスプラットフォームで開発ができるフレームワークです。
ReactのJSを書いてる人なら比較的簡単に書くことができます。React Nativeで「Hello, World!」的なことをやろうとするとこうなるのかなと思って、やってみました。
Reactに入っているのをインポートして、ちょっと書けばできるのかな、という。
それで、React Nativeの開発環境を提供してるExpoというのがあるんですけど、そのsnackというのを使うとWebブラウザ上から実行できるので、もしよかったら試してみるとわかりやすいかもしれないです。
Expoとは、React Nativeの開発を限りなくWebアプリの開発の体験に近づけることができるプラットフォーム兼ライブラリです。
さっきの「Hello, World!」は実行すると(スライドを指しながら)こんな感じで、Webからも見れるし、スマホで読み取るとスマホで(見ることができます)。AndroidもiOSもどちらも表示することができます。
アプリのビルドをせずとも専用のクライアントアプリを使って、実機での動作を確認できるのがいいです。KotlinとかJavaとか、Objective-Cとかをぜんぜん書けなくても、アプリを微妙に書けるようになります。
これは一応、うちの上司が技術書典で出していた本から一部引用させていただきました。
ふだんはReact Nativeで開発をしてるんですけど、Expoはあまり使っていなかったので、そっちの開発をしてみたいなと思ったことが、今回LTで発表させていただくことのモチベーションでした。LT発表が決まった瞬間は別のこと発表しようと思ってたんですけど、Expoで作ってみたいなと思って、1週間くらいかけてLT駆動型で作らせていただきました。
1つ申し訳ないんですが、さっきみたいにExpoでアプリをQRコードのかたちで共有できると思っていたんですけど、iPhoneに対してはExpoクライアントの審査の問題で、共有できないと知り、LTのスライドの資料が当初予定していたものと少し変わります。
「ExpoならLT会で共有できる」とテンション上げながら、審査に通さなくても共有できるなと思って作っていたところ、iPhoneでは使えないということがわかりました。こっちのQRコードを読み込むと、自分のアプリが起動できるはずです。iPhoneだと起動できなくて、Androidのみとなっています。
作ったアプリの紹介として、実機のテストが見れないみたいなので、動画にしました。
(動画再生)
こんな感じのマッチングアプリを最近はやってるので、マッチングアプリっぽいものを作ってみました。基本的にバックエンドはFirebaseですべて補っていて、あとRedux sagaとかで状態管理はしています。
自分しかいないので、マッチングする相手も自分しか……(笑)。
(会場笑)
今回は基本的なUIのライブラリの話をしようと思っていて、sagaとかの話はあまりないかなと思います。メッセージも送れますよ、というものを作りました。全部自作自演でやっております……。
React Nativeで開発を捗らせたライブラリです。初めてReact Nativeで開発をする人は、かなり積極的に取り入れたらいいんじゃないかなというライブラリを紹介させていただきます。
(スライドを指しながら)これが、Reactで言うstyled-componentsくらい超メジャーな、たぶんReduxくらいメジャーなライブラリです。
React Navigationというものがあって、先ほどの画面の制御などは、ぜんぶここに任せております。これは絶対使うと思います。
これはNativeBaseという……先ほどのボタンの形とかが丸かったりするのをふつうに自作できるんですけど、こういうのを使うとすごくはかどるUIのライブラリになっています。基本的に画像になにかするときに、こういうのを使うとすごく楽になりました。
あとスワイプのアニメーションも、自分で作ってもよかったんですけど、1週間で作りきるとなるとこういうところに時間とっていられないな、と思って(やめました)。使ったらすごく、思いのほかマッチングアプリっぽいデザインに(なります)。これでもう、実装するのに30分もかからない感じの作りができます。
それで、チャットですね。
チャットもかなりメジャーなライブラリがあったみたいで、こういうのも本当に配列をただ渡すだけでできます。Reduxとか、なんでもいいんですけど使って、配列を渡せばいい感じになります。React Nativeは、Stateに渡してあげればいい感じに駆動されるものが作れます。
こういった感じで、1週間でアプリを作りきるということでやってみたところ、やっぱりOSSのライブラリを取り入れていくことで、こういったアプリを早く作ることができました。あとiPhoneでずっと確認してたんですけど、Expoの場合はiPhoneとパソコンの物理的なつながりがなかったのがとても新鮮でした。
あと体力の限界を知ることができました。このアプリは今週の日曜日くらいから作り始めたんですけど、仕事終わりの時間をかなり使いました(笑)。昨日はハロウィンで忙しくて、体力の限界をすごく知る1週間でした(笑)。
(会場笑)
ありがとうございました。
(会場拍手)
関連タグ:
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
2024.12.12
今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦
2024.12.11
大企業への転職前に感じた、「なんか違うかも」の違和感の正体 「親が喜ぶ」「モテそう」ではない、自分の判断基準を持つカギ