Size: a a a

Dart & Flutter по-русски

2020 October 17

SS

Stefan Stefan in Dart & Flutter по-русски
это как игровой движок - рисует всьо сам
источник

I

Igor in Dart & Flutter по-русски
Stefan Stefan
в нете есть и такие сервисы
спасибо за подсказки
источник

Т

Тарас in Dart & Flutter по-русски
Stefan Stefan
тоесть юзайте какой нравится, рендеринг призводится флатером, флатер не использует контролы андроида или айоса
спасибо за совет
я уточню что я имел введу, но не буду отрицать что виджеты пока понимаю поверхностно

я имею введу что если пользователь использует андроид, то я хочу рисовать свитч виджет из матириал пакета
если айос- из купертино

они визуально отличаются

такие вещи надо ифом определять или есть какой то подход стандартизированный?
источник

SS

Stefan Stefan in Dart & Flutter по-русски
Тарас
Привет ребята
появиласть возможность и потребность учить flutter (перехожу с фронта)
есть вопрос
каков правильный подход к построению приложений, которые имеют купертино виджеты на ios и матириал на android?
Может есть какой то справочник по построению такого подхода? или надо проверять платформу через if и выбирать виджет?

много непоняток для меня сейчас, к примеру- надо ли определять в корне использовать нам MaterialApp или CupertinoApp, так как их имплементация отличается по всему древу

короче говоря, хочу попросить вас снавигировать меня советом, статтейкой либо чем угодно, буду очень благодарен
кроме того в бете рендеринг под мак и лань, под винду  в альфа версии, под фуксию - вроде как заявили, еще сторонние челы делают под блекбери, еще вроде как пишут можно под хром-ось и даже плугины под хром
источник

V

Vasiliy in Dart & Flutter по-русски
Тарас
спасибо за совет
я уточню что я имел введу, но не буду отрицать что виджеты пока понимаю поверхностно

я имею введу что если пользователь использует андроид, то я хочу рисовать свитч виджет из матириал пакета
если айос- из купертино

они визуально отличаются

такие вещи надо ифом определять или есть какой то подход стандартизированный?
Тогда уж фабрикой...
источник

v

vasilich in Dart & Flutter по-русски
Тарас
спасибо за совет
я уточню что я имел введу, но не буду отрицать что виджеты пока понимаю поверхностно

я имею введу что если пользователь использует андроид, то я хочу рисовать свитч виджет из матириал пакета
если айос- из купертино

они визуально отличаются

такие вещи надо ифом определять или есть какой то подход стандартизированный?
Switch.adaptive
источник

SS

Stefan Stefan in Dart & Flutter по-русски
да, материал и купертино - это как 2 разные оси, и виглядлят они по разному и имеют разные свойства
источник

Т

Тарас in Dart & Flutter по-русски
какое тут активное и приятное комьюнити)
источник

Т

Тарас in Dart & Flutter по-русски
vasilich
Switch.adaptive
спасибо
источник

SS

Stefan Stefan in Dart & Flutter по-русски
думаю есть либы для обобщеных компонентов, но это так себе идея - в реальности так - вам дали диз - вы пиите диз - сразу по все платформы
источник

Ю

Юрий in Dart & Flutter по-русски
Кстати по маку, от иос 14 дебаг релиз не работает без хоста
источник

Т

Тарас in Dart & Flutter по-русски
еще вопрос
по какому критерию я должен определять использовать мне в руте MaterialApp vs CupertinoApp в случае, если я хочу для разных осей разные виджеты юзать? Что собственно меняется в таком случае, если мы можем юзать любые виджеты кроме платформ специфических?
источник

Т

Тарас in Dart & Flutter по-русски
Stefan Stefan
думаю есть либы для обобщеных компонентов, но это так себе идея - в реальности так - вам дали диз - вы пиите диз - сразу по все платформы
большое спасибо
источник

SS

Stefan Stefan in Dart & Flutter по-русски
class GeneralPlatform {
 static bool get isWeb => true;

 static bool get isMacOS =>
     _navigator.appVersion.contains('Mac OS') && !GeneralPlatform.isIOS;

 static bool get isWindows => _navigator.appVersion.contains('Win');

 static bool get isLinux =>
     (_navigator.appVersion.contains('Linux') ||
         _navigator.appVersion.contains('x11')) &&
     !isAndroid;

 // @check https://developer.chrome.com/multidevice/user-agent
 static bool get isAndroid => _navigator.appVersion.contains('Android ');

 static bool get isIOS {
   // maxTouchPoints is needed to separate iPad iOS13 vs new MacOS
   return GetUtils.hasMatch(_navigator.platform, r'/iPad|iPhone|iPod/') ||
       (_navigator.platform == 'MacIntel' && _navigator.maxTouchPoints > 1);
 }

 static bool get isFuchsia => false;

 static bool get isDesktop => isMacOS || isWindows || isLinux;
}
источник

SS

Stefan Stefan in Dart & Flutter по-русски
import 'platform_web.dart' if (dart.library.io) 'platform_io.dart';

// ignore: avoid_classes_with_only_static_members
class GetPlatform {
 static bool get isWeb => GeneralPlatform.isWeb;

 static bool get isMacOS => GeneralPlatform.isMacOS;

 static bool get isWindows => GeneralPlatform.isWindows;

 static bool get isLinux => GeneralPlatform.isLinux;

 static bool get isAndroid => GeneralPlatform.isAndroid;

 static bool get isIOS => GeneralPlatform.isIOS;

 static bool get isFuchsia => GeneralPlatform.isFuchsia;

 static bool get isMobile => GetPlatform.isIOS || GetPlatform.isAndroid;

 static bool get isDesktop =>
     GetPlatform.isMacOS || GetPlatform.isWindows || GetPlatform.isLinux;
}
источник

Т

Тарас in Dart & Flutter по-русски
Тарас
еще вопрос
по какому критерию я должен определять использовать мне в руте MaterialApp vs CupertinoApp в случае, если я хочу для разных осей разные виджеты юзать? Что собственно меняется в таком случае, если мы можем юзать любые виджеты кроме платформ специфических?
если уточнить- что именно должно сподвигать нас выбрать один из двух?
источник

SS

Stefan Stefan in Dart & Flutter по-русски
чяекаете платформу
источник

SS

Stefan Stefan in Dart & Flutter по-русски
дальше по докам, просто вся суть флатера чтобы рендерить что-то одно
источник

SS

Stefan Stefan in Dart & Flutter по-русски
материал - гораздо полпулятней, ибо это нативно от гугла
источник

SS

Stefan Stefan in Dart & Flutter по-русски
от вендора
источник