Flutterize : Basic Flutter menambahkan Depedency

Jika kita baru belajar flutter maka sudah hal yang wajib untuk mengerti menambahkan depedency. Di flutter banyak sekali library-library yang menarik sayang rasanya jika kita tidak menggunakannya untuk mepermudah pembuatan aplikasi kita.

ok to the point langsung saja kita membuat project baru, lalu bukalah pubspec.yaml di project yang kau buat

Seperti ini lah isi pubspec.yaml

name: flutter_fire
description: A new Flutter project.

# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

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: ^1.0.0

dev_dependencies:
  flutter_test:
    sdk: flutter

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  # assets:
  #   - images/a_dot_burr.jpeg
  #   - images/a_dot_ham.jpeg

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.dev/custom-fonts/#from-packages

selanjutnya kita perlu library yang ingin kita tambahkan, di artikel ini saya akan mencontoh kan library Google fonts https://pub.dev/packages/google_fonts

(jika kalian ingin menggunakan depedency pilihan kalian pastikan itu berasal dari https://pub.dev/ )

di halaman pub.dev dokumentasi nya sudah cukup lengkap mulai dari install nya dan cara memakainnya

ok tambahkan depedency

version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

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: ^1.0.0
  google_fonts: ^1.1.1

dev_dependencies:
  flutter_test:
    sdk: flutter

setelah menambahkan depedency IDE biasanya melakukan pub get secara otomatis tapi jika tidak, kita bisa melakukannya secara manual
ketikkan perintah berikut di terminal project atau arahkan terminalnya ke project

flutter pub get

lalu terminal akan menambahkan library nya ke project kita dan sekarang kita bisa menggunakan depedency baru saja kita tambahkan.

Sekian artikel ini Terima Kasih telah membacanya.
Have a Good Days 🙂

Flutterize: Fancy Bottom Navigation dengan Curved Navigation Flutter

Flutter sebenarnya sudah menyediakan bottom navigation, tapi disini kita akan belajar bagaimana cara mengcustom Bottom Navigation agar terlihat lebih baik dan lebih fancy menggunakan library curved navigation, jika ingin mengkunjungi dokumentasi nya silahkan buka link berikut ini : https://pub.dev/packages/curved_navigation_bar .

Ok tanpa bertele – tele lagi berikut adalah bentuk dari curved navigation

Sangat keren bukan dan juga untuk implementasi curved navigation sangatlah mudah ok berikut caranya :

Tambahkan Depedency-nya terlebih dahulu di pubspec.yaml berikut adalah depedency nya :

dependencies:
  curved_navigation_bar: ^0.3.4 #latest version in nov 2020

seteleh menambahkan depedency jangan lupa melakukan pub get (jika idea / text editor tidak otomatis melakukan pub get ) ok selanjutnya kita perlu membuat file atau statefull widget untuk bottom navigation,
berikut adalah contohnya :

import 'package:flutter/material.dart';

class BottomNavigation extends StatefulWidget {
  BottomNavigation({Key key}) : super(key: key);

  @override
  _BottomNavigationState createState() => _BottomNavigationState();
}

class _BottomNavigationState extends State<BottomNavigation> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
       
    );
  }
}

selanjutnya tambahkan bottom navigation di dalam scaffold

import 'package:curved_navigation_bar/curved_navigation_bar.dart';

...

Scaffold(
        bottomNavigationBar: CurvedNavigationBar(
        backgroundColor: Colors.blueAccent,
        items: <Widget>[
          Icon(Icons.add, size: 30),
          Icon(Icons.list, size: 30),
          Icon(Icons.compare_arrows, size: 30),
        ],
        onTap: (index) {
          //Handle button tap
        },
      ),
    );

berikut ini adalah hasilnya

ok selanjutnya kita akan menambahkan perpindahan page, disini kita akan menggunakan icon sebagai perumpamaan page atau screen


class _BottomNavigationState extends State<BottomNavigation> {

int selectedIndex = 0;
List<Widget> screenWidget = [
    Icon(Icons.history),
    Icon(Icons.keyboard),
    Icon(Icons.storage),
  ];

@override
  Widget build(BuildContext context) {
    return Scaffold(

Tambahkan variable screenWidget dan selectedIndex sebagai list page yang ingin dimasukkan *Icon diatas bisa diganti dengan page.


selanjutnya kita hanya perlu menambahkan onTap nya dan sedikit layout
seperti ini :

Scaffold(
      backgroundColor: Colors.blueAccent,
      body: Stack(
        children: [
          // untuk page gunakan code dibawah ini
          // screenWidget.elementAt(selectedIndex),

          Center(
            child: screenWidget.elementAt(selectedIndex),
          )
        ],
      ),
      bottomNavigationBar: CurvedNavigationBar(
        backgroundColor: Colors.blueAccent,
        items: <Widget>[
          Icon(Icons.add, size: 30),
          Icon(Icons.list, size: 30),
          Icon(Icons.compare_arrows, size: 30),
        ],
        onTap: (index) {
          setState(() {
            selectedIndex = index;
          });
        },
      ),
    );

Dan berikut adalah hasilnya saat dijalan kan.

Bagaimana mudah kan jika ingin melihat full code nya ada dibawah ini :

import 'package:curved_navigation_bar/curved_navigation_bar.dart';
import 'package:flutter/material.dart';

class BottomNavigation extends StatefulWidget {
  BottomNavigation({Key key}) : super(key: key);

  @override
  _BottomNavigationState createState() => _BottomNavigationState();
}

class _BottomNavigationState extends State<BottomNavigation> {
  int selectedIndex = 0;
  List<Widget> screenWidget = [
    Icon(Icons.history),
    Icon(Icons.keyboard),
    Icon(Icons.storage),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.blueAccent,
      body: Stack(
        children: [
          // untuk page gunakan code dibawah ini
          // screenWidget.elementAt(selectedIndex),

          Center(
            child: screenWidget.elementAt(selectedIndex),
          )
        ],
      ),
      bottomNavigationBar: CurvedNavigationBar(
        backgroundColor: Colors.blueAccent,
        items: <Widget>[
          Icon(Icons.add, size: 30),
          Icon(Icons.list, size: 30),
          Icon(Icons.compare_arrows, size: 30),
        ],
        onTap: (index) {
          setState(() {
            selectedIndex = index;
          });
        },
      ),
    );
  }
}

Sekian, Terima Kasih.