Rails devise token auth + ReactNative || flutterの雛形コード

「Rails devise token auth + ReactNative || flutterの雛形コード」のアイキャッチ画像

React Nativeとflutterの両方を使うことになったので、いつも使っているrails APIにつなげることができるようにしました。

※React Nativeは割と綺麗に書きましたが、flutterは最後のリファクタリングを行っていないのであまり綺麗ではありませんのでご注意ください。

とりあえずイメージ↓

React Native

Github repo:
https://github.com/hiyashikyuri/event-app-client

flutter

Github repo:
https://github.com/hiyashikyuri/event_app_flutter

Rails devise token auth based API

Github repo:
https://github.com/hiyashikyuri/event-app-api

どちらを使うべきかの個人的感想

結論、flutter

Javaに近い文法でかなり学習コストが低い

昔、Android開発していたときにみたようなコードで、Javaやっていた人からするとかなり学習コスト低いと思います

UI全てをDartで記述可能

リファクタリングが簡単です

最初は読みにくいですが、1日もすれば慣れます。

全てDartでまとまっているので、loop部分や長くなってしまったファイルを簡単に分割することが可能です。

drawerなどのUI

drawer等のUI系が一撃で作れます

こちらがイメージとコードです

React NativeでDrawerを実装したときはライブラリを探したり、コードをぐちゃぐちゃにしながら頑張って入れたので、それと比較すると比べ用もないぐらい簡単に実装できます

型がしっかりしているので安心感が凄まじい

実行前にIDEが型チェックのエラーを教えてくれるので、いつ爆発するかわからない怖さから結構開放されるかと思います。

navigation

Navigator.of(context).pushNamed(EditProductScreen.routeName, arguments: id);

こんな感じのコードを入れるだけでどこでもUIを遷移させることができます。

モジュールも入れる必要がないので、まじで上記のコードだけで実装できて、動いたときは簡単すぎて感動しました。

アイコンが標準搭載

アイコンや色の指定がめちゃくちゃ簡単です。

ホットリロード

本当に冗談抜きで秒で変更点が反映されます。

ストレスを感じなく、開発できるのでこれはポイントがかなり高いです。

flutterがおすすめだけどReact Nativeを使った方が良い人

  • スマホアプリを開発したことがない人
  • Java/Swiftがかけない人
  • Reactを使っている人

上記の方達はflutterよりもReact Nativeを利用した方がコストは低いと思います。

ただし、数ヶ月React Nativeを触った身からすると、

  • Iconでエラーがでたりするのが困る
  • nodeが重い
  • ホットリロードはflutterの方が早い
  • typescriptを利用しない場合は型チェックやメモリリークが怖い

など気になる点がそこそこあり、仮にJavaなどの静的言語を使ったことがなかったとしても勉強してからflutterを利用した方がメリットが多いのではないかな、と思っています。

まとめ

最終的にはプロジェクトの予算やチームのスキルセットによって選択されるFWも異なって来るかと思いますが、それでもflutterは書きやすくデザインセンスのない私でも簡単にそれっぽくできてしまうので、めちゃめちゃおすすめしたいです。

エラーとか指摘のポイントがあれば教えてください。

すぐに対応できるか分かりませんが、できるかぎり早めに修正します