見出し画像

Flutterのツライとこ紹介

こんな投稿があったので書いてみる

Lost connection to deviceが頻発でツライ

複数人で開発し始めて4ヶ月程経過した頃に HotReload をすると Lost connection to deviceとコンソールに頻繁に出るメンバーが出てきた。
flutter doctor で見てみても問題はなさそう。
メモリ周りかなとは思ってるんだけど、こういった時ってどうデバッグしたらいいのか(どうデバッグするのが賢いのか)知りたい。

HotReloadが反映されなくてツライ時がある

Flutter開発がスピード感をもてるのはwidgetが充実していることと HotReloadのお陰 って思ってます。これに慣れてくると厄介なこともあった。
レイアウト周りの微調整をしてる時に「ここをこうしたらいい感じに〜♪」とカタカタやって HotReload!! ってやってもシミュレータに反映されない
「イケてるはずなんだけどな〜🤔」と試行錯誤すること10分。
Runからやり直したら最初の実装で上手くいってた。10分返せ状態🤷‍♀️
こういうの地味にツライ!w

一箇所だけ制約付けたいだけなのにPaddingを置くのツライ

普段はiOSメインでやってるんだけど画面の左側から12ptの位置にテキストを置きたい時はテキストに対してmarginが設定できる。だけどflutterの場合は、marginやpaddingを設定できるwidgetが限られてるから、わざわざそれだけのためにPaddingを生成しないといけないのイヤやなってなってる。
marginやpadding設定したいがためにcontainerを生成するのもなんだかな〜状態。そのあたりのうまいやり方というか考え方を知りたい。

日本語のスタイルが中華フォントになるのツライ

Cupertinoがflutterに受け入れられ切れていないというんですかね。個別に対応していかないとならないのが地味にツライ。

結局はネイティブ知らないとツライ

DartはJSと似てるからと言ってWebフロントの人が参画することがある。
コードは書けるかもしれないけどネイティブアプリのことを知らないとツライだろうなと思う場面が多々あった。
私のメインスキルはiOSで、Androidの実務経験はというと、1,2年程前にちょこちょこと修正した程度。なのでflutterで開発していてもAndroid側への考慮が手薄になっているなと自分でも思う。
Flutter開発を始める前に押さえておきたいiOS/Android開発の知識というものがあると凄く助かる人多いんじゃないかな。

[チーム開発] 共通の言語がないとツライ

Widgetの使い勝手を説明する時やチーム内勉強会の時に、理解を深めようと例え話をすることがある。
iOSエンジニア同士がDartの理解を深めようと会話をするなら「それって、iOSでいうxxxだよ」とか言えるけれど、チーム内が、iOSエンジニア専門とWebエンジニア専門だとそうもいかずコミュニケーションが取りにくかったりする。

[チーム開発] 週次で勉強会がないとツライ

チームレベルの底上げをするための時間がイニシャルで無いとキツイ。
Flutter案件が身の回りでは浸透していないため、初めて触りますという人がほとんど。そういった時のために 勉強会ネタ〜Flutter編〜 みたいな記事があると勉強会も始めやすそう。

[チーム開発] 見積りの精度が安定するまでがツライ

Flutterはパッケージが充実しているので、ネイティブでは難易度高い実装も呆気なく終わったりする。が、逆もある。不明瞭な分、多く見積もってしまう人もいる。見積りの精度が低いのは作業者にとってもディレクターにとってもキツイ。
実装をいくつもやってくと「あ、これやるならあのパッケージ使えば簡単にできそう」等と、作業量に検討が付き見積りの精度も妥当で粛々とissueをこなせる。
最初からそれができる人はあまりいないので、チーム作りたて時や新規メンバー参画時はチームで見積り大会をすると良い。1機能に対して区切りのいい単位(View / Model / Logic / Animation)でissueを切り、それぞれのissueに対してチームで見積りをする。それを繰り返していくうちに、チームとしての見積りの精度はあげられた。

一応、書いておくと
ツライツライ言ってますが、flutter好きです

この記事が気に入ったらサポートをしてみませんか?