cakaros
Merhaba, Debug modu release moda gore çok çok yavaştır. Bunun yanında veri çekme islemlerini initstate yerine future/future builder kullanarak yapın. Uygulamanın yavaş gibi gözükmesine sebep olabilecek bir nokta var burda, halbuki servisten veri çekme islemi bitmemiştir. Mesela bir servisten liste alıp gösterilecek. iki yöntem ekledim. ikinci yöntemde veriler alinana kadar indicator gösterilecek, birinci yontemde ise veriler alinana kadar kullanıcı boş sayfaya bakacak bu da uygulamanın donması gibi gözükecek.
Birinci yontem
class XWidget extends StatefulWidget {
@override
_XWidgetState createState() => _XWidgetState();
}
class _XWidgetState extends State<XWidget> {
List<String> xList = List();
getDataFromService() async {
xList = await apiManager.getXData();
}
@override
void initState() {
super.initState();
getDataFromService();
}
@override
Widget build(BuildContext context) {
return ListView.builder(
itemCount: xList.length,
itemBuilder: (BuildContext context, int index) {
return Text(xList[index]);
},
);
}
}
ikinci yöntem
class XWidget extends StatefulWidget {
@override
_XWidgetState createState() => _XWidgetState();
}
class _XWidgetState extends State<XWidget> {
// List<String> xList = List();
getDataFromService() async {
return await apiManager.getXData();
}
@override
void initState() {
super.initState();
// getDataFromService();
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: getDataFromService(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done &&
snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context,int index) {
return ListTile(title: Text(snapshot.data[index]),);
},
);
} else {
return CircularProgressIndicator();
}
});
}
}