Skip to content

this packages my best practices or usefully components archive, this packages in any other project use

License

Notifications You must be signed in to change notification settings

HalilUcel14/hucel_core_packages

Repository files navigation

Hucel_Core

mail address : hucelsoft@gmail.com

Text Theme Mod

Ne İşe Yarar: Context içerisinden doğrudan TextTheme.Headline1 gibi uzantıları ele alabilirsiniz.

  Text(
        'Tested',
        style: context.headLine1,
        );

Error SnackBar

Ne İşe Yarar: Ekranda Error göstermek istediğiniz bilgi ve metinleri hoş bir imaj ile gösterir.

   @override
  ElevatedButtonWithStadiumBorder(
      child: Text(
        _loginConstant.signInButton,
        style: TextStyle(
          fontSize: constraints.maxHeight * 0.05,
        ),
      ),
      onPressed: () => context.snackbar(errorList: [
        'bu bir test mesajıdır ...................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
        'bu bir test mesajıdır ...................',
        'bu bir test mesajıdır ...................',
        'bu bir test mesajıdır ...................',
      ]), //viewModel.buttonPressed,
      fixedSize: Size(
        constraints.maxWidth * 0.3,
        constraints.maxHeight * 0.13,
      ),
    );

FireStore Get Download Url

Ne İşe Yarar: Fire Store üzerine attığınız dosyaların indirme url linklerini getirir.

   @override
  Widget build(BuildContext context) {
    return ExpandedContainer(
      child: FutureBuilder(
        // 
        future: FirestoreGetDownloadUrl().get(imgUrl),
        //
        builder: (context, AsyncSnapshot snapshot) {
          return myStreamBuilderHelper(
            // My Future or Stream Helper
            snapshot: snapshot,
            connectionDone: Image.network(snapshot.data.toString()),
          );
        },
      ),
    );
  }

IThemeManager

Ne İşe Yarar: Tema Yönetimi için İnterface'dir. Provider ile Theme Yönetiminde kullanılması için yazıldı.

   import 'package:flutter/material.dart';

    abstract class IThemeManager {
      late ThemeData currentTheme;
      late ThemeEnum currentThemeEnum;

      void changeTheme(ThemeEnum themes);
    }

    enum ThemeEnum { LIGHT, DARK }

Stream Builder Helper

Ne İşe Yarar: Stream Builder için Expand içerisinde Yerini Rahat bulabilmesini sağlama ve helper ile Gelen datayı daha iyi yönetme için kolaylık sağlar

    Widget build(BuildContext context) {
    ///
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: ExpandedStreamBuilder(
        stream: Stream.fromFuture(Future.delayed(Duration(seconds: 3))),
        builder: (context, AsyncSnapshot snapshot) {
          return myStreamBuilderHelper( // My code
            snapshot: snapshot,
            // Connection is State
            hasError:  Text("Your Error State on Widget"),
            connectionActive: Text("Your Active Widget"),
            connectionWaiting: Text("Your Waiting Widget"),
            connectionDone: Text("Your Done Widget"),
            connectionNone: Text("Your None Widget"),
          );
        },
      ),
    );
  }

Firebase Helper

Ne İşe Yarar: Firebase Auth Code Kullanım.

    try {
      await FirebaseEmailPassAuthHelper().signIn(
        context,
        email: _appController.emailController.text.trim(),
        password: _appController.passwordController.text.trim(),
      );

      _isLogged(false);
    } on FirebaseAuthException {
      _isLogged(true);
      throw Exception("Firebase Hata");
    }

Show Snackbar Utils

Ne İşe Yarar: Alt Pencere olarak uygulamada mesaj gösterir.

return Scaffold(
      body: Column(
        children: const [
          AppUtils.snackBarShow(context,
          text: "Email ile Girişte Hata Oluştu ${e.message}");
        ],
      ),
    );

Random Color Container Widget

Ne İşe Yarar: Tüm View Modelleri tek bir üst sınıftan alarak ortaklaştırmaya ve bazı özelliklerin zorunlu kılınmasına yardımcı olacak.

return Scaffold(
      body: Column(
        children: const [
          Expanded(flex: 5, child: RandomColorContainer()),
          Expanded(flex: 3, child: RandomColorContainer()),
          Expanded(flex: 2, child: RandomColorContainer()),
        ],
      ),
    );

Base View Widget

Ne İşe Yarar: Tüm View Modelleri tek bir üst sınıftan alarak ortaklaştırmaya ve bazı özelliklerin zorunlu kılınmasına yardımcı olacak.

import 'package:flutter/material.dart';

import '../../core/baseview/base_view.dart';
import '../viewmodel/onboard_viewmodel.dart';

class OnBoardView extends StatelessWidget {
  const OnBoardView({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return BaseView<OnBoardViewModel>(
      viewModel: OnBoardViewModel(),
      onModelReady: (model) {
        model.setContext(context);
      },
      onPageBuilder: (BuildContext context,OnBoardViewModel value) => Scaffold(),
    );
  }
}

Base View Model Widget

Ne İşe Yarar: Tüm View Modelleri tek bir üst sınıftan alarak ortaklaştırmaya ve bazı özelliklerin zorunlu kılınmasına yardımcı olacak.

import 'package:flutter/cupertino.dart';
import 'package:mobx/mobx.dart';

import '../../core/baseviewmodel/base_view_model.dart';
part 'onboard_viewmodel.g.dart';

class OnBoardViewModel = _OnBoardViewModelBase with _$OnBoardViewModel;

abstract class _OnBoardViewModelBase with Store, BaseViewModel {
  @override
  void setContext(BuildContext context) => this.context = context;
  @override
  void init() {}
}

Dynamic Text Widget in FittedBox

Ne İşe Yarar: Dinamik olarak boyutlanır ve belirli bir sınır içerisinde şekillenir.

class TestWidget extends StatelessWidget {
  const TestWidget({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return DynamicText(
      text: "Hello",
      fontSize: 0.05,
      colors: Colors.black,
    );
  }
}

Dikey veya Yatay Oranlı Dinamik Sizedbox

Ne İşe Yarar: 0 ile 1 arasında verilecek yüzdesel oran ile Ekran içerisinde alan kaplayacak bir widget oluşturmanızı sağlar

class TestWidget extends StatelessWidget {
  const TestWidget({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Column(
      children:  [
          Text("Hello"),
          SpaceSizedHeightBox(0.2), // %20 oranlı yüksek widget
          Text("Hello"),
      ]
    );
  }
}

Rastgele Color Değerleri

Ne İşe Yarar: 17 Renk Paleti arasında rastgele bir Renk getirir.

class TestWidget extends StatelessWidget {
  const TestWidget({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Column(
      children:  [
          Text("Hello",
          style: TextStyle(color: context.randomColor),
          ),
      ]
    );
  }
}

Rastgele Resim (İnternetten)

Ne İşe Yarar: Random image sitesi api ile rastgele resim getirir. Ölçüleri (300x200)

class TestWidget extends StatelessWidget {
  const TestWidget({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Column(
      children:  [
          Image.network("".randomImage),
      ]
    );
  }
}

About

this packages my best practices or usefully components archive, this packages in any other project use

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published