Size: a a a

Flutter Developers — русскоговорящее сообщество

2021 February 22

E

Evgeny Smirnov in Flutter Developers — русскоговорящее сообщество
Если Фокс тут с каждым будет вступать в дискуссии, то и времени ни на что не останется. Для этого он видео и снял походу)
источник

n

nneck1t in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
Хочешь знать за проблематику своих решений - смотри мои стримы.
В противном случае лучше поищи в рударте когонить под стать, чтоб обсуждать такие вопросы.
Можно ссылку для ознакомления? Спасибо
источник

Ю

Юра in Flutter Developers — русскоговорящее сообщество
nneck1t
Можно ссылку для ознакомления? Спасибо
В том моём сообщении есть ссылка на один из его роликов: https://youtu.be/AV_4aVOKl-g
источник

Ю

Юра in Flutter Developers — русскоговорящее сообщество
Думаю, остальное можно найти на том же канале.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
nneck1t
Можно ссылку для ознакомления? Спасибо
Если не конкретно про блок, а про один из вариантов выстроения архитектуры - там есть и про это
https://www.youtube.com/watch?v=2umUZX4bAt0
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Думаю следующий будет про CI/CD, Github Actions или мб про тесты.
источник

CI

Captain Impact. in Flutter Developers — русскоговорящее сообщество
А когда ждать?
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Через неделю-две ориентировочно)
Стрим то не сложно провести и рассказать.
Но моральных сил не хватает что то делать.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Еще про базы данных, орм и скуль хотел рассказать.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
А то часто вижу, что люди в принципе не понимают что они делают.
Берут хайв где нужен скуль лайт, берут скуль лайт там где нужны шаред префс.
источник

CI

Captain Impact. in Flutter Developers — русскоговорящее сообщество
Про тесты было бы интересно послушать😅
источник

M

MiT in Flutter Developers — русскоговорящее сообщество
Юра
@PlugFox Мне тут в соседнем чате сказали, что с тобой можно похоливарить) Можно, конечно, в личке пообщаться, но публично может быть даже интереснее. В общем, я думаю использовать ли в моём следующем проекте https://pub.dev/packages/get
В качестве критики мне скинули вот это: https://youtu.be/AV_4aVOKl-g?t=11211 (там есть тайм тег про GetX).

Я же смотрю на это немного по-другому.

Да, это микро-фреймворк. За 7 лет опыта разработки для Android я пришёл к тому, что создал для себя некое подобние микро-фреймворка для Android, но это лишь солянка из различных библиотек, каким-то образом собранных под одной крышей. Get делает то же самое для Flutter вместо меня.

Например, в Android для навигации я использую Cicerone, который прячу за интерфейсом Router’а. Выглядит это приблизительно вот так:

class MyViewModel(
 …,
 router: MyRouter,
): ViewModel {
 …

 fun onCreateOrderClicked() {
   router.goToCreateOrder()
 }
}

interface MyRouter {
 fun goToCreateOrder()
}

class DefaultMyRouter(
 private val ciceroneRouter: CiceroneRouter,
 private val screenFactory: ScreenFactory,
): MyRouter {
 override fun goToCreateOrder() {
   ciceroneRouter.navigateTo(screenFactory.createOrder())
 }
}


Как видно, всё это работает через DI. И по факту у меня где-то в памяти есть объект Cicerone, в который то ставится, то убирается Navigator. В данном случае для Flutter + GetX это можно адаптировать таким образом:

class MyController {
 MyController(this._router);

 final MyRouter _router;

 void onCreateOrderClicked() {
   _router.goToCreateOrder();
 }
}

abstract class MyRouter {
 void goToCreateOrder();
}

class DefaultMyRouter implements MyRouter {
 void goToCreateOrder() {
   Get.toNamed(Routes.CREATE_ORDER);
 }
}

Всё то же самое, только мне не надо городить кучу кода для сохранения Navigator’а, Get это делает за меня.

По DI. Для Android я использую Koin, мне он кажется намного приятнее Dagger’а, хоть и имеет свои недостатки. Многие (в том числе Jake Wharthon) говорят что Koin – это не DI, а Service Locator. Тут я не соглашусь) Почему – потому что Service Locator можно использовать для DI по определению, я на Habr’е даже статью написал: http://habr.com/ru/post/488072

Так вот, использование Get в качестве DI-решения почти не отличается от Koin:


// Koin:
val MyModule() = module {
 viewModel { MyViewModel(router = get()) }
 factory { DefaultMyRouter(ciceroneRouter = get(), screenFactory = get()) } bind MyRouter::class
}

// Get:
class MyBinding extends Bindings {
 @override
 void dependencies() {
   Get.lazyPut<MyRouter>(
     () => DefaultMyRouter(),
   );
   Get.lazyPut<MyController>(
     () => MyController(Get.find<MyRouter>()),
   );
 }
}

А почему критикуют Get’s State Management мне вообще непонятно)
Раз ты смог на дройде собрать хорошую для тебя солянку, то что тебе мешает и в flutter её собрать?
Не вижу смысла брать один пакет который "якобы" покрывает все твои кейсы...
источник

𝕷

𝕷𝖔𝒌𝖎 in Flutter Developers — русскоговорящее сообщество
Может кто знает, как подписать ipa файл(например ютуба) чтоб работала Гугл авторизация?
источник

Ю

Юра in Flutter Developers — русскоговорящее сообщество
MiT
Раз ты смог на дройде собрать хорошую для тебя солянку, то что тебе мешает и в flutter её собрать?
Не вижу смысла брать один пакет который "якобы" покрывает все твои кейсы...
С Android и его экосистемой я как рыба в воде. Flutter для меня новый зверь.
Тут вопрос: почему "якобы"? У меня нет опыта работы с Get, я не знаю подводных камней, и ищу совета. С моей точки зрения, если правильно подойти к Get, то он даст мне то, что я хочу - DI, State Management и навигацию, которую не надо дёргать из виджетов. Почему то, что это всё в одном пакете - плохо?
источник

M

MiT in Flutter Developers — русскоговорящее сообщество
Юра
С Android и его экосистемой я как рыба в воде. Flutter для меня новый зверь.
Тут вопрос: почему "якобы"? У меня нет опыта работы с Get, я не знаю подводных камней, и ищу совета. С моей точки зрения, если правильно подойти к Get, то он даст мне то, что я хочу - DI, State Management и навигацию, которую не надо дёргать из виджетов. Почему то, что это всё в одном пакете - плохо?
На сколько я знаю в дройде тоже есть такие же пакеты (все в одном) как get. Ответьте себе почему вы их не использовали, а собрали свою солянку?
+ Вы говорите "нет опыта", если бы у вас был это опыт, вы бы дали ответ на свой изначальный вопрос.
источник

Ю

Юра in Flutter Developers — русскоговорящее сообщество
MiT
На сколько я знаю в дройде тоже есть такие же пакеты (все в одном) как get. Ответьте себе почему вы их не использовали, а собрали свою солянку?
+ Вы говорите "нет опыта", если бы у вас был это опыт, вы бы дали ответ на свой изначальный вопрос.
Для Android я не встречал подобных пакетов. Да и проблемы, которые можно решить с помощью сторонних решений, у Android  и Flutter разные.
Если бы чего-то подобного не было, я бы постарался это реализовать самостоятельно. Но у меня нет NIH-болезни, и если что-то подобное уже существует, то почему бы это не использовать?
источник

Т

Тркюу in Flutter Developers — русскоговорящее сообщество
Юра
С Android и его экосистемой я как рыба в воде. Flutter для меня новый зверь.
Тут вопрос: почему "якобы"? У меня нет опыта работы с Get, я не знаю подводных камней, и ищу совета. С моей точки зрения, если правильно подойти к Get, то он даст мне то, что я хочу - DI, State Management и навигацию, которую не надо дёргать из виджетов. Почему то, что это всё в одном пакете - плохо?
Такая же фигня
источник

n

nneck1t in Flutter Developers — русскоговорящее сообщество
Юра
С Android и его экосистемой я как рыба в воде. Flutter для меня новый зверь.
Тут вопрос: почему "якобы"? У меня нет опыта работы с Get, я не знаю подводных камней, и ищу совета. С моей точки зрения, если правильно подойти к Get, то он даст мне то, что я хочу - DI, State Management и навигацию, которую не надо дёргать из виджетов. Почему то, что это всё в одном пакете - плохо?
Я позволю вставить свое, тк сильно в тему вопроса не вникал и с get не работал
Я бы посоветовал обратить внимание на riverpod (https://riverpod.dev) для управления состояния , можно так же слушать изменения и делать что нужно
источник
2021 February 23

EA

Eugene Alitz in Flutter Developers — русскоговорящее сообщество
Тоже отпишусь про Get. Не разделяю мнения о том, что якобы гет противоречит всем принципам архитектуры. Очень удобный пакет. Используется у нас в проде. Использую его навигацию и state management. Очень удобно. Без кучи лишь телодвижений. А архитектура по моему никак от него не зависит.
источник

EA

Eugene Alitz in Flutter Developers — русскоговорящее сообщество
Кстати до этого пробовал много чего, включая : чистый bloc на стримах, flutter_bloc, mobx, provider. По сравнению с ними Get гораздо удобнее
источник