Skip to content

Instantly share code, notes, and snippets.

View rohan20's full-sized avatar

Rohan Taneja rohan20

View GitHub Profile
@rohan20
rohan20 / products_list_page.dart
Last active August 7, 2018 08:17
E-Commerce app using Flutter - Part 3: Remote data
Future<List<Product>> _parseProductsFromResponse(int categoryId) async {
List<Product> productsList = <Product>[];
var dataFromResponse = await _getProductsByCategory(categoryId, 1);
dataFromResponse.forEach(
(newProduct) {
//parse the product's images
List<AnyImage> imagesOfProductList = [];
@rohan20
rohan20 / products_list_page.dart
Created August 7, 2018 08:19
E-Commerce app using Flutter - Part 3: Remote data
FutureBuilder<List<Product>>(
future: _parseProductsFromResponse(95),
builder: (context, snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.active:
case ConnectionState.waiting:
return Center(child: CircularProgressIndicator());
case ConnectionState.none:
@rohan20
rohan20 / product_list_item.dart
Created August 7, 2018 08:21
E-Commerce app using Flutter - Part 3: Remote data
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return ProductDetailPage(product: product);
},
),
);
},
@rohan20
rohan20 / product_detail_page.dart
Created August 7, 2018 08:22
E-Commerce app using Flutter - Part 3: Remote data
class ProductDetailPage extends StatefulWidget {
final Product product;
ProductDetailPage({this.product});
@override
_ProductDetailPageState createState() => _ProductDetailPageState(product);
}
class _ProductDetailPageState extends State<ProductDetailPage>
@rohan20
rohan20 / pubspec.yaml
Created August 8, 2018 05:22
E-Commerce app using Flutter - Part 4: Scoped Model
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2
http: ^0.11.3+16
scoped_model: ^0.2.0
@rohan20
rohan20 / product_scoped_model.dart
Created August 8, 2018 05:23
E-Commerce app using Flutter - Part 4: Scoped Model
import 'package:scoped_model/scoped_model.dart';
class ProductScopedModel extends Model {
}
@rohan20
rohan20 / product_scoped_model.dart
Last active August 8, 2018 06:37
E-Commerce app using Flutter - Part 4: Scoped Model
class ProductScopedModel extends Model {
List<Product> _productsList = [];
bool _isLoading = true;
List<Product> get productsList => _productsList;
bool get isLoading => _isLoading;
void addToProductsList(Product product) {
_productsList.add(product);
@rohan20
rohan20 / products_list_page.dart
Last active August 8, 2018 06:40
E-Commerce app using Flutter - Part 4: Scoped Model
ProductScopedModel productModel = ProductScopedModel();
productModel.parseProductsFromResponse(95, 1);
return new ScopedModel<ProductScopedModel>(
model: productModel,
child: Scaffold(
appBar: AppBar(
centerTitle: true,
backgroundColor: Colors.white,
title: Text(
@rohan20
rohan20 / products_list_page.dart
Created August 8, 2018 06:42
E-Commerce app using Flutter - Part 4: Scoped Model
class ProductsListPageBody extends StatelessWidget {
BuildContext context;
ProductScopedModel model;
@override
Widget build(BuildContext context) {
this.context = context;
return ScopedModelDescendant<ProductScopedModel>(
builder: (context, child, model) {
@rohan20
rohan20 / products_list_page.dart
Created August 8, 2018 06:43
E-Commerce app using Flutter - Part 4: Scoped Model
_buildListView() {
Size screenSize = MediaQuery.of(context).size;
return Padding(
padding: const EdgeInsets.only(bottom: 8.0),
child: model.getProductsCount() == 0
? Center(child: Text("No products available."))
: ListView.builder(
itemCount: model.getProductsCount() + 1,
itemBuilder: (context, index) {