━目次━
私は現在(2018/10)この業界で働き出して4年目ですが、新卒で入社した会社~フリーランスとして働く今までほぼずっと
Javaを使った業務系システム
をメインでやってきました。
多くはNTTデータイントラマート社の提供する『intra-mart』というERPパッケージを用いての基幹システムの構築で、
その他には「配送管理システム」や「機械警備の警報システム」などもやりました。
大阪では昔ながらの企業も多いので、Javaが出来たらまず仕事には困らないんですが、今後Java1本でやっていくというのも面白くないし、なんなら有償化になるから採用する企業減っていくだろうし、色々な経験もしてみたいので、新しい言語を勉強してみることにしました。
Java案件への軽い不満もあるからだけど、、後で書くよ
そこで!私が!選んだのが!!
です!!
Reactとは何なのか、なぜReactをやろうと思ったのかなどをまとめます。
Reactとは
Reactとは、Facebookが提供するJavaScriptライブラリでモダンなWeb開発の手法として今人気があります。
仮想DOMやコンポーネント指向という特徴があり、予め画面をコンポーネントという単位の集まりとして作成しておき、何かしらのイベントで表示部分に変更があった場合は、変更があった箇所のみ再レンダリングすることで高速化を実現しています。
MVC(Model View Controller)でいうVの部分のみを担うので、その他サーバサイドの言語やフロントの技術と組み合わせて使うことになります。
この技術により、これまではWebアプリと言えば画面遷移がつきものでしたが、モダンなWeb開発ではSPA(Single Page Application)というのが1つのキーワードになっています。
要は画面遷移して別のリソース呼び出すんじゃなくて、再レンダリングのみで完結させちゃおうぜーってことだね
うーん。。なかなかイメージし辛いのぉ、、
因みにモダンなWeb開発の手法としてよくReactのライバルとしてあげられるのが、『Angular』と『Vue』です。
それぞれ一長一短なので調べてみてください。
Reactはほぼ同じ書き方でアプリ開発ができる『React Native』という言語があります。
実は↓のアプリはReact Nativeで作られています
Facebook
Instagram
Skype
Airbnb
AirbnbはRN撤退宣言をしていますが、、こちらの記事で詳しく触れています
ヤフーが大阪で開催しているReactNative勉強会に参加してきたのでまとめ
とまぁ話せばきりがないのですが、要は
JavaScript使ってなんかええ感じの画面が作れる最近アツいフロント技術だ。あんかアプリも作れるらしい!
くらいに思ってくれたら良いかと思います^^
なぜReactをやろうと思ったのか
ではでは、なぜJavaの業務システムばかりやってきた私がReactを勉強しようと思ったのかを説明します。
モダンな技術に触れたかった!
Javaの業務システム案件ってまぁ大体もう決まりきってるんですよね。
DBからデータ取ってきてdtoに詰めて、formに移し替えて画面に飛ばして~
データ連携でバッチ作成して~
処理重いところはPL化して~
画面のイベントは全部jQueryで片づけて~
時代は進んでいるのに、フリーランスとしてやっている自分は取り残されてるような焦りの感覚がありました(笑)
それで「まだ浸透しきってないような技術」をやってみようと思ったのがきっかけだね
開発ではフロントサイドのほうが好きだった!
主観的なイメージですが、Javaのエンジニアはフロントよりバックのほうが好きな人が多いと思います。
『画面』と聞くと、「うえーめんどくせー」と思う人が多いかなと。
その点私は
情報処理で留年しかけてた男が入社3年未満で独立するまで
の記事でも書きましたが、大学3年まではデザイナーになろうと思っていたこともあり、目に見える部分をいじるのが好きなので画面開発とか大好きです。
なので モダン な フロント技術 とか聞くといてもたってもいられなくなっちゃいました、、、(笑)
フリーランスとして市場価値を高めるため!
Reactはプログラミングの長い歴史を見れば、つい最近出てきたようなものです。
ということはまだまだ技術者の数が少ないんですね。
でもこれからシステムを開発する多くの企業は、そりゃあモダンなイケてる技術(かつ開発コストの低い技術)を採用したいと思うのが普通ですよね。
つまりReactのような最近出てきて、かつこれから伸びそうな技術を習得しているエンジニアの市場価値はかなり高いということです。
実際ReactはFacebookが力を入れているだけあって、世界中で流行っています。
フリーランスとしてやっていく以上、自分で自分の市場価値を高めるキャリアプランを考えていかないといけないので、その結果が私はReactでした。
リモートで働けそうな企業が多い!
Javaの業務システムって、大規模システムや昔ながらの企業で使われることが多いので、正直堅苦しい現場が多いです。
なのでフリーランスの醍醐味とも言える『リモートで働く』というのが出来る現場が限りなく少ないです。
『リモートワーク!?そんなもん前例がないわ!』
そうそう(笑)そんな人もいると思う(笑)
その点、Reactのようなモダンな技術を取り入れる企業は、スタートアップやベンチャーなどが多いので、
自分のスキルさえ認めてもらい、関係性を築ければ割と柔軟な働き方が可能なとこが多いです。
案件募集の段階で『フルリモートOK』と謳っているのもあるくらいなので。
「どうせフリーランスとしてやっていくならそっちのほうが良いよな~」
って思ったのも理由ですね。
その先にアプリ開発の道もある!
モダンなフロント技術の中でも何故Reactを選んだのかの答えがこれです。
そう
React Native
※以降RN
冒頭でも触れましたが、Reactとほとんど同じ書き方でアプリ開発ができてしまうのがRNです。
しかも最初に聞いて驚いたのが、iOSもAndoroidもRN1つで書けちゃうとな。
これヤバくないですか??
これまでアプリ開発と言えば、iOSはObjective-CやSwift、AndoroidはJavaやKotlinなど別々の言語で開発するのが当たり前でした。
なので、個人で開発する人は最低2つの言語をマスターしなければいけませんでしたし、アプリ開発のプロジェクトではiOSとAndoroidどちらも書ける人を使うか、それぞれの別々のチームを設けなければいけませんでした。
そこで問題になるのが学習コストや、チーム間の連携・デザインの統一などなど。。。
でかい企業ならそれぞれのチームが既にあるので、まぁ大丈夫かもしれませんが、スタートアップやベンチャーなどでは人のアサインから大変ですよね、、
ところがどっこーい!
RNならどちらのアプリも開発可能なので1つのチームで開発可能ですし、Reactと同じ書き方なのでWebエンジニアもアサイン対象になってきます。
開発スピード・コスト共に大きく削減できるといわれています。
ゲキアツじゃ~!!
私はまだアプリ開発をやったことないですし、しばらくはやるつもりもありませんが、Reactという1つの言語を習得しておけばその先にすんなりアプリ開発に取り組める未来があるというのはかなり嬉しいです。
将来的にはRNもマスターしていきたいですね。
さいごに
どうですか?ちょっとReactやってみたくなりません?(笑)
今ネットで色々調べてとりあえず↓の1冊終わらせたところなのですが、結構むずいです。
まぁでもやりたい思想も分かるし、いくつか作りながら慣れていけばもっと雰囲気も掴めてくると思うので、継続して勉強してます~
次は、Udemyの以下の講座が「かなり分かり易い!」と評判のようなので買おうと思ってます。
※他のReactの講座より3倍くらい高いのは分かり易いからだと信じて…
React + Redux + Redux-thunk + Ajax を用いた実践的なアプリケーションを作成します。React 開発を通して、ES2015+ や 非同期処理などモダンフロントエンド開発に必要な基礎知識も身につけられます。
とは言えとは言え!
まだまだ本業?ではJavaの案件やりながら、こっそりReact勉強しますよ。
どっかのタイミングで、ある程度単金下がる覚悟でReactの案件を探してみようかなと思ってます。
そっからはもうスキル付けまくりフィーバーじゃな
ソウダネ。スキルツケマクリフィーバーダネ。
それでは!また!!
人気の記事だけ集めたので是非覗いていってください^^
厳選!目的別にオススメ記事を紹介-あなたの欲しい情報がここに-