2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
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.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略