init method

void init({
  1. required double designWidth,
  2. required double designHeight,
  3. required MediaQueryData mediaQuery,
  4. bool isLoggingEnabled = false,
})

Initialize the scaling factors with a reference design frame.

Example: DesignUtils.instance.init(designWidth: 375, designHeight: 812, mediaQuery: MediaQuery.of(context))

Implementation

void init({
  required double designWidth,
  required double designHeight,
  required MediaQueryData mediaQuery,
  bool isLoggingEnabled = false,
}) {
  assert(
    designWidth > 0 && designHeight > 0,
    'Design size must be greater than 0.',
  );

  _designWidth = designWidth;
  _designHeight = designHeight;

  _screenWidth = mediaQuery.size.width;
  _screenHeight = mediaQuery.size.height;

  _scaleWidth = max(_screenWidth / _designWidth, 0.0001);
  _scaleHeight = max(_screenHeight / _designHeight, 0.0001);

  _initialized = true;

  if (isLoggingEnabled) {
    ConsoleLogger.logDesignUtilsInit(
      designWidth: _designWidth,
      designHeight: _designHeight,
      screenWidth: _screenWidth,
      screenHeight: _screenHeight,
      scaleWidth: _scaleWidth,
      scaleHeight: _scaleHeight,
      mode: 'Design',
    );
    // debugPrint(
    //   '[DesignUtils] Initialized with:\n'
    //   'Design: $_designWidth x $_designHeight\n'
    //   'Screen: $_screenWidth x $_screenHeight\n'
    //   'Scale Width: $_scaleWidth\n'
    //   'Scale Height: $_scaleHeight',
    // );
  }
}