Skip to content

Instantly share code, notes, and snippets.

View shalaby's full-sized avatar

Muhammad Shalaby shalaby

  • Egypt
View GitHub Profile
void main() {
runApp(_SwitchingThemeApp());
}
/// Properties that help me keep track of the example being run.
bool _useMaterial = false;
class _SwitchingThemeApp extends StatefulWidget {
@override
_SwitchingThemeAppState createState() => _SwitchingThemeAppState();
@shalaby
shalaby / curved_appbar.dart
Created November 30, 2019 16:31 — forked from mjohnsullivan/curved_appbar.dart
A curved Flutter AppBar where widgets scroll nicely beneath the curved portion
import 'package:flutter/material.dart';
void main() => runApp(
MaterialApp(home: MyHomePage()),
);
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
const curveHeight = 50.0;
@shalaby
shalaby / flutter-dropdown.dart
Created October 31, 2019 22:41 — forked from rayjadore/flutter-dropdown.dart
Flutter DropdownButton With Validation
String _town;
_townField() {
return FormField<String>(
validator: (value) {
if (value == null) {
return "Select your area";
}
},
onSaved: (value) {
formData['town'] = value;
@shalaby
shalaby / version-check.dart
Created October 7, 2019 19:39 — forked from naumanahmed19/version-check.dart
Flutter Force Update IOS and Android App Version
//Prompt users to update app if there is a new version available
//Uses url_launcher package
import 'package:url_launcher/url_launcher.dart';
const APP_STORE_URL =
'https://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftwareUpdate?id=YOUR-APP-ID&mt=8';
const PLAY_STORE_URL =
'https://play.google.com/store/apps/details?id=YOUR-APP-ID';
@shalaby
shalaby / page_turn.dart
Created September 12, 2019 14:07 — forked from slightfoot/page_turn.dart
Page Turn Effect - By Simon Lightfoot. Replicating this behaviour. https://www.youtube.com/watch?v=JqvtZwIJMLo
// MIT License
//
// Copyright (c) 2019 Simon Lightfoot
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
@shalaby
shalaby / index.js
Created May 28, 2019 01:02 — forked from nilsmehlhorn/index.js
Firebase Cloud Function: Thumbnail Generator (Serverless)
const { join, dirname } = require('path')
const sharp = require('sharp')
const { Storage } = require('@google-cloud/storage')
const { promisify } = require('util')
const pump = promisify(require('pump'))
const gcs = new Storage()
const SIZE = 128
const PREFIX = 'thumb@'
@shalaby
shalaby / download.dart
Created December 12, 2018 08:59 — forked from slightfoot/download.dart
Download file in Dart/Flutter
static var httpClient = new HttpClient();
Future<File> _downloadFile(String url, String filename) async {
var request = await httpClient.getUrl(Uri.parse(url));
var response = await request.close();
var bytes = await consolidateHttpClientResponseBytes(response);
String dir = (await getApplicationDocumentsDirectory()).path;
File file = new File('$dir/$filename');
await file.writeAsBytes(bytes);
return file;
}
@shalaby
shalaby / auto-remove-sublime-license-popup
Created September 24, 2018 09:25 — forked from egel/auto-remove-sublime-license-popup
Auto-remove Sublime's license popup
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sublime_plugin
import subprocess
from time import sleep
import sys
cl = lambda line: subprocess.Popen(line, shell=True, stdout=subprocess.PIPE).communicate()[0].strip()
log = lambda message: sys.stderr.write("Log: %s\n" % message)
@shalaby
shalaby / IntelIJTrialReset.bat
Created August 22, 2018 17:43
How to Reset InteIIiJ IDEA Evaluation Key in Windows
cd "C:%HOMEPATH%\.IntelliJIdea*\config"
rmdir "eval" /s /q
del "options\options.xml"
reg delete "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\jetbrains\idea" /f
:: It is Highly Advised to Purchase the JetBrain Softwares
:: This is only for the case You just want to Extend the
:: Trial Period and Evaluate the IDE for some more Time