Question #274MediumFlutter Basics

When your sharing your screen or taking screenshot of your app how to make sure privacy content or not shared or not taken screen shot in flutter ?

#flutter

Answer

Screenshot Security

When sharing screenshots or recording, hide sensitive information:


Methods to Protect Data

1. Hide Sensitive Widgets

dart
class SecureWidget extends StatefulWidget {
  
  _SecureWidgetState createState() => _SecureWidgetState();
}

class _SecureWidgetState extends State<SecureWidget> with WidgetsBindingObserver {
  bool _isSecure = false;

  
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
  }

  
  void didChangeAppLifecycleState(AppLifecycleState state) {
    setState(() {
      _isSecure = state != AppLifecycleState.resumed;
    });
  }

  
  Widget build(BuildContext context) {
    return _isSecure
        ? SizedBox.expand(child: Container(color: Colors.black))
        : Text('Sensitive data');
  }

  
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }
}

2. Use flutter_secure_screen

dart
import 'package:flutter_secure_screen/flutter_secure_screen.dart';

void main() {
  FlutterSecureScreen.preventScreenshots();
  runApp(MyApp());
}

3. Data Masking

dart
String maskToken(String token) {
  if (token.length < 8) return '****';
  return token.substring(0, 2) + '***' + token.substring(token.length - 2);
}

Best Practices

  • Show mock data in screenshots/demos
  • Blur sensitive areas in recordings
  • Use environment-specific configs
  • Log sensitive data only in debug mode

Security First: Never share real user data in screenshots.