Puzzak's Flutter
20 subscribers
156 photos
42 videos
12 files
23 links
Junior developer's journey in the Flutter realm
@puzzaks for more info
Download Telegram
Channel created
Yo, I'm Puzzak!

Це мій канал, де я буду ділитись моїми знахідками, думками про та сніппетами коду Dart/Flutter.

Я не вважаю себе достойним звання "розробника", я максимум Trainee. Тому будь-які рекомендації, поправки та зауваження до коду чи написанного будуть дуже доречні :)


Також мене можна знайти на @Puzzaks, у Play Market, Threads, LinkedIn та на моєму сайті.

Зворотній зв'язок - @Puzzak

Підписуйтесь. @PuzzaksFlutter.
Вчусь використовувати ПРОКСІ.
Дуже проста штука, працює миттєво через дефолтний пакет http.dart.

Все що потрібно додати до головного класу це
class MyAppState extends State<MyApp> {
void initState() {
HttpOverrides.global = MyHttpOverrides(); // ОЦЯ СТРОКА
super.initState();
}
...

А потім додати новий клас:

class MyHttpOverrides extends HttpOverrides{
final ipAddress = '666.66.66.6';
int port = 666;
final credentials = HttpClientBasicCredentials('login', 'password');
@override
HttpClient createHttpClient(SecurityContext? context){
return super.createHttpClient(context)
..addProxyCredentials(ipAddress, port, 'main', credentials)
..findProxy = ((uri) => 'PROXY $ipAddress:$port')
..badCertificateCallback = (X509Certificate cert, String host, int port)=> true;
}
}

І абсолютно всі запити додатку будуть йти через вказаний проксі-сервер :)
Ніяких змін у тому як робляться запити робити не потрібно)
Puzzak's Flutter
Вчусь використовувати ПРОКСІ. Дуже проста штука, працює миттєво через дефолтний пакет http.dart. Все що потрібно додати до головного класу це class MyAppState extends State<MyApp> { void initState() { HttpOverrides.global = MyHttpOverrides(); // ОЦЯ…
Перевірка доступності проксі
Продовжуючи тему проксі, варто також додати що зазвичай варто перевіряти чи доступний проксі-сервер, та чи підходять облікові данні. В випадку з проксі який я використовую, мені достатньо наступної функції:
Future<bool> pingProxy(address, creds) async {
try {
final response = await http.head(
Uri.http(address),
headers: {
"Proxy-Authorization": "Basic ${base64.encode(utf8.encode(creds))}"
}
);
return response.statusCode == 503;
} catch (e) {
return false;
}
}

Яка буде повертати булеве значення (чи вірні дані).

Викликати цю функцію треба так:
await pingProxy("$proxyaddress:$proxyport", "$proxyusername:$proxypassword").then((value){
if(value){
//Все вірно, активуємо проксі
}
});


Зверніть увагу на змінні $proxyaddress, $proxyport, $proxyusername, $proxypassword.
❤‍🔥1
Puzzak's
Оаоао, коли підтримка у Flutter? :9to5linux
Скоро спробую показати як виглядає адаптивність кольорів на різних платформах. В усіх моїх додатках ієрархія будь-якого екрану виглядає приблизно отак:
  Widget build (){
DynamicColorBuilder (){
  LayoutBuilder (){
return Widget (){}
}
}
}

Перший білдер слідкує за кольоровою темою пристрою та змінює її динамічно, другий - слідкує за орієнтацією пристрою та робить можливою адаптивність (зміну розміру/пропорцій вікна, керує інтерфейсом в портретній та альбомній орієнтації, тощо).

Приклад можна побачити отута :)
Forwarded from Puzzak's (Puzzak)
Media is too big
VIEW IN TELEGRAM
Чесно кажучи, я не певен що це те чого я намагався досягти, але виглядає круто
Forwarded from Puzzak's (Puzzak)
This media is not supported in your browser
VIEW IN TELEGRAM
Пам'ятаєте цього чувака? Оце він зараз.
Forwarded from Puzzak's (Puzzak)
app-release.apk
21.4 MB
Ранній доступ 👀
Я не дуже довіряю начальству, тож якщо зі мною не розрахуються, буде весело :)