flutter_custom_utils 0.4.12
flutter_custom_utils: ^0.4.12 copied to clipboard
It is designed to simplify code and support utilities for personal and commercial use
-
Pick file and crop without loosing quality
cPickAndCropImage( context, cropDisable: false, aspectRatio: 1.7, cancelButton: () { setState(() { croppedImg = null; }); Navigator.of(context).pop(); }, okButton: (Uint8List data, String fileName) { /// selected file name debugPrint(fileName); setState(() { croppedImg = data; /// Load image to ui using 'Image.memory(croppedImg)' }); Navigator.of(context).pop(); }, ),
-
get device id in all available devices platform (android, ios, windows, linux, mac, web(get info details))
await cGetDeviceId()
-
Widget to png
cTakePicture(GlobalKey); // wrap with RepaintBoundary then use key to create image RepaintBoundary( key: GlobalKey, child:Text('data'), )
-
flutter platform
just call these functions anywhere
cIsAndroid cIsIOS cIsLinux cIsWindows cIsMacOS cIsWeb cIsFuchsia
-
flutter url structure
https://repad.dev/splash remove hash from url (https://repad.dev/#/splash)
void main(){ // Here we set the URL strategy for our web app. cSetPathUrl(); runApp(MyApp()); }
Make a
responsive gridView
by using both1 and 2
provide
discardSize
to minus size from calculation
-
Based on your static design's
width
, calculate the responsivegrid item count
.crossAxisCount: cGetResCrossCountGrid( context: context, width: 180, ),
-
For responsive grid item
aspect ratio
, it should be derived from your static design based onheight
andwidth
.childAspectRatio: cGetResGridRatio( context: context, height: 165, width: 180, ),
-
For normal grid
aspect ratio
> Having this aspect ratio will never break in larger or smaller devicescrossAxisCount: 2, childAspectRatio: cGetGridRatio( crossAxisCount: 2, context: context, height: 165, width: 180, ),
Your provided
height
andwidth
determine how it works
cFormUrlEncode({'':''});
-
For duration and delay
void splash() { // cDays, cHours, cMinutes, cSeconds, cMilliseconds 2.cSeconds.cDelay(() { // code here }); // given number in seconds 3.cDelay(() { // code here }); }
- add TimeOfDay to DateTime
DateTime.now().cApplied(TimeOfDay.now())
-
Get the MediaQuery
context.cIsTablet context.cSize // getSize(context) context.cMQuery // mQuery(context) context.cWidth context.cHeight context.cTheme context.cIsDarkMode context.cIconColor context.cTextTheme context.cOrient // orientation context.cIsLand // landscape context.cIsPort // portrait context.cDevicePixelRatio
-
utils
'text'.cToCapitalized 'text'.cToTitleCase 'text'.cIsLowerCase 'text'.cIsAllCap 'text'.cReverse 'text'.cIsDigit 'text'.cIsEmail 'text'.cIsAlphabetOnly 'text'.cIsPhoneIND 'text'.cIsURL 'text'.cIsPhoneNumber 'true'.cToBoolean // 0,1 also available '1000'.cToCurrencyIND // ₹ 1,000.00 '1000'.cToCurrency() // ₹ 1,000 000.0.cToDistance // (00 km, 00 m available) 000.0.cToWeight // (00 g, 00 kg available)
-
cGetOffer()
String offer = cGetOffer(offerPrice: 90,ordinalPrice: 100); // 10 %
-
buildString()
final word = cBuildString((sb) { for (var i = 0; i < 10; i++) { sb.write(i); } }); // 0123456789
-
Get Random item from list
['aa', 'bb', 'cc', 'dd'].cRandomSelect.toString()
-
Get first item from list (if list is empty then result will be null)
['aa', 'bb', 'cc', 'dd'].cFirst ['aa', 'bb', 'cc', 'dd'].cFirstWhere((e)=>(type your condition here)))
-
Get color from hash code
CHColor.fromHex('#fffff')
-
Get hash code from color
Color.fromRGBO(250, 250, 250, 0.1).toHex()
-
Allows you to handle
(padding/margin)
Text('data').cPadZero // cMargZero Text('data').cPadAll(10) // cMargAll Text('data').cPadOnly(l: 10, r: 10, t: 10, b: 10,) // cMargOnly Text('data').cPadSymmetric(h: 10, v: 10,), // cMargSymmetric
-
Allows you to handle
ClipRRect
Container().cClipAll(10) Container().cClipHorizontal(l:10, r:10,) Container().cClipVertical(t:10, b:10,) Container().cClipOnly(tl: 10, tr: 10, bl: 10, br: 10,)
-
Allows you to insert widgets inside a
CustomScrollView
Text('data').cToSliver
-
More widgets
Text('data').cVisible(true) Text('data').cOpacity(0.3) Text('data').cAbsorb(true) Text('data').cShadow() Text('data').cHero(tag) Text('data').cSizedBox(h:10,w:10)
-
Allows you to handle Alignment
Text('data').cAlignment(Alignment.topCenter) Text('data').cPosition(l: 10, r: 10, t: 10, b: 10,) Text('data').cToCenter Text('data').cExpand(2)
-
For PreferredSize
Text('data').cPreferSize(20)