Ivan
Вот это тестовое задание или это просто решили сделать целый модуль на шару ? Обязательств о не разглашении не брали , если что.
если бы не было задачи с сокетами, то было бы вполне норм. ИМХО тут как будто просто два задания и всё
Aleksey
Не хорошо сливать тестовые в чатики
Не очень понятна позиция, можешь пояснить?
Max
А какие варианты?
Создать один класс, который наследуется от фрагмент, а все остальные будут хранить вьюшки для каждого определенного фрагмента
Александр
Я что - то подобное видел разок, когда на аутсорсе работал. Правда я не смог этого осознать, неокрепший ум, все дела.
Александр
А ещё как можно?
Хз как. А ради чего?
Max
Хз как. А ради чего?
Ну я предполагал не наследоваться от Fragment каждый раз
Александр
Ну я предполагал не наследоваться от Fragment каждый раз
Всё равно придётся от него наследоваться, неважно напрямую ли, или через родителя. Или я мб чего не понял. А чем плохо "наследоваться от Fragment каждый раз"?
Александр
А чем хорошо повторять код?
Какой код? Если есть общая для всех фрагментов логика - вынесите в общий класс, какой - нибудь BaseFragment. Какое - то абстрактное обсуждение, мб пример?
Nick
А чем хорошо повторять код?
Наследоваться от фрагмента сразу или создать сущность которая наследуется от фрагмента дабы наследоваться от неё Не поменялось абсолютно ничего
Max
Какой код? Если есть общая для всех фрагментов логика - вынесите в общий класс, какой - нибудь BaseFragment. Какое - то абстрактное обсуждение, мб пример?
Пример чего? Пример ситуаций, когда так следовало бы делать? Я не утверждаю, что такое наследование - лучшее решение, но я думал, что это имеет смысл
central
@Harmonizr
Nick
А если у фрагментов есть общие члены класса?
Если у всех либо большинства фрагментов есть общая логика, то создавай базовый фрагмент и наследуйся от него
Vl
Друзья, есть ли здесь тот кто знает и использует дагер?
Kanstantsin
А если у фрагментов есть общие члены класса?
если много общей логики, можно сделать им ещё одного наследника общего и туда переместить общую логику, но порой лучше вместо наследования юзать декомпозицию, фрагменты и так god objects
Александр
Пример чего? Пример ситуаций, когда так следовало бы делать? Я не утверждаю, что такое наследование - лучшее решение, но я думал, что это имеет смысл
Иногда имеет смысл, иногда нет. Чтобы уже перейти в практическую плоскость, можешь посмотреть реализации вот по такому примерно запросу: https://www.google.com/search?sxsrf=ACYBGNR3-thab7KzIZNXNkJIAItdJ4hrDA%3A1574243144816&source=hp&ei=SAvVXc7yLqjMrgSSsq3oBw&q=basefragment+android+github&oq=basefragment+android+github&gs_l=psy-ab.3..35i304i39.1127.5651..5765...0.0..0.149.2614.16j10......0....1..gws-wiz.......35i39j0i67j0j0i131j0i20i263j0i10i203j0i203j0i10j0i30j0i5i30j0i19j0i13i30i19j0i13i5i30i19j0i8i13i30i19.1K82wzJ2LyY&ved=0ahUKEwjOtrzbwPjlAhUoposKHRJZC30Q4dUDCAY&uact=5
🐈 гав-гав
гайс, кто то сталкивался с проблемами в cameraX ? Проверил на 4 девайсах, везде норм, на самсунге мыло пиксельное
central
Друзья, есть ли здесь тот кто знает и использует дагер?
nometa.xyz наверно да кто то его знает и использует из аш пяти тысячь участников чата
Kanstantsin
лучше создавать какие-то другие компоненты и туда смещать общую логику, а их юзать на нескольких фрагментах
Max
Понял, ладно. Спасибо
central
@Harmonizr
Vl
nometa.xyz наверно да кто то его знает и использует из аш пяти тысячь участников чата
Я ищу такого человека, который может помочь, не просто так с дагером
Александр
В каком - нибудь Java/React чате чел бы уже отлетел))
Max
Если у всех либо большинства фрагментов есть общая логика, то создавай базовый фрагмент и наследуйся от него
Кстати. Базовый фрагмент - это единственный класс, который наследуется от Fragment? А другие классы будут наследоваться от него? Я об этом и говорил, если это так
Andrey
привет проблема с гугловой пагинацией. нужно выполнять некий запрос с параметром, который вводить юзер. раньше, когда делал на java + mvp просто после получения параметра создавал PagedList и передавал его в адаптер. было норм. щас, в viewModel нужно держать поле lateinit var data: LiveData<PagedData> и оно не инициализировано, когда я пытаюсь обзервить его из фрагмента: homeViewModel.searchUserList.observe(this, Observer { adapter.submitList(it) })
Max
Если три фрагмента, например, у которых есть общие члены класса, то выходит, что классы-потомки должны каждый по отдельности наследоваться от фрагмент, а это уже множественное наследование.
Вячеслав
День добрый, как отсюда получить кол-во минут? допустим мне пришло "02:22:00", значит я должен получить 144 минуты
Dmytro
Подскажите, обычная задача, есть поле, после которого нужно сделать запрос на сервак (со значением с поля), какие бест практики по заддержке? типа у юзера есть 700 миллисекунд, между каждым вводом, чтобы запрос не отправился. Использую Timer но нужно юзать ЮИ и это выглядит немного дико timer.schedule(new TimerTask() { @Override public void run() { ((Activity) SearchView.this.getContext()).runOnUiThread(new Runnable() { @Override public void run() { // TODO } }); } }, 700);
Alexander
Только RxJava не затягивай ради этого
Dmytro
Там есть, посмотри
да у меня уже все написано по запросам, вопрос немного не туда, просто как лучше организовать отложенный вызов с отменой
Nick
Кстати. Базовый фрагмент - это единственный класс, который наследуется от Fragment? А другие классы будут наследоваться от него? Я об этом и говорил, если это так
Ну не обязательно, ты можешь иметь базовый для своих 3 экранов например, наследуясь от него А в остальных наследоваться напрямую от фрагмента
awawa
День добрый, как отсюда получить кол-во минут? допустим мне пришло "02:22:00", значит я должен получить 144 минуты
142* Ну взять кол-во часов, умножить на 60 и прибавить кол-во минут. Какие там сложности?
Вячеслав
да я уже сделал, что-то ступил, искал как форматами достать, спасибо
Nick
Как ты будешь получать доступ к переменным класса-родителя, если наследуешься от фрагмент
Тебе стоит почитать больше информации о абстрактных классах и наследовании/композиции
Max
Тебе стоит почитать больше информации о абстрактных классах и наследовании/композиции
Композиция не всегда уместна. Я понимаю о чем ты говоришь, ты предлагаешь не наследоваться от класса, в котором лежат общие переменные, а использовать его для каждого класса, который наследуется от фрагмента
Зам
Ребят, как можно запустить службу, чтобы она не прервалась и не отображалось уведомление ?
Зам
Можно выбрать только что то одно
А как это делают в WhatsApp или телега?
Andrew
А как это делают в WhatsApp или телега?
У них нет foreground-служб без уведомлений.
Andrey
Зачем ты так делаешь, не проще внутри держать мутабл дату а наружу выдать без костылей ввиде лайтинит что то типа private val reducerState = MutableLiveData<ProfileState>() val profileState: LiveData<ProfileState> get() = reducerState
то есть, выдывать во фрагмент не сами данные, а стейт с данными. стейт всегда будет, а данные появятся попозже, я правильно понимаю?
Andrew
А как это делают в WhatsApp или телега?
Что тебе в целом надо? Может ты не туда смотришь
Andrew
Какая бизнес задача
Зам
Чат хочу сделать
Зам
Ну и соответственно служба, которая будет получать сообщения и выкидывать уведомления
Yakov
Andrew
Чат хочу сделать
Открытый чат = соккет, закрытый = Firebase Cloud Messages. Никаких сервисов вообще не нужно.
Andrey
Ага, по мне так удобней, и в мутабл можешь менять его но наружу отдавай просто лайфдату
ProfileState это получается обычный класс, с полем PagedList? я что-то слышал про sealed классы, возможно тут подойдет это
Andrew
Сам по себе не живёт?
Yakov
ProfileState это получается обычный класс, с полем PagedList? я что-то слышал про sealed классы, возможно тут подойдет это
Да я делаю через стейт, но ты можешь отдавать и напрямую без стейта, но проще разобраться с ним сразу
Зам
Сам по себе не живёт?
А он так может?
Зам
Сам по себе не живёт?
Ну то есть даже при закрытии приложения?
Andrew
Ну то есть даже при закрытии приложения?
Мы же договорились, что при закрытии аппки мы выключаем соккет и ждём инфу от FCM. Зачем сервис?
Andrew
В современном андроиде сервис без фореграунда вообще смысла не имеет
Aleksandr
Не хорошо сливать тестовые в чатики
а что тут такого ? А хорошо свои задачи решать на шару, в виде тестовых заданий по найму ?
Зам
Мы же договорились, что при закрытии аппки мы выключаем соккет и ждём инфу от FCM. Зачем сервис?
Извини, что трачу твое время. Получается, что наш сервер должен отправлять уведомления через FCM? Или я вообще запутался?
Igor
а что тут такого ? А хорошо свои задачи решать на шару, в виде тестовых заданий по найму ?
Это явно далеко от каких-то реальных задач. Даже по описанию поверхностному компании уже понятно, что они не будут подобными мелочами пытаться какие-нибудь жалкие 50-100 тысяч пытаться сэкономить. Вы ведь смотрели примерно что из себя представляет компания, для которой вы делаете тестовое?)
Andrew
Извини, что трачу твое время. Получается, что наш сервер должен отправлять уведомления через FCM? Или я вообще запутался?
1. если приложение не онлайн (соккет закрыт), то сервер отправляет аппке месседж. Аппка просыпается и показывает нотификашку типа "у вас новое сообщение". 2. Юзер открывает аппку, поднимается соккет и опять общаетесь напрямую. 3. Когда юзер уходит с аппки, переходим к п.1
Ivan
Вот это тестовое задание или это просто решили сделать целый модуль на шару ? Обязательств о не разглашении не брали , если что.
я бы сказал, что они слишком охренели. Как будто бы соискателям никто больше не пишет и не предлагает ничего, только и ждут как бы дня 2 себя тестовому посвятить
Igor
Такие забавные вы :3 Ребят, тестовое простое, всегда когда речь идет о каких-то нормальных позициях дают тестовое ориентировочно на 12-16 часов. Особенно если контора базируется не в россии. И это абсолютно нормально, потому что коллегам для того, чтобы предлагать вам релокацию, нужно все-таки примерно понять, что вы из себя представляете
Ivan
ну несколько экранов, mvp/mvvm, clean arch, норм так уже получается кода и времени
Aleksandr
первый раз слышу
видимо не с теми компаниями работаете . Бесплатно тестовое на пару часов я ещё понимаю , но это совсем не на пару часов