2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
中田一成氏(以下、中田):日本じゃぜんぜん聞かないと思うんですけど、GeekyAntsという会社があります。こういうところが開発しているのは、jsファイルで動作するUIとUXデザインアプリの開発です。
これはReactの流れにも似ているんですけど、結局フロントエンドってデザイナーとエンジニアの協業をいかにスムーズにするかが肝になっていて。
ReactだったらReactのコードからスケッチファイルを出力するみたいなツールもあります。統一的なコードでデザインもWebもReact Nativeもモバイルも開発できるみたいな。かつ、どんどんスムーズに開発していこうという流れがReactコミュニティの中であります。
その流れを担うのがこういうもので、GUI上からReact Nativeの変更が可能になりました。デザイナーがGUI上でちょっといじったら、React Nativeのコードをこんな感じで出力できましたよというかたちで、フロントエンドというか、React Native開発者はサーバーとのやりとりやデータとの関連をメインで開発していく。そういう可能性があるツールかなと思ってます。
あとはBuilderX.ioというJavaScriptの開発と直接連携するような設計ツール。React、React Nativeって最初の設計が肝なんですけど、そういうところを便利にしてくれるツールのリリースですね。あとは単純にboilerplate集を作りましたというところです。
次はWixですね。
Wixはドラッグ&ドロップで簡単にホームページが作れるサービスを提供しているくせに、中はReactを使っているっていう(笑)。わりと矛盾している気がするんですけど。
WixはDetoxっていうend to endのテストツールをリリースしました。実機のサポートをしたりとか、カスタム拡張子のサポートを追加したりとか、アンドロイドに対応したり、並列化したりとか。テストツールとしての使い勝手をどんどん改良してきました。
あとはReact Native Navigationに対して、3人の開発者がフルタイムで開発しているというところ。React Native界隈はまだファクトスタンダードのナビゲーションライブラリが固まってないところがあって。Webで言うとルーターみたいなものなんですけど。
一応公式としているのがReact Navigationというものなんですけど、それも使い勝手があまり良くなくて。現状では、React NavigationかReact Native Navigationの2択という印象です。
そういうナビゲーション戦国時代にある中で、3人の開発者がフルタイムでOSSの開発をしてくれているのは、貢献してもらっているというか、ありがたい部分だと思います。
もしReact Nativeを開発されることがあったら、ナビゲーション周りは気をつけたほうがいいと思います。ただReact Native Navigationって、ネイティブのAPIとか製品のかたちに似かよって作られているんですけど。
逆に言えばネイティブが使ってしまっていて、さっき言ったCode Pushでナビゲーション周りの修正をするときに、うまく動かないといったデメリットはあります。
React NavigationはちゃんとJSで動いているので、リリースしにくいことはないです。ただ、単純に使いにくかったり、ネイティブでやりたかった画面遷移じゃなかったりするので、ここに関してはいろいろ調べてみて、お好きなほうを選んでください。
あとこれは1月の話だったんで、たぶんこれから直っていくんですけど、React NativeにbundleされているJSCoreを新しくすると、パフォーマンスが40パーセント向上しまっせというのがあります。React Native側もまだまだパフォーマンスが向上していくイメージです。
あとはInfinite Red。これも有名じゃないですけど、いろいろと貢献してくれてます。
reactotronかな? エレクトロンみたいなツールがあって。Reactを書けばデクストップアプリいけますみたいな(笑)。そういうものがあります。
事実上、それをやるとReact NativeとReactのコンポーネントの共通化ができるので、Reactのコンポーネントを開発すればWeb、モバイル、デスクトップアプリなどにいろいろと転用できる。そういう共通化の一歩という印象ですね。
あとはCallstackもそんなに有名ではないですけど、いろいろと細かい改善をしてくれました。
react-native-opentokっていう、WebRTCライブラリのラッパーをReact Nativeで対応する。そういうものをリリースしています。
これはShoutemという会社がShoutemというReact NativeのCMS、React Native版のワードプレスみたいなものを作っていて、それをリリースし改善してます。
簡単にReact Nativeで作ってみたいときは、考えてもいいかもしれないです。
資料にはしてないので、国内の事情をいろいろ話していこうと思います。これからのReact Nativeについてですね。
今までわりとiOS、Androidは統合してきました。統合してきたというかクロスプラットフォームのツールとして使われてきたところがあって、iOS、Androidがいろいろと開発されてきた部分があります。
じゃあこれからどうなっていくのか? については、大きな流れとしてはモバイルとWeb以外のところに共通化する。例えば、reactotronっていうデスクトップアプリをReactのコンポーネントに書けば作れるようになったり。さらにいろんなプラットフォームに対応していくと思っていて。
一応Facebook本体の開発にReact VRっていうVR対応のライブラリもあったりして。Reactを書けばなんでも対応しますよという方向性に、コミュニティ全体が行っていると思います。
もう1つの流れとしてはReactもそうなんですけど、GUI上でReact Nativeの変更が可能になるところ。デザイナーと開発者がよりインタラクティブに実装していくのは、ReactとReact Nativeともにやっていく流れがあります。
そこでデザイナーからあがってきたものが自動的にコードになる。というか画面自体をデザイナーが作っちゃって、データフローとか接続周りをフロントエンドエンジニアとか、Reactエンジニアが担っていく方向性が理想だと個人的には思います。
コミュニティの方向性としては大きく2つ。デザイナー、エンジニアのよりインタラクティブな開発と、モバイル、Web以外のプラットフォームに転用していくところが大きな流れかなと。
PWAの流れもあると思います。PWAが実際にどれくらい使われ、普及していくのかはまだわからない部分はありつつ、PWAを実装するにしてもReactみたいなかたちで実装しないとPWAに対応できないので。
PWAっていう意味合いでも、PWAをやっていく可能性がある中で、保険としてのReact Nativeはありかなと。PWAが盛り上がろうが、盛り上がらなかろうが、React Nativeは使えるし。もしPWAが盛り上がって、PWAをしたくなったとしても、Reactが使えるのでPWAもできるみたいな。
そういういいとこ取りというか、どっちも選択できる技術なのは、React Nativeの優位性のひとつかなと思っています。
コミュニティとしては、こういうかたちで未来を見据えていると思うんですけど、実際国内のコミュニティとか、採用事例で言うと、さすがにここまでいってることはそんなになくて、わりと地に足がついてるというか。
Webとモバイルとの統合をやり始めているとか、試し始めている企業さんが増えてきているイメージです。さすがにreactotronのようなデスクトップアプリとの統合とかはぜんぜん進んでないんですけど、それより1歩手前のWebとReact Nativeの統合化みたいなところは進めている企業が何点かあります。
当然デザイナーと開発者の統合を進めている企業さんがあって。メルカリさんとかはReactのコードを書けばスケッチファイルにエクスポートできるものを使っていて、それをうまくリリースサイクルに乗せている。リリースサイクルに乗せているというか、うまく確認やデザイナーのやりとりに使っているという記事がブログにあがってました。
そういうところでReactとReact Nativeの統合の採用事例と、エンジニアとデザイナーのやりとりのスムーズ化は、徐々にいろいろな企業さんがやられているようです。
全体的にはこんな感じですね。あとなにか言うことあったかな。5分ちょっとありますけど、質問とかある方いらっしゃいます?
全体的なことでもいいですし、今回の内容にかかわらずReact Nativeのこういうこと気になってますみたいなざっくりした質問でも大丈夫です。が(会場挙手)
質問者1:(質問聞き取れず)。
中田:込み入った機能を開発したいというか、例えばSNSみたいな機能であれば、そんなに気にする必要はないものだと思ってます。ただ細かいところで、例えばアニメーションの時に60fps出ないとか、どこかのネイティブ機能を持続するときの処理が遅いとかは、別途対応する必要がある可能性はありますね。基本的に感じているうえでは、そんなにネックにはならないですね。
ほかにいらっしゃいますか?
(会場挙手)
質問者2:日本語をうまく使えないので英語でいいですか?
中田:はい。がんばります。
質問者2:(英語で質問)。
中田:ごめんなさい。日本語で回答しますね。質問としては、React Nativeって今後どうなっていって、Flutterとかとどう違っていくのか? ということで合ってますか?
質問者2:はい。
中田:Flutterは自分はあまり使ったことがないんです。ちょっと宣言になっちゃいますけど、6時限目に自分も含めていろんなモバイル開発者とパネルディスカッションをします。そこでFlutterをよく使われているこにふぁーさんという方とも話すので、詳しくはそこでいろいろやりとりできたらなと思ってます。
自分の印象を話すと、Flutter単体に関してはDartを使っていて、Dartって誰も使ってねぇじゃんと個人的には思っていて(笑)。ちょっと政治色を感じるというか。Googleの政治色を感じるところもありますし。
PWAとの兼ね合いも難しいというか。Flutterを使うとDart単体にもなりますし。ちょっと言い忘れてたんですけど、React Nativeって既存のiOSとかAndroidアプリに組み込むことができて。
例えば設定画面だけReact Nativeにしたり、ほかのコアな機能とかメインの機能とかはUXが大事なので、クオリティを求めるためにネイティブで実装していって。
ただ設定画面ってiOS、Androidでそんなに変わらないし、そこにクオリティをがっつり求めないんだったらReact Nativeにしたいよねというときに、部分的にReact Nativeを導入することもできて。そう言う部分はFlutterとは違うと思います。
Flutterはわりと規定のフレームワーク内のデザインというか、規定のデザイン内でいろいろやるのが得意なんですけど。React Nativeに関しては、柔軟にWebでできて、Web、モバイル、あと部分的に入れるとか。そういう部分に特徴があると思います。ありがとうございます。
質問者3:(質問聞き取れず)。
中田:ネイティブ機能をゴリゴリ使うやつ。例えば何だろうな。ビーコンを使うとか。カメラくらいならぜんぜん対応できるんですけど。あとジャイロを使うとか。
なんとかはなるんですけど、けっこう変なバグとかいろいろ踏みそうな。一般的な開発者はあまり使わなさそうな機能ですかね。そういうところを開発しようとすると、React Nativeはちょっときついというか。
結局React Nativeでバグにはまって、ネイティブコードを見る、ネイティブ開発することになりかねないと思うんです。
一般的にSNS機能というか、極端に言ったらWebですかね。Webで対応できそうな機能であれば、ほぼほぼ大丈夫です。一般的なカメラとかよく使われる機能であれば、そんなに問題はないと思います。
あと気をつけるべきこととしては、React Nativeだから100パーセント共通化できるかと言うとそういうわけではない。やろうと思えばできるんですけどね。
やろうと思えばできるんですけど、結局iOS、Android、それぞれのスタイルガイド、デザインガイドがあって、それに沿ったかたちで開発しなきゃいけない。うまいこと共通化していくやり方、ノウハウには気をつけていかなきゃいけないと思います。
画面の最終的なデザインは、それぞれiOS、Androidを作る必要があるんですけど、うまい具合にコンポーネント単位で、このコンポーネントはiOSとAndroidのデザインが一緒だよねとか。あとデザインとは別にちゃんと切り分けて機能のコンポーネントをContainer Componentっていう標準化するコンポーネントをちゃんと分けておいて。
機能に関するデータのやりとりとかに関するコンポーネントは共通化できるようにするとか。共通化するのであれば、そういうやり方を知っておく必要があります。
それをちゃんとやっていくと、Webとか、Reactotronはわかんないですけど、そういう別のプラットフォームに対するときでも汎用性高くやっていけると思います。ありがとうございます。
司会者:以上でセッションを終了いたします。中田様、ありがとうございました。
(会場拍手)
関連タグ:
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
2024.12.11
大企業への転職前に感じた、「なんか違うかも」の違和感の正体 「親が喜ぶ」「モテそう」ではない、自分の判断基準を持つカギ
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦