See how a minor change to your commit message style can make you a better programmer.
Format: <type>(<scope>): <subject>
<scope>
is optional
class DetailPage extends StatelessWidget { | |
final String image; | |
final int id; | |
DetailPage({@required this.id, @required this.image}); | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
appBar: AppBar(), |
/** | |
* Crop a image taking a recerence a view parent like a frame, and a view child like final | |
* reference | |
* | |
* @param bitmap image to crop | |
* @param frame where the image is set it | |
* @param reference frame to take reference for crop the image | |
* @return image already cropped | |
*/ | |
public static byte[] cropImage(Bitmap bitmap, View frame, View reference){ |
package com.nezspencer.test | |
import android.os.Bundle | |
import android.support.annotation.NonNull | |
import android.support.v7.app.AppCompatActivity | |
import android.text.Editable | |
import android.text.TextUtils | |
import android.text.TextWatcher | |
import android.widget.EditText | |
import java.text.NumberFormat |
import 'package:flutter/material.dart'; | |
import 'package:flutter_modularization/widget/movie_detail_header.dart'; | |
import 'package:flutter_modularization/widget/story_line.dart'; | |
class DetailPage extends StatelessWidget { | |
final List<Widget> genre; | |
final String title; | |
final String imageBanner; | |
final String imagePoster; |
Widget getListMovie() { | |
return Container( | |
child: Center( | |
child: StreamBuilder( | |
stream: bloc.allMovie, | |
builder: (context, AsyncSnapshot<Movie> snapshot) { | |
if (snapshot.hasData) { | |
return showListMovie(snapshot); | |
} else if (snapshot.hasError) { | |
return Text(snapshot.error.toString(), style: TextStyle(color: Color.fromRGBO(58, 66, 86, 1.0)),); |
Widget showListMovie(AsyncSnapshot<Movie> snapshot) { | |
return ListView.builder( | |
itemCount: snapshot == null ? 0 : snapshot.data.results.length, | |
itemBuilder: (BuildContext context, int index) { | |
return GestureDetector( | |
child: CardListMovies( | |
image: 'https://image.tmdb.org/t/p/w185${snapshot.data.results[index].posterPath}', | |
title: snapshot.data.results[index].title, | |
vote: snapshot.data.results[index].voteAverage, | |
releaseDate: snapshot.data.results[index].releaseDate, |
import 'package:flutter/material.dart'; | |
import 'package:flutter_modularization/ui/detail_page.dart'; | |
import 'package:flutter_modularization/widget/card_list_movie.dart'; | |
import 'package:flutter_modularization/widget/chip_genre_movie.dart'; | |
import 'package:network/network.dart'; | |
import 'package:bloc/bloc.dart'; | |
class HomePage extends StatefulWidget { | |
final String title; |
import 'package:flutter/material.dart'; | |
import 'package:flutter_modularization/widget/arc_banner_image.dart'; | |
import 'package:flutter_modularization/widget/poster.dart'; | |
import 'package:flutter_modularization/widget/rating_information.dart'; | |
class MovieDetailHeader extends StatelessWidget { | |
final List<Widget> genre; | |
final String title; | |
final String imageBanner; |
// poster | |
return Stack( | |
children: [ | |
Padding( | |
padding: EdgeInsets.only(bottom: 140.0), | |
child: ArcBannerImage(imageBanner), | |
), | |
Positioned( | |
bottom: 0.0, | |
left: 16.0, |