Flux でいくつかアプリケーションを作った感想

「Flux でアプリケーションを作る」ってのも良くわからない表現だけど、 facebook/flux とか redux みたいなのを使ってアプリケーションを作るってことにする。

この文章を書く目的としては、なんとなく書くって感じなんだけど、なんか良い知見が入ったら嬉しいなというのも少しある。

作ったのは以下の4つ。

  1. TwitterAPI と連携して指定された条件に一致する Tweet を表示する感じのやつ(Electron に乗ってる
  2. ↑これと同じようなアプリの iOS 版みたいなのを ReSwift を使って作った
  3. サーバーが持ってる REST な API のリソースを表示したり作ったり
  4. ↑これより小規模な同じようなやつ

1 は reactjs とか flux とかを把握するために作って、その後 redux/react-redux 把握するために作り直した。 2 は、1 を redux で作り直す前に redux の雰囲気を把握するために作った。 3 と 4 は会社で。 時系列的には 1-1 -> 3 -> 2 -> 1-2 -> 4 という感じ。

  • Flux についての感想
  • redux かそれ以外か
  • Single source of truth
  • flowtype
  • form
  • エラーの表示とか

Flux についての感想

良し悪しについてはよく分からんという感想。

データが単方向に流れるのは良いんだけど、json いじいじするのが結構だるい感じがあるけどこれは Flux 関係ない気がする。 どっかで言われてるのを見たけど、ある程度の規模になったらちゃんとしたほうが良いと思う。

redux かそれ以外か

Flux アーキテクチャとか、 facebook/flux とか redux とかは学習コスト対して変わらないのでどれでも良いと思うんだけど、redux 選ぶ場合は react-redux 使う感じになり、react-redux の学習コストが高いと感じた。

開発にかける時間とかキャッチアップにかける時間とか十分に取れないなら facebook/flux とかみたいな薄い実装を使ったほうがいざとなったら雑に済ませられるので良いなーという感想。 まあ react-redux 使っても雑に済ませられる。

Single source of truth

アプリケーション全体の状態を1つの Store で表現するみたいなやつ。

やれるならいいけど、徹底するのは結構たいへんだなーっていう印象だった。 フォームに入力された値とか、ページごとの一時的なエラーとかとか。

そこらへん大変〜ってやつはなんか使い捨ての Store 作るとコスパいい気がした。

flowtype

良し悪しについては人によるという感想。

僕は、全幅の信頼は置けないけど、無いよりマシっていう感じ。

少なくとも、Store の State と、reducer らへんには型チェックあったほうが考えること減っていいなって思う。

form

Single source of truth でも書いたけど、ここらへんのも Store に置こうとすると大変。

redux-form みたいにそこら辺をやってくれるやつ使うなら良い気がするけど、自前でやるには Action とかもいっぱい増えるしたいへん〜〜〜〜〜〜〜って感じ。

たいへん〜〜〜〜〜〜〜って感じだったから、form の状態は Container Component の state に持たせた。

エラーの表示とか

これも form と同じで、form に入力された値を API に投げたらエラー返ってきました〜みたいなのも Store に置こうとすると大変。

API のエラーとかは Action 作って dispatch して、それを使い捨ての Store で拾って云々するとコスパいい気がした。

おしまい

なんかちゃんと色々とちゃんと出来る人がやるなら色々とちゃんと出来るんだろうけど、僕のアレだと難しいところは雑に済ますみたいな感じになってるから、色々とちゃんと出来る人の知見が欲しい。

けものフレンズ見た

以下は、けものフレンズ最終回感想で、たぶんネタバレ的なものは含まないと思うけど、心配な人は読まないで下さい。 要約すると「教養が無すぎてけものフレンズ面白くなかった」「みんなが面白いと言ってるものを楽しめなくてむかつく」的な感じです。

続きを読む

BASE PASTA 食べた

BASE PASTA(ベースパスタ)|ベースフード株式会社

1食に必要な31種の栄養素が全て含まれているらしいパスタを食べてみた感想です。

ベースフード 完全栄養パスタ BASE PASTA 145g

ベースフード 完全栄養パスタ BASE PASTA 145g

BASE PASTA のおいしい食べ方 - BASEFOOD’s BLOG

こういうものもあった。

近況

相変わらず日々を漫然と過ごしているんだけど、iPhoneアプリをリリースした。

グランブルーファンタジーというソーシャルゲームをやってる人しか使えん感じのやつなのでTwitterではリリースしたゾイみたいなこと言ってないけどリリースしてた。

iOS関連情報1年くらいまともに追ってなかったけどわりとなんとかなった。

知り合い向けにElectronでデスクトップアプリ作ってて、それをiOS向けに使えるようにした感じ。

そのアプリではfacebook/flux使ってて、会社でも使ってたんだけど、redux把握したいな〜って思ってたので試しにReSwift使ってみたけど結構良かった。

ReSwift結構良かったので、デスクトップアプリのほうがFlux学習目的で作ってだいぶ厳しい状態だったので、redux学習目的でreduxで書き直してみたらreduxは良くないなという感じだった。

静的型付けなのは結構重要っぽいんだけど「reduxは筋が悪い」と言ってる人もわりと見るので、ReSwiftも同様に筋が悪いのか?という感じになってるけど良くわからない。いい感じに説明してる文章があったら教えて欲しい。

ReSwiftもfacebook/fluxもreduxも、何も考えず実装してると破滅するのは同じだったので頭を使ってアプリケーションを作りたい。

Anova 買った

バレンタインかなんかのクーポンがあって、それ使ったらいくらか安くなったので買った。

iPhoneから見るとApplePayで購入できた。

ApplePayの決済時に住所も指定するんだけど、日本語で書かれたやつだとダメらしくてサポートから連絡あった。

Anovaのサポートめっちゃ対応早くて、英語の住所送ったら即レスあって発送したよ〜って言われた。

関税とかかかってもっと高くなるもんかと思ってたけど、16000円くらいで買えたと思う。

以下はやった様子。

肉雑煮

  • 牛肉:600g
  • だし
    • 水:1200ml
    • 昆布:20gくらい
    • 花かつお30gくらい
    • 干し椎茸:4個
      • 少なめの水で戻した。水:1200mlとは別。
  • 酒:1/2カップ
  • 醤油:1/2カップ
  • みりん:1/2カップ
  • 砂糖:大さじ2
  • みつば:適量
  • もち:適量

干し椎茸を水で戻しつつ、昆布とカツオの合わせ出しを作って、干し椎茸を戻した汁を入れる。

作ったら酒と肉を入れてアクを取りつつ煮る。

大体アク取れたら醤油みりん砂糖を入れて、戻した干し椎茸を切って入れる。

ひと煮立ちさせて、餅を焼いて、盛って、みつばを乗せて完成。

去年は干し椎茸入れなかったんだけど、入れたら美味かった。入れなくても美味かった。

過程

2016年振り返り

今年の抱負は無事達成しなかった。

今年はあんまり料理を作らなかった。

去年は正月らへんにXXXやりたい〜みたいなこと書いて一切やらなかったっぽいので、今年はなにもまともな抱負を掲げなかった。

今年は自宅で仕事するようになったり、ウェブフロント開発やったりという感じだった。

あとは知り合い向けにElectronでアプリケーション作ったりした。人に使ってもらうのをモチベーションにして趣味開発したの初めてだったので良い体験になってる。

今年お世話になった方々や仲良くしてくださった方々ありがとうございました。来年もよろしければよろしくお願いします。