flutterdartskiaimpeller

How to detect Impeller or Skia in Flutter app?


I'm making multiplatform app and I wonder if it is possible to detect Skia or Impeller at runtime in a Flutter app?

For example, put a Text widget somewhere in "About" section which would say "Built with Impeller version X" or "Built with Skia version Y"?


Solution

  • Here is how to check whether an app is running with Impeller or Skia:

    // 🎯 Dart imports:
    import 'dart:ui' as ui;
    
    class RenderingUtils {
        static bool isShaderFilterSupported() {
            // True only when the Impeller engine is active.
            return ui.ImageFilter.isShaderFilterSupported;
        }
    
        static String rendererName() => isShaderFilterSupported() ? 'Impeller' : 'Skia';
    }