Программирование : Dart & Flutter по-русски
Анатолий
Я просто не понимаю, и склоняюсь к мнению александра что приложение все еще живет и по этому востанавливает состояние
Daniil S
Большая, и система не убивает а останавливает
Анатолий
а, тогда я не понимат, я не андроидшик )
Александр Котков
Ну стопнула она активити, все данные живы
First Last
В нативщине тебе нужно самому восстанавливать данные
First Last
При открытие после фона
Александр Котков
У меня все ок, могу щас более подробно описать
Daniil S
Нет android делает это за тебя
First Last
Видимо, я читал довольно старую литературу
Daniil S
[
"В этой статье как раз для этого велосипедостроительствуют \n",
{
"type": "link",
"text": "https://m.habr.com/ru/company/touchinstinct/blog/352354"
},
""
]
Daniil S
Вот прочитай и все поймёшь
Анатолий
Кстати а ты писал на реакт нативе, там нормально все работает или так же как во флаттере?
Анатолий
Ну нативно мы уже тут видим что так работает, меня кросплатформенные костыли больле волнуют для сравнения
Daniil S
Не могу сказать, могу уточнить
Александр Котков
У андроида есть несколько стадий, когда ты свернул апку, активити последнее открытое стопается, далее оно может быть вычищенно из памяти но, при открытии апки приложение помнит стек активити, с однии но, если же умер процесс сам, то история активити херится
Александр Котков
В флаттере все херится так как активити сдохло) оно с ним связанно
Daniil S
Эту проблему и хочется решить
Daniil S
Не запихивая все подряд в шары
Александр Котков
Для подобного поведения, предлагаю сохранять лишь, пул запушуннвх экранов
Sergey ?
Андроид не убивает отдельные активити, только весь процесс целиком
Daniil S
Ну введённые данные тоже не помешали бы
Александр Котков
Сделайте статик переменную и наслаждайтесь
Александр Котков
Умерло активити статик переменная жива
Sergey ?
Почитай документацию ) или статьи Гугл андроид разработчиков
Александр Котков
Это вже сложнее
Александр Котков
На практике другое поведение
Александр Котков
Приложении может спокойно работать без активити на андроиде
Александр Котков
У нас была статик пер менная, и из за такой фигнр она не чистилась, я впрашивал народ, мне говорили как я выше сказал, потом тестил получалось что он убивал активити, но статик переменные хранил, как и историю активити
Daniil S
Что-то ты мудришь
Александр Котков
При старте апки запускаешь сервис и убиваешь активити, наслаждаешься жизнью)
Daniil S
Сервис это отдельный разговор
Daniil S
С ним коммуникация не самая удобная
Александр Котков
Ну лан, вернемся к флаттеру, я так понимаю без магии сделать что хочешь не получится
Александр Котков
Слишком много инфы хранить
Daniil S
Твоё стартовое Активити олицетворяет процесс приложения
Daniil S
Если Активити мертво то и процесс
Daniil S
Да, думаю либу на флайте замутить
Sergey ?
Не совсем. Можно просто же нажать back button
Daniil S
Оно будет не в onDestroy а в он стоп
Daniil S
Это не есть смерть активити
Sergey ?
Что? ) Активити умрёт
Daniil S
Вот, как ты можешь заметить
Daniil S
Приложение из onStop переходит в онРестарт
Daniil S
Не убивая тем самым процесс
Daniil S
Тоже актуально и для фрагментов
Alexandr AndroidDev
боже какая каша у вас в голове D
Daniil S
Слушаем тебя внимательно, жги)
Alexandr AndroidDev
сорян, пока разбираюсь с другим вопросом. вот вам пару вопросов: когда при нажатии на back активити убивается, а когда нет? когда приложение при скрытии убивается, а когда нет? без привязки к flutter или натив
Andrey Pomazkin
Интересно услышать ответ
Alexandr AndroidDev
[
{
"type": "mention_name",
"text": "0xff00ff",
"user_id": 49566130
},
" я не про вас написал если шо:)"
]
Анатолий
то я разжигаю разговоры )
Andrey Pomazkin
реально интересно стало, ответь плиз)
Alexandr AndroidDev
смысл отвечать на свои вопросы?
Daniil Kolyasnikov
Поделиться опытом с другими
Daniil S
Запуск приложения onCreate() > onStart() > onResume() Нажимаем кнопку Назад для выхода из приложения onPause() > onStop() > onDestroy() Нажата кнопка Домой onPause() > onStop() После нажатия кнопки Домой, когда приложение запущено из списка недавно открытых приложений или через значок onRestart() > onStart() > onResume() Когда запускается другое приложение из области уведомлений или открывается приложение Настройки onPause() > onStop() Нажата кнопка Назад в другом приложении или в Настройках и ваше приложение стало снова видимым. onRestart() > onStart() > onResume() Открывается диалоговое окно onPause() Диалоговое окно закрывается onResume() Кто-то звонит на телефон onPause() > onResume() Пользователь отвечает на звонок onPause() Разговор окончен onResume() Экран телефона гаснет onPause() > onStop() Экран снова включён onRestart() > onStart() > onResume()
Анатолий
Чет мне кажется пустые строки у тебя не в тех местах
Анатолий
сложно воспринимается в таком виде
Andrey Pomazkin
ага, я поначалу охеревал, а потом понял, что нужно вернюю строку читать
Andrey Pomazkin
я уж подумал, что какой то другой андроид изучал)
Nightwelf
странное поведение релизной версии
Nightwelf
а в релизе при входе через акк гугл прога закрывается
Nightwelf
ни у кого не было такого?
Nightwelf
должна открыться форма андроидовая выбора аккаунта гугл, но приложение вылетает на рабочий стол
Nightwelf
не ну реально, что может быть? в дебаге норм в релизе нифига
Александр Котков
в дебаге у вас другая подпись приложения, это чекает гугл
Александр Котков
нужно в google apis добавлять слепок релизной версии
Nightwelf
это как сделать?
Nightwelf
для релиза как это делается?
Александр Котков
делал очень давно, щас не подскажу гугли что-то типо сервисы гугла работают в дебажке , а в релизке нет
Александр Котков
как ты для дебажки делал ?
Александр Котков
или автоматом фаер бейз сделал
Nightwelf
а там что-то пара команд
Александр Котков
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/36999751/google-signin-not-working-in-release-mode-apk-android"
}
]
Александр Котков
вот в эту сторону капай
Nightwelf
так для каждого релиза?
Nightwelf
спасибо нашел дофига инфы
Maria
подскажите пожалуйста, где лучше получить то, что провайдит InheritedWidget (по методу .of(context))?
Maria
Если виджет stateless - вроде вариантом кроме build() нет. Если stateful - в ините нельзя из-за возможного отсутствия контекста, а в билде довольно странно, если можно уменьшить количество поисков родителя. Пока лучшим вариантом для меня получается "didChangeDependencies". Есть что-нибудь получше?
Victor
[
{
"type": "link",
"text": "https://twitter.com/flutterio/status/1086044951669063681"
}
]
Daniil Kolyasnikov
[
"Ребят, у кого нибудь были проблемы с webview на ios ?\n",
{
"type": "link",
"text": "https://github.com/fluttercommunity/flutter_webview_plugin"
},
""
]
Artyom Nesterenko
Многообещающе. ??
Denis Sugakov
Dynamic updates это же нарушает правила google play
Artyom Nesterenko
Возможно, там имеется в виду что-то типа новомодного Dynamic Delivery на Android, там не в обход магазина.
Pavel Shilyagov
Да это тоже самое что и с react native
Pavel Shilyagov
[
{
"type": "link",
"text": "https://github.com/Microsoft/react-native-code-push/blob/master/README.md"
}
]
Pavel Shilyagov
Там уже давно это есть
Alexey Perelygin
Проблема какого плана? Если не грузит самоподписный сайт, то это ок
Alexey Perelygin
А там ещё я допиливаю установку вьюконтроллера, если они не исправили, то при реге плагина нужно прикастовать registrar к flutterengine и получить контроллер из него.
Alexey Perelygin
Или явно брать от uiapplication shared но не при реге, а чекать каждый раз, когда нужно
Daniil Kolyasnikov
Что значит самоподписный ?
Daniil Kolyasnikov
Просто белый экран
Alexey Perelygin
Самоподписный ссл черт на сайт
Daniil Kolyasnikov
LetEncrypt не идет ?
Alexey Perelygin
Если белый экран, то скорее проблема не в нем
Alexey Perelygin
До этого этапа не доходит.
Alexey Perelygin
Я ниже написал, что может быть
Daniil Kolyasnikov
В консоль на ios ничего не валится.
Alexey Perelygin
А дебажили в хкоде? Там скорее всего viewcontroller в экземпляре нуль
Daniil Kolyasnikov
дебажил через cli flutter
Alexey Perelygin
Не. Тут именно нативку дебажить нужно
Alexander Gusakov
Подскажите в BLoC pattern если я делаю логин в котором пост запрос я выношу сам пост запрос все равно в апи провайдер?
admin
BLoC это UI-архитектура, как ты реализуешь бизнес-слой это уже твоя забота
Alexander Gusakov
Тоесть я синками получил данные в блок а в реквестбади мне где лучше их засунуть?
Igor Filippov
Виджет дергает метод в блоке. Блок дергает апи провайдер, получается результат и кладет его в стрим. Виджет подписан на стрим. Так же?
First Last
[
{
"type": "link",
"text": "https://t.me/dartlang_jobs"
}
]
Игорь Кравченко
Во, вспомнил, а у кого есть настройки для идеи чтобы она не была куском говна и не хотелось писать все на vscode?
DVS (Read The F.ng Manual) Studio (NoHello)
(пишу на vsc и vim на другие "куски" даж не смотрю ибо зачем?)
Hellomik
может мне кто то прояснить зачем именно используют State в Statefulwidget
Hellomik
нельзя прос написать MyWidget
Evgeny Kot
[
{
"type": "mention",
"text": "@hr_job_it"
},
" вопросы по поиску разработчиков просьба задавать в профильных чатах"
]
Nightwelf
Где-то недавно видел почему так
XbIK
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/50612237/why-are-stateful-widgets-defined-as-two-classes-in-flutter"
}
]
Nerten
Подскажите, как сделать локализацию даты? Не могу найти почему-то (
admin
[
{
"type": "pre",
"text": "Today we don’t support for 3D via OpenGL ES or similar. We have long-term plans to expose an optimized 3D API, but right now we’re focused on 2D.",
"language": ""
},
"\nкто-нибудь знает когда наступит это светлее будущее? (это из FAQ)"
]
admin
я думаю когда разработчики из гугла разберутся с metal
northelks
наверное когда Skia разработчики запилят либо вулкан, либо метал, либо ещё чего в качестве альтернативы opengl
northelks
или же сразу molten для двух зайцев
northelks
думаю всё тормозит больше из-за бюрократических тёрок с яблоком и их супер-пупер закрытой технологией метала
admin
рисуй себе треугольники и все
Олжас Сулеймен
ну тут есть канвас ... осталось только переписать Three.js с canvas renderer'ом
admin
Да, речь про возможность программисту использовать тот же опен гл в приложении флаттера
Александр Котков
Есть ListView в нём есть текст, как заставить сужаться Conainer в котором текст?
Александр Котков
Flexible не работает кидает ошибку
Александр Котков
сам спросил сам ответил, нужно в Flex обернуть всем спасибо)
Dmitry T.
Смотрю VS часто юзают для флаттера. Кто сравнивал с AS?
Sergey ?
Он легче в плане потребления ресурсов, но менее функционален
Dmitry T.
а с эмулем можно будет работать в VS?
Sergey ?
Да, можно запускать
Dmitry T.
просто эта вложенность в флаттере просто ппц, в VS мне кажется нагляднее, особено с braces плагином
admin
VS это для тех кто любит редакторы, а не иде на джабке
admin
и насколько я понимаю там рефакторинг намного покруче
admin
(ну так обычно всегда в продуктах жетбрейнса, но тут могу соврать)
Daniil S
мне нравится как у джетов работает предиктивный ввод
Daniil S
не тупой, а предлагает выше, самое частое
Александр Котков
+ ваще тема
Александр Котков
у кого нибудь получилось сделать бабл для сообщения, как у телеги?
Daniil S
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/26585"
}
]
Daniil S
сначала это бы решить
Александр Котков
понятно)
Александр Котков
я просто нашёл это
Александр Котков
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/23247"
}
]
Александр Котков
но там решения решают только какую-то свою часть проблем, все разом нету
Александр Котков
а разве Flexible не решает эту проблему?
Александр Котков
печаль беда, спасибо
Daniil S
тянется еще с android эта проблема
Daniil S
но там, можно было покостылить еще, а в флаттере не знаю как быть
Александр Котков
так в андроиде, телега сделала нормальные баблы для сообщений
Александр Котков
вот я щас сижу магию хочу сделать
Daniil S
да, спрашивал как пофиксили, onMeasure
Александр Котков
ну тут что-то типо того же через построитель приется делать LayouBuilder
Александр Котков
проще говоря калькулейтед)
Daniil S
не углублялся пока в кастомки, анимации изучаю
Александр Котков
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/52659759/how-can-i-get-the-size-of-the-text-widget-in-flutter/52991124#52991124"
},
" вот если что примерно делаегт как у телеги, но текст не ужимается, хочу с этим поиграться"
]
Daniil S
мне кажется без костыля не обойтись
Александр Котков
+, андроид = официальные костыли, уже привыкли
Олжас Сулеймен
статики поля и методы, констуктор основной, имененнованные, факторики, поля финальные потом изменяемые с геттерами и сетами, методы все по алфавиту
Олжас Сулеймен
в линтере на порядок членов класса вроде есть правила
Олжас Сулеймен
analytics options который, он кидает варнинг на неправильный порядок
admin
Привет всем, подскажите пожалуйста, делал ли кто нибудь на flutter е продпкш проект ?
admin
Хочу начать большой проект но после reactNative боюсь :)
Alexey Perelygin
Я делаю. Первый экземпляр уже в маркете и аппстор. Там флаттер ии вебвью. Сейчас переписываем все в флатер
Alexey Perelygin
Все аптеки называется
admin
Спасибо можно ссылку на Ваш проект
Alexey Perelygin
[
"Рекомендую \"Все Аптеки: Поиск лекарств онлайн\"\n",
{
"type": "link",
"text": "https://play.google.com/store/apps/details?id=ru.vseapteki"
},
""
]
Nightwelf
На 10 месте?! Офигеть
Nightwelf
Один поднимаешь?
Alexey Perelygin
[
"Ну там же разработчик указан: ",
{
"type": "link",
"text": "mail.ru"
},
" :-)"
]
Alexey Perelygin
Свой релизить хочу в конце февраля:-)
Maria
А как вы ширину рассчитаете?
Dmitry T.
[
"Хьюстон, у меня проблемы с хот релоадом... Компилятор выдает постоянно \n\n",
{
"type": "pre",
"text": "Compiler message:\nresult 404a5381-a788-4a50-813e-097c4af18a26\n404a5381-a788-4a50-813e-097c4af18a26",
"language": ""
},
"\n\nТак я просто буквы меняю в Text()... Система Win 10. Не встречали чего-то необычного при релоаде?"
]
Dmitry T.
[
"А если заменить это\n",
{
"type": "pre",
"text": "void main() {\n runApp(Container(\n color: Colors.blue,\n ));\n}",
"language": ""
},
"\nна это\n",
{
"type": "pre",
"text": "void main() {\n runApp(MaterialApp(\n debugShowCheckedModeBanner: false,\n home: Scaffold(\n appBar: AppBar(\n title: Text('My toolbar'),\n ),\n body: Container(\n color: Colors.blue,\n ),\n ),\n ));\n}",
"language": ""
},
"\nСделать hot reload => вообще все падает постоянно... ЧЯДНТ?"
]
DVS (Read The F.ng Manual) Studio (NoHello)
Если такая замена то он не может найти старый Стейт скорее всего. Сделайте Полный релоад. Чтоб с начала main он прошел всё Ибо сейчас вы по сути весь Арр меняете
Dmitry T.
[
"Если делать рестарт по коду выше с помощью Shift+F10 => первый раз срабатывает норм, второй раз получаю падение => ",
{
"type": "link",
"text": "https://gist.github.com/torindev/0b5cf28a8b6724dea1bd532ff0ce2f63"
},
""
]
DVS (Read The F.ng Manual) Studio (NoHello)
А. Хех. Значит в другом дело
Dmitry T.
Если полностью остановить и запустить приложение - то все ок. Наверное я просто слишком много хочу от хот релоада...
DVS (Read The F.ng Manual) Studio (NoHello)
ну там хот "релоад" и хот "рестарт" есть
Maria
А импортов никаких нет, кроме матириала?
Maria
может вы дарт кор дополнительно импортите, нет?
Dmitry T.
Нет, только материал. Согласен, выглядит как конфликт
Maria
А можно весь main файл посмотреть? В коде ничего особенного не видно, должно работать вроде
|