Thursday, March 28, 2019

Flutter: Calling from Separate file, AppBar and FloatingActionButton




main.dart
===================================

import 'package:flutter/material.dart';
import 'src/app.dart';

void main(){
 
  var app = new App();

  runApp(app);

}

===================================



app.dart
===================================

//  Import flutter Helper Library
import 'package:flutter/material.dart';

//Create a class that will be our custom widget
//This class must extend the 'StatelessWidget' base class

class App extends StatelessWidget{

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(

        home: Scaffold(

          appBar: AppBar(
            title: Text("Let's see Image"),
          ),

          floatingActionButton: FloatingActionButton(

            child: Icon(Icons.add),

            onPressed: (){
              print('Hi Floating Action Button');
            },
          ),
        )
    );
  }

}

//Must define the buid method that returns
//the widget that *this* widget will show


===================================

Flutter: AppBar and FloatingActionButton in main function




import 'package:flutter/material.dart';

void main(){
  
  var app = MaterialApp(
    
    home: Scaffold(

      appBar: AppBar(
        title: Text("Let's see Image"),
      ),

      floatingActionButton: FloatingActionButton(

        child: Icon(Icons.add),

        onPressed: (){
          print('Hi Floating Action Button');
        },

      ),


    )

  );



  runApp(app);

}

First and Basic Flutter app




// I need to import a helper library// from flutter to get content on screen
import 'package:flutter/material.dart';

// Define 'main' function to run when our app starts
void main(){
  
  var app = MaterialApp(
    // Create new text widget to show some text    // on the screen    home: Text('Hi, There!'),
    
  );

//  Take that widget and get it on the screen  runApp(app);

}

Wednesday, March 27, 2019

Udemy-5: Named Parameter



1. If we change the sequence of data passing the value also going to change so use named args to pass the data


void main() {
  var deck = new Deck();

  print(deck);
//   print('');
//   print(deck.deal(5));
//   print('');
//   print(deck);
 
//   deck.removeCards('ACE', 'DIAMONDS');
  print('');
  print(deck);
}

class Deck {
  List<Card> cards = [];
  Deck() {
   
    var ranks = ['ACE', 'TWO', 'THREE', 'FOUR', 'FIVE'];
    var suits = ['DIAMONDS', 'HEARTS', 'CLUBS', 'SPADES'];

    for (var rank in ranks) {
      for (var suit in suits) {
//         print("rank: $rank & suit: $suit");
        var card = new Card(
          rank = rank,
          suit = suit
        );
        cards.add(card);
      }
     
    }
  }
 
      toString() {
      return cards.toString();
    }
 
  shuffle(){
    cards.shuffle();
  }
 
  cardsWithSuits(String suit){
    return cards.where((card) => card.suit == suit );
  }
 
  deal(int handSize){
    var hand = cards.sublist(0, handSize);
   
    cards = cards.sublist(handSize);
   
    return hand;
  }
 
  removeCards({String rank, String suit}){
    cards.removeWhere((card) => card.rank == rank && card.suit == suit );
  }
 
}

class Card{
  String rank;
  String suit;
  Card(this.suit, this.rank);
 
  toString(){
    return "$rank of $suit";
  }
}

Udemy-4: Remove Element n using WHERE clause




void main() {
  var deck = new Deck();

  print(deck);
//   print('');
//   print(deck.deal(5));
//   print('');
//   print(deck);
 
  deck.removeCards('ACE', 'DIAMONDS');
  print('');
  print(deck);
}

class Deck {
  List<Card> cards = [];
  Deck() {
   
    var ranks = ['ACE', 'TWO', 'THREE', 'FOUR', 'FIVE'];
    var suits = ['DIAMONDS', 'HEARTS', 'CLUBS', 'SPADES'];

    for (var rank in ranks) {
      for (var suit in suits) {
//         print("rank: $rank & suit: $suit");
        var card = new Card(rank, suit);
        cards.add(card);
      }
     
    }
  }
 
      toString() {
      return cards.toString();
    }
 
  shuffle(){
    cards.shuffle();
  }
 
  cardsWithSuits(String suit){
    return cards.where((card) => card.suit == suit );
  }
 
  deal(int handSize){
    var hand = cards.sublist(0, handSize);
   
    cards = cards.sublist(handSize);
   
    return hand;
  }
 
  removeCards(String rank, String suit){
    cards.removeWhere((card){
      return card.rank == rank && card.suit == suit;
    });
  }
 
}

class Card{
  String rank;
  String suit;
  Card(this.rank, this.suit);
 
  toString(){
    return "$rank of $suit";
  }
}





=====================================================

You can also write like this -

Long-Form Syntax
---------------------------------------
  removeCards(String rank, String suit){
    cards.removeWhere((card){
      return card.rank == rank && card.suit == suit;
    });
  }
---------------------------------------


Short-Form Syntax
----------------------------------------
  removeCards(String rank, String suit){
    cards.removeWhere((card) => card.rank == rank && card.suit == suit );
  }
----------------------------------------


===================================================







Udemy-3: Sublist









void main() {
  var deck = new Deck();

  print(deck);
  print('');
  print(deck.deal(5));
  print('');
  print(deck);
}

class Deck {
  List<Card> cards = [];
  Deck() {
   
    var ranks = ['ACE', 'TWO', 'THREE', 'FOUR', 'FIVE'];
    var suits = ['DIAMONDS', 'HEARTS', 'CLUBS', 'SPADES'];

    for (var rank in ranks) {
      for (var suit in suits) {
//         print("rank: $rank & suit: $suit");
        var card = new Card(rank, suit);
        cards.add(card);
      }
     
    }
  }
 
      toString() {
      return cards.toString();
    }
 
  shuffle(){
    cards.shuffle();
  }
 
  cardsWithSuits(String suit){
    return cards.where((card) => card.suit == suit );
  }
 
  deal(int handSize){
    var hand = cards.sublist(0, handSize);
   
    cards = cards.sublist(handSize);
   
    return hand;
  }
 
 
}

class Card{
  String rank;
  String suit;
  Card(this.rank, this.suit);
 
  toString(){
    return "$rank of $suit";
  }
}

Udemy-2: Udemy-1 with filter(WHERE function)





void main() {
  var deck = new Deck();
deck.shuffle();
  print(deck.cardsWithSuits('DIAMONDS'));
}

class Deck {
  List<Card> cards = [];
  Deck() {
 
    var ranks = ['ACE', 'TWO', 'THREE', 'FOUR', 'FIVE'];
    var suits = ['DIAMONDS', 'HEARTS', 'CLUBS', 'SPADES'];

    for (var rank in ranks) {
      for (var suit in suits) {
//         print("rank: $rank & suit: $suit");
        var card = new Card(rank, suit);
        cards.add(card);
      }
   
    }
  }

      toString() {
      return cards.toString();
    }

  shuffle(){
    cards.shuffle();
  }

  cardsWithSuits(String suit){
    return cards.where((card){
      return card.suit == suit;
    });
  }

}

class Card{
  String rank;
  String suit;
  Card(this.rank, this.suit);

  toString(){
    return "$rank of $suit";
  }
}


=======================
IF WE HAVE SINGLE LINE EXPRESSION, WE CAN WRITE LIKE THIS-

cardsWithSuits(String suit){
    return cards.where((card) => card.suit == suit );
  }
 

=======================
















Udemy-1: Custom List, Constructor, Return data, Shuffle





void main() {
  var deck = new Deck();
deck.shuffle();
  print(deck);
}

class Deck {
  List<Card> cards = [];
  Deck() {
   
    var ranks = ['ACE', 'TWO', 'THREE', 'FOUR', 'FIVE'];
    var suits = ['DIAMONDS', 'HEARTS', 'CLUBS', 'SPADES'];

    for (var rank in ranks) {
      for (var suit in suits) {
//         print("rank: $rank & suit: $suit");
        var card = new Card(rank, suit);
        cards.add(card);
      }
     
    }
  }
 
      toString() {
      return cards.toString();
    }
 
  shuffle(){
    cards.shuffle();
  }
 
}

class Card{
  String rank;
  String suit;
  Card(this.rank, this.suit);
 
  toString(){
    return "$rank of $suit";
  }
}