Category: Development

  • Hello World in Dart Programming Language

    Read here if you haven’t yet install Dart in your system. Install Dart SDK on Mac, Windows and Linux.

    Download Visual Studio code for your OS.

    Install Dart plugin in your Visual Studio Editor. Just search Dart on your extensions page.

    Hello World in Dart Programming Language

    Now run this command on Mac ⌘ + Shift + P and type dart it will show this option to create a new project. Choose Console Application when it shows the Choose a Dart Template option.

    After creating the project your file explorer will look like this on Visual Studio Code.

    Under the bin directory, we are importing a library from lib directory which is being used as alias hello_world.

    and then main function has a print function that has a text ‘Hello world’ and called calculate() function from hellow_world library.

    The project can be found on github.

    Spread the love
  • Install Dart SDK on Mac, Windows and Linux

    To install Dart SDK is easy by package manager on Mac, Windows or Linux.  Package manger is very convenient way to maintain your packages.

    Install Dart SDK on Mac, Windows and Linux

    Install Dart on Mac

    Install Homebrew if not installed on your Mac.

    Run commands

    brew doctor
    brew update
    brew tap dart-lang/dart
    brew install dart

    To upgrade

    brew upgrade dart

    Check what you have installed

    brew info dart

    Install Dart on Windows

    Install Chocolatey on Windows

    Run commands

    
    choco install dart-sdk
    

    To upgrade

    
    choco upgrade dart-sdk
    

    Install Dart on Linux

    Install using apt-get

    
    sudo apt-get update
    sudo apt-get install apt-transport-https
    sudo sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
    sudo sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'
    
    

    What’s in the Dart SDK

    • dart – The standalone VM
    • dart2js – The Dart-to-JavaScript compiler (used only for web development)
    • dartanalyzer – The static analyzer
    • dartdevc – The Dart development compiler (used only for web development)
    • dartdoc – The API documentation generator
    • dartfmt – The Dart code formatter
    • pub – The Dart package manager

    More information about the Dart SDK see the official README file

    Dart SDK on Github

    Spread the love
  • Create your first Flutter Layout

    In this article, we are going to create a Flutter Layout from existing source code which gets generated by fluter create command. If you have not created your Flutter project read this Create your first Flutter project

    Our final goal is to create a layout which looks like this. Showing person name, picture, and bio. Download the sketch file.

    Flutter Layout

    We are going to cut MyHomePage and _MyHomePageState classes from ‘main.dart’ file and paste the clipboard content into a new file ‘bio_detail_widget.dart‘ in widgets folder under lib folder.

    See my screenshot.

    Flutter Layout

    Name your libraries and source files must follow dart coding guidelines using lowercase_with_underscores. You can read coding guidelines here Effective Dart: Style

    Don’t forget to import ‘bio_detail_widget.dart’ file in ‘main.dart’ file.
    import 'package:ff_tutorial_2/widgets/bio_detail_widget.dart';
     
    Finally, _MyHomePageState class looks like the code on the bottom of the page.
     
    Our body has a child which is new Column, it is a Multi-child layout widget. Column widget places its children vertically.
     
    We have two Expanded widgets one holding our bio picture, name and age other is holding our bio description. Expanded makes its child expand to fill available space in the main axis.
     
    Our first Expanded widget has one child which is a Row, it displays its children in a horizontal array.
     
    For Image, we have created a new folder called images in the same level as pubspec.yaml file. Our pubspec.yaml file has image reference then all the project files automatically can use this reference.
     
    
    
      assets:
          - images/bio_pic_1.png
    
    
    
    
      new Expanded(
          child: new Image.asset('images/bio_pic_1.png'),
      ),
     
    
    class _MyHomePageState extends State {
    
      @override
      Widget build(BuildContext context) {
        // This method is rerun every time setState is called, for instance as done
        // by the _incrementCounter method above.
        //
        // The Flutter framework has been optimized to make rerunning build methods
        // fast, so that you can just rebuild anything that needs updating rather
        // than having to individually change instances of widgets.
        return new Scaffold(
          appBar: new AppBar(
            // Here we take the value from the MyHomePage object that was created by
            // the App.build method, and use it to set our appbar title.
            title: new Text(widget.title),
          ),
          body: new Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                mainAxisSize: MainAxisSize.min,
    
                children: [
    
                  new Expanded(
                    flex:0,
                    child: new Container(
                      padding: new EdgeInsets.all(10.0),
                      child: new Row(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        mainAxisSize: MainAxisSize.min,
                        children: [
                                new Expanded(
                                  child: new Image.asset('images/bio_pic_1.png'),
                                ),
    
                               new Expanded(
                                  child: new Column(
                                    crossAxisAlignment: CrossAxisAlignment.start,
                                    mainAxisSize: MainAxisSize.min,
                                    children: [
    
                                          new Text('Name: John Doe', style: new TextStyle(color: Color.fromRGBO(138, 87, 42, 100.00))),
                                          new Text('Age: 34', style: new TextStyle(color: Color.fromRGBO(138, 87, 42, 100.00))),
    
    
                                    ],
                                  )
                                ),
    
                        ],
                      ),
                    )
    
                  ),
    
                   new Expanded(
                      child: new Container(
                        padding: new EdgeInsets.all(10.0),
                        child: new Text('Bio: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ille, ut dixi, vitiose. Eadem nunc mea adversum te oratio est. Nihil minus, contraque illa hereditate dives ob eamque rem laetus. Duo Reges: constructio interrete.',
                        style: new TextStyle(color: Color.fromRGBO(138, 87, 42, 100.00))),
                      )
                   ),
    
                ],
              )
        );
      }
    }
    
    Spread the love