X



Flutterやろうよ!!! 3
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (アウアウアー Sa7f-MJGN)2021/08/08(日) 20:18:12.79ID:e9M5NaPRa
!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
0953デフォルトの名無しさん (ワッチョイ a1da-iVpd)2022/03/16(水) 00:51:40.09ID:ksetJDfN0
進化が早いといえば聞こえがいいけどようするに
基本設計が適当で行き当たりばったりなので
毎回派手に仕様変更され続けてる言語でしょ?

正直、仕事で無ければ触りたくない言語だと思う
0954デフォルトの名無しさん (ワッチョイ 8546-ixUg)2022/03/16(水) 07:58:40.12ID:GlBm7zwX0
別に仕様変更なんてないし言語でもないがな
0956デフォルトの名無しさん (ササクッテロロ Sp91-Fa+t)2022/03/16(水) 10:07:30.66ID:P7p17Th+p
スマホOSが機能追加繰り返してるんだから
それに合わせて拡張していくのは当然なんだけどな
実際OSアプデの度に新機能追加したFlutterを数日以内にリリースしてるからね
Googleはかなり本気でサポートしてるよ

Xamarinなんて年1回少しだけ機能追加して後はバグ修正しかしてないからね
あの調子じゃすぐ時代遅れになるのに
0964デフォルトの名無しさん (ワッチョイ de7d-rusV)2022/03/16(水) 14:08:15.18ID:O3OnEw410
Dartの使用者が増えないのは個人開発的にかなり美味しい
みんなが参戦するとすぐ赤い海になるわ
Flutter/Dartならば、開発工程を相当飛ばせるから、
少し前なら大作と呼べるようなアプリを、個人でも現実的な期間で作れる
あとFirebaseやFlutterのAPIの応用例に、チーム開発では使えないような魔法が多いから、
個人開発でもチーム開発に対抗する余地がある
また、日本は海外に比べてレベルがかなり劣ってるから、
海外では学生がポートフォリオで作るようなクオリティーのアプリでも勝負できる
0968デフォルトの名無しさん (スフッ Sda2-p587)2022/03/16(水) 20:37:04.27ID:kQvZkE0Kd
>>967
は?flutter舐めてる?
まだ始まってもねーから!!!
0969デフォルトの名無しさん (スフッ Sda2-p587)2022/03/16(水) 22:28:42.95ID:kQvZkE0Kd
>>967
は?flutter舐めてる?
まだ始まってもねーから!!!
0974デフォルトの名無しさん (アウアウエー Sae3-PVkq)2022/03/20(日) 10:47:02.06ID:jo2gfSqca
>>973
riverpodを潰しにきてる?
え?ま?
0975デフォルトの名無しさん (ワッチョイ 417d-LN6m)2022/03/20(日) 19:16:36.05ID:92Tp7izK0
ごめん。上のコメントは徹夜で寝ぼけてたんだ

でも『Do not use BuildContexts across async gaps』が出てるようになり
ほんとうに困ったのはマジ

StatefulWidgetを使用しないと上手に対応できない
0977デフォルトの名無しさん (ワッチョイ 417d-LN6m)2022/03/21(月) 17:10:40.48ID:6DIsZeO90
非同期関数の中でNavigatorを呼び出せるラッパークラスを作って対応できたけど
手が遅いから普通に2日もかかってしまった
0978デフォルトの名無しさん (ワッチョイ 8146-6jGh)2022/03/21(月) 17:23:31.02ID:Tp98bl5m0
ちょうどストレージも値上げするんだよな
白旗か?
0980デフォルトの名無しさん (ワッチョイ 417d-LN6m)2022/03/21(月) 20:25:25.78ID:6DIsZeO90
riverpodを使用するとUI側で非同期関数を使用する率が高そうなんだけど
非同期関数からNavigatorを呼び出すと、
『Do not use BuildContexts across async gaps』が出る問題について
皆はどう対処してる?
0985デフォルトの名無しさん (ワッチョイ 417d-LN6m)2022/03/22(火) 12:39:39.24ID:0dITcBto0
>>982
Timer.run()で不具合回避すると、不具合が発生しないことに保証が立たないから怖いべ…
スマホアプリなら実機で動作確認できればリリースしていいかもしれないががががが
0988デフォルトの名無しさん (ワッチョイ 417d-LN6m)2022/03/22(火) 13:48:31.36ID:0dITcBto0
>>987
すまん
>>986はmarkNeedsBuildのエラーを解決する方法にtimer.run()を使用するのは不適当だと言いたかった
0989デフォルトの名無しさん (スフッ Sd33-wjb5)2022/03/22(火) 20:25:21.61ID:5/WsGxhDd
>>987
内部の動作を知らずに使ってるの?

そういう人もいるだろう。
メインは他の言語・フレームワークの人もいるだろうし、どのレベルで使おうが自由なわけで。
0991デフォルトの名無しさん (ワッチョイ 417d-LN6m)2022/03/23(水) 00:45:16.84ID:PKuC3Xpv0
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());
0994デフォルトの名無しさん (ワッチョイ 417d-LN6m)2022/03/23(水) 18:18:13.67ID:PKuC3Xpv0
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行に縮んだ…
0996デフォルトの名無しさん (ワッチョイ 0d7d-n0rs)2022/03/27(日) 07:00:20.57ID:0+/JwELe0
CurrentStateの値が古いままページ遷移しようとしてエラーを出すな
結局、最新のコンテキストで常にページ遷移するように、>>991の書き方をするしかなかった
あるいは、非同期処理の完了を待ってページ遷移させる処理の実装を諦めるか
あるいは、StatefulWidgetで全てのコードを書き直すか
0998デフォルトの名無しさん (ワッチョイ 0d7d-n0rs)2022/03/28(月) 01:45:06.69ID:K9Q/GGg50
すみません。自己解決しました。コード上にこんな箇所があった…

SchedulerBinding.instance.addPostFrameCallback((_) {
SchedulerBinding.instance.addPostFrameCallback((_) {
CustomNavigator.pushReplacementNamed( '/sign_in');
}
}

ただ、GlobalKey<NavigatorState>を使うとホットパス以外にも
遷移できてしまう仕様が気になってます
10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 231日 11時間 33分 52秒
10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況