エンジNear

システムエンジニアの日々のログ

React Native vs Flutter どちらを選ぶのか、それが問題だ

久しぶりにスマホ向けアプリを開発することになりましたので、最近はどんはフレームワークが主流なのか調べてみたところ、React Native vs Flutter どちらかを選ぼう、という結論にいたりました。

 

せっかく全力で比較しましたので、まとめてみようと思います。

どっちが人気があるの

「Git Hub」には、人気のあるアプリにスターという「いいね」のような機能があります。スターはアプリ自体の人気を表すものなので、フレームワークの人気とは言えませんが、人気のあるアプリを作っているのは、どっちなんだろう?という意味で、比較してみました。

React Native 10,700 スター

Flutter     14,700 スター

後から登場したFlutterの方がスターの数は多いようです。
ただ、単純に「スター」が多いほうを使っておけばよいという訳ではないく、開発したいアプリケーションにとってよりよいフレームワークを選定する必要があります。

ということで、この情報は参考程度にしておきます。

と思っていたら、こんなサイトを見つけました。
これまでのスターの獲得数をグラフで比較できるサイトです。

star trend

比較してみると、2020年を境に、Flutterの方が伸びているようです。
将来性は、「Flutter」の方がありそうです。

使うプログラミング言語は?

「React Native」は「React」で開発をします。つまり「Javascript」です。私もですが、「Javascript」は経験のあるエンジニアが多いため、新たな言語を習得せずにアプリ開発ができることになります。

一方、「Flutter」は「Dart」で開発をします。「Dart」はGoogle社が開発したもので、「C#」や「Java」に近い構文と言われてはいますが、「Javascript」に比べると習得の難易度は高いとされています。
私としては、「JavaScript」よりも「C#」の方が経験は多いんだけど、どうなんだろう。

最近は、コーディングはあまりしていなかったので、どちらにせよ、思い出しながらになるので、言語は、どちらでもよいかな。
ということで、プログラミング言語は引き分けです。

 

設計思想の違い

Flutterは、ひとつのコード(一回のコーディング)で複数のプラットフォームに対応できます。いわゆる「ワンコード」と呼ばれる設計思想で、プラットフォームごとにコーディングを変更する必要が無いという特徴があります。

これに対してReact Nativeは「ひとつの技術で複数のプラットフォームに対応できる」ことが原則となっています。これは、言い換えれば「一度学べば、どのプラットフォームでも動くコーディングができる」という意味です。

 

対応しているOSは?

どちらもクロスプラットフォームですが、対応できるOSが若干ことなります。

・Flutter → iOS, Android, Web, Windows, Mac, Linux

・React Native → iOS, Android, Web(Windows)

今回、作ろうとしているアプリは、 Windows, Mac, Linuxで動かす必要はないので、これはどちらを選んでも変わりないです。

IDEは?

現在、FlutterはAndroid StudioIntelliJ、VisualStudioCodeが使用できます。一方、React NativeはほとんどのトップのIDEでサポートされています。

私は、VisualStudioCodeを使うつもりですので、どちらでもOKでした。

結論

結局、ReactNativeで作成することにしました。

色々、比較した結果、あまりどちらかに決めきれるような要素がなかったのですが、
最後は、GoogleFaceBookのどっちが将来性ありそう?

ということで、Flutterの方を選びました。

最後まで読んでいただいたから、エンジニア的な決断でなくてごめんなさい。

結局、どちらも優れたフレームワークなので、好みで選んで大丈夫という結論にさせてください。

チリも積もれば資格となる

ここ1年ぐらい、資格の勉強をしています。

そして、

・応用情報処理技術者

ドットコムマスター★★

の2つをゲット!

 

「勉強」というと最初の数日はモチベーションが高い為、頑張れるのですが

やはり、どうしても3か坊主になりやすいですね。

なによりも私がそうでした。

 

そんな勉強嫌いな私が少ない脳みそをフル回転して

考えた結果は、「勉強せずに合格しよう!」でした。

(訳わかりませんね)

 

簡単に言ってしまうと

勉強を勉強と構えず、ではなく暇つぶしにしてしまおうと。

 

①移動時間には参考書

②隙間時間にはスマホのアプリ(これが便利!) or 自家製単語帳

この2つだけです。

 

後は、たまーにくるモチベーションの高い休日に数時間勉強。

これでさっきの資格は合格できました。

 

人間は、悪い癖がつきやすいと言いますが

良い癖もつきやすいようで

2週間も続けると

隙間時間に無意識にスマホのアプリで勉強しているようになります。

 

私のような勉強ぎらいにはお勧めです。

なぜ早起きが良いのか

ビジネス書籍で早起きを勧めているものをよく見かけます。

 

ただ、おおげさに言われると

身構えちゃってなかなか早起きできない。

 

人間は起きてからの時間によって集中力や気力に波があり

その最も調子が良い時間を有効に使いましょうよ

という事なんだと思います。

 

脳がバリバリにやる気になっている状態になのに

メールチェックや無駄な会議に時間を使ってしまってはもったいない。

 

だったら、外からの邪魔が入りずらい早い時間に出社ちゃいましょう

という事でしょう。

 

私自身も残業してウンウン言いながら、苦労しても解決できなかった問題が

朝一番にあっという間に解決していまう事があります。

 

という事で、仕事などが解決しないピンチの時には

一旦帰って体を休めて

朝の時間に勝負をかけてみてはどうでしょうか。

 

 

 

 

 

 

 

SQLServer メンテナンスプランの設定 備忘録

サンプル
  1. データベースの整合性確認
  2. データベースのバックアップ
  3. インデックス再構成 → オンライン、DB稼働しながら実行可能
  4. インデックス再構築  → オフライン、実行中はDB使用不可
  5. 履歴のクリーンアップ
  6. メンテナンスクリーンアップ
  • 3か4のどちらかを選択

 


断片化に対する一般的な対応

断片化の割合 対応 
5%未満 実施しない。インデックスの再構成や再構築はコストが見合わない。
5%-30% インデックスの再構成を行う。
30%より上 インデックスの再構築を行う。

 

<再構成>

 ・既存データを入れ替える

<再構築>

 ・既存データを破棄して、一からINDEXを作り直す。これに伴い、統計情報も最新化される

 ・再構築の後に、圧縮すると再度断片化してしまうらしい自動での圧縮は不要。容量での問題が出た時に、手動で実行するぐらいか。