Flutterやろうよ!!! 3
レス数が1000を超えています。これ以上書き込みはできません。
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
ようこそFlutter野郎どもよ!!!
軽い開発環境でモバイルアプリ開発ができるなんて最高じゃねえか
AndroidもiOSも両方行ける、まさに漢のためのツールだな
https://flutter.dev/
前スレ
Flutterやろうよ!!! 2
https://mevius.5ch.net/test/read.cgi/tech/1611976959/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured Flutterは進化が早いから書籍は向いてないかも 進化が早いといえば聞こえがいいけどようするに
基本設計が適当で行き当たりばったりなので
毎回派手に仕様変更され続けてる言語でしょ?
正直、仕事で無ければ触りたくない言語だと思う フレームワークを言語と間違えちゃうのかわいいねっっ!!! スマホOSが機能追加繰り返してるんだから
それに合わせて拡張していくのは当然なんだけどな
実際OSアプデの度に新機能追加したFlutterを数日以内にリリースしてるからね
Googleはかなり本気でサポートしてるよ
Xamarinなんて年1回少しだけ機能追加して後はバグ修正しかしてないからね
あの調子じゃすぐ時代遅れになるのに Xamarinの話はNG!
またあの人がきちゃうっ!!!笑 FlutterはGoogleの中の人が飽きたらなくなるが、
Xamarinはユーザーがいなくなってもなくならない
これがGoogleとMSの違い 昔のDartでさえ無くならなかったのに今のFlutter/Dartが無くなるとは思えない DirectX.NET
XNA
SilverLight
Windows Mobile
Internet Explorer
なくならないなんてあるの? Dartの使用者が増えないのは個人開発的にかなり美味しい
みんなが参戦するとすぐ赤い海になるわ
Flutter/Dartならば、開発工程を相当飛ばせるから、
少し前なら大作と呼べるようなアプリを、個人でも現実的な期間で作れる
あとFirebaseやFlutterのAPIの応用例に、チーム開発では使えないような魔法が多いから、
個人開発でもチーム開発に対抗する余地がある
また、日本は海外に比べてレベルがかなり劣ってるから、
海外では学生がポートフォリオで作るようなクオリティーのアプリでも勝負できる >>965
.NET MAUI がリリースされるまでだね
もうすぐ終わりだよ >>967
は?flutter舐めてる?
まだ始まってもねーから!!! >>967
は?flutter舐めてる?
まだ始まってもねーから!!! lintを更新したら、riverpodのコードを急に咎められるようになった
これは潰しにきてるなあ。contextを暗黙に保存していたのか >>973
riverpodを潰しにきてる?
え?ま? ごめん。上のコメントは徹夜で寝ぼけてたんだ
でも『Do not use BuildContexts across async gaps』が出てるようになり
ほんとうに困ったのはマジ
StatefulWidgetを使用しないと上手に対応できない これflutterに関係するかなあ
心配だよ
GoogleCloudの従業員100人がクビ 本人たちはメディアの報道で知る [708866696]
https://greta.5ch.net/test/read.cgi/poverty/1647849795/ 非同期関数の中でNavigatorを呼び出せるラッパークラスを作って対応できたけど
手が遅いから普通に2日もかかってしまった riverpodを使用するとUI側で非同期関数を使用する率が高そうなんだけど
非同期関数からNavigatorを呼び出すと、
『Do not use BuildContexts across async gaps』が出る問題について
皆はどう対処してる? WPFでデスクトップアプリ作ってた頃よりもFlutter使ってる今の方がGUIとロジックの分離を意識できてる気がする >>980
正解の方法かどうか分からんけど、そのエラーはTimer.run()使ってタイミングずらすと回避できるはず。 >>982
ビルド中にmarkNeedsBuildするなってエラーと勘違いしてない? >>982
Timer.run()で不具合回避すると、不具合が発生しないことに保証が立たないから怖いべ…
スマホアプリなら実機で動作確認できればリリースしていいかもしれないががががが こんなブログを見つけた
https://zuma-lab.com/posts/flutter-troubleshooting-called-during-build
WidgetsBinding.instance.addPostFrameCallbackを使っておけば大丈夫だと思う >>986
それも違うでしょ
BuildContextを非同期に使うとunmountされた後になるかもしれんから危険なんよ
内部の動作を知らずに使ってるの? >>987
すまん
>>986はmarkNeedsBuildのエラーを解決する方法にtimer.run()を使用するのは不適当だと言いたかった >>987
内部の動作を知らずに使ってるの?
そういう人もいるだろう。
メインは他の言語・フレームワークの人もいるだろうし、どのレベルで使おうが自由なわけで。 final navigateRequestStateProvider =
ChangeNotifierProvider.autoDispose<NavigateRequestState>((ref) => NavigateRequestState());
class CustomNavigator {
/*
『Do not use BuildContexts across async gaps』を出さないために、
魔法を実行するNavigatorのラッパークラス
Notes:
NavigateRequestState.updateWith()をコールして、ページ遷移のリクエストを登録
NavigateRequestState.updateWith()のnotifyListeners()コール後に、refのWidgetが再buildされる
build後に、CustomNavigator._checkNavigateRequestが実行される
_checkNavigateRequestは、NavigateRequestStateにページ遷移のリクエストがあれば実行する
*/
final Key key;
final BuildContext context;
final WidgetRef ref;
NavigateRequestState? state;
CustomNavigator({required this.key, required this.context, required this.ref}) {
// 魔法
state = ref.watch(navigateRequestStateProvider);
WidgetsBinding.instance.addPostFrameCallback((_) => _checkNavigateRequest()); 自分はこんな感じで『Do not use BuildContexts across async gaps』を回避した import 'package:flutter/cupertino.dart';
class CustomNavigator {
static final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
static void pop() {
navigatorKey.currentState?.pop();
}
static void pushNamed({required String nextPagePath}) {
navigatorKey.currentState?.pushNamed(nextPagePath);
}
static void pushReplacementNamed({required String nextPagePath}) {
navigatorKey.currentState?.pushReplacementNamed(nextPagePath);
}
static void pushNamedAndRemoveUntil(
{required String nextPagePath, required routePagePath}) {
navigatorKey.currentState?.pushNamedAndRemoveUntil(nextPagePath, ModalRoute.withName(routePagePath));
}
}
160行の力作が20行に縮んだ… CurrentStateの値が古いままページ遷移しようとしてエラーを出すな
結局、最新のコンテキストで常にページ遷移するように、>>991の書き方をするしかなかった
あるいは、非同期処理の完了を待ってページ遷移させる処理の実装を諦めるか
あるいは、StatefulWidgetで全てのコードを書き直すか すみません。自己解決しました。コード上にこんな箇所があった…
SchedulerBinding.instance.addPostFrameCallback((_) {
SchedulerBinding.instance.addPostFrameCallback((_) {
CustomNavigator.pushReplacementNamed( '/sign_in');
}
}
ただ、GlobalKey<NavigatorState>を使うとホットパス以外にも
遷移できてしまう仕様が気になってます このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 231日 11時間 33分 52秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。