Size: a a a

Android Developers

2020 March 11

SB

Sam Becket in Android Developers
Никита 🙃
"Мы делаем на либке X на коклене"
спустя неделю...
"Бля, эта херня не может делать очень важную хуйню а дописать в либку это нельзя из-за её изначальной архитектуры и пробем проектирования. Зато либка Y на джаве может почти что надо, надо только пару багов подправить и дописать чуть-чуть"


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

Это конечно условно всё. Но я искренне не понимаю такого недоверия к джаве. Она открывает путь не только в ведроид, но и в бэк (где до сих пор очень много людей сидят на Джаве, спринге и счастливы)
Ну например мне нужно отправить простой запрос на апи, потом подождать ответ и дернуть второй запрос с результатом из первого

На js я просто писал через промисы и укладывался в 5-10 строк кода, а тут что бы просто асинхронный запрос отправить надо копаться в rx java и разбираться с потоками

Вот блин, я хочу просто дернуть метод с апи, я хочу что б он выполнился в отдельном потоке, который бы завершился после того, как пришел ответ и все!

Как бы ну вот джава это язык со статической типизацией, он по своему клевый, но вот веб сам по себе динамический и асинхронный, и что бы выполнять элементарные операции мне приходится писать на яве кучу лоу левел кода, который, в общем-то, мне не нужен для решения практической задачи. Вот собственно в этом первый основной минус

Про бек вообще отдельная история, и я предпочитаю писать бек на го, потому что го -- это язык, созданный для того, что бы обезьяна могла поддерживать сложные продукты, и он таки реально справляется с этой задачей, а именно -- позволяет мне написать любой бек сервис, который решает конкретно мои проблемы за 2-3 дня, просто потому, что мне не нужно знать класс переменной при её декларации.

Вот вроде бы кажется такие мелочи, а на практике это очень сильно влияет на процесс
источник

D

Denis in Android Developers
Батый
Русскоязычного нет?
вообще есть конечно startandroid и т.п.  но английский надо учить
источник

AO

Artem Osipov in Android Developers
Sam Becket
Ну например мне нужно отправить простой запрос на апи, потом подождать ответ и дернуть второй запрос с результатом из первого

На js я просто писал через промисы и укладывался в 5-10 строк кода, а тут что бы просто асинхронный запрос отправить надо копаться в rx java и разбираться с потоками

Вот блин, я хочу просто дернуть метод с апи, я хочу что б он выполнился в отдельном потоке, который бы завершился после того, как пришел ответ и все!

Как бы ну вот джава это язык со статической типизацией, он по своему клевый, но вот веб сам по себе динамический и асинхронный, и что бы выполнять элементарные операции мне приходится писать на яве кучу лоу левел кода, который, в общем-то, мне не нужен для решения практической задачи. Вот собственно в этом первый основной минус

Про бек вообще отдельная история, и я предпочитаю писать бек на го, потому что го -- это язык, созданный для того, что бы обезьяна могла поддерживать сложные продукты, и он таки реально справляется с этой задачей, а именно -- позволяет мне написать любой бек сервис, который решает конкретно мои проблемы за 2-3 дня, просто потому, что мне не нужно знать класс переменной при её декларации.

Вот вроде бы кажется такие мелочи, а на практике это очень сильно влияет на процесс
Зачем rxjava чтобы дернуть запрос? Что за дичь вы несёте, сударь?
источник

SB

Sam Becket in Android Developers
Artem Osipov
Зачем rxjava чтобы дернуть запрос? Что за дичь вы несёте, сударь?
Я могу ошибаться конечно же, но пока насоветовали именно rx java
источник

AO

Artem Osipov in Android Developers
Sam Becket
Я могу ошибаться конечно же, но пока насоветовали именно rx java
И конечно же ошибаешься, есть retrofit и в нем есть такие же промисы
источник

AO

Artem Osipov in Android Developers
И все укладывается в 5 строчек
источник

SB

Sam Becket in Android Developers
Artem Osipov
И конечно же ошибаешься, есть retrofit и в нем есть такие же промисы
Гм, спасибо! :)
источник

СП

Сергей П. in Android Developers
Без rxjava люди живут. Есть futures, есть task, есть богомерзкие асинки с и просто потоки с коллбэками
источник

СП

Сергей П. in Android Developers
А в котоине вообще корутины
источник

СП

Сергей П. in Android Developers
А с сетью работать  - volley есть, он в сто раз проще ретрофита, там асинхронно дергнут методы по успеху и неудаче запроса в три строки.

Но тут его хз почему нелюбят
источник

AO

Artem Osipov in Android Developers
Сергей П.
А с сетью работать  - volley есть, он в сто раз проще ретрофита, там асинхронно дергнут методы по успеху и неудаче запроса в три строки.

Но тут его хз почему нелюбят
а в ретрофите не 3 строки?)
источник

B

Boozy Urban 😏 in Android Developers
Привет, может кто-нибудь натыкался на пример Recycler в Recycler, но чтобы каждый горизонтальный был разным?
источник

СП

Сергей П. in Android Developers
Artem Osipov
а в ретрофите не 3 строки?)
Тоже. Вопрос надо ли его тащить в проект-если скажем апи дает одну строку и требует одну
источник

AO

Artem Osipov in Android Developers
Сергей П.
Тоже. Вопрос надо ли его тащить в проект-если скажем апи дает одну строку и требует одну
сложно назвать это апи)
источник

СП

Сергей П. in Android Developers
И разбирать полученное в pojo нахне надо
источник

AO

Artem Osipov in Android Developers
Сергей П.
И разбирать полученное в pojo нахне надо
а какая разница че тащить?
источник

ДР

Дмитрий Рыбалкин... in Android Developers
Подскажите про LiveData. В Dao я два разных списка обернул в LiveData. В итоге первый работает нормально, а второй всегда пустой. Почему второй пустой? Я что, не имею права так делать?
    @Query("select * from user_table")
   fun readUsers(): LiveData<List<User>>

   @Query("select * from user_table where isMember = 1")
   fun readMembers(): LiveData<List<User>>
источник

AO

Artem Osipov in Android Developers
Дмитрий Рыбалкин
Подскажите про LiveData. В Dao я два разных списка обернул в LiveData. В итоге первый работает нормально, а второй всегда пустой. Почему второй пустой? Я что, не имею права так делать?
    @Query("select * from user_table")
   fun readUsers(): LiveData<List<User>>

   @Query("select * from user_table where isMember = 1")
   fun readMembers(): LiveData<List<User>>
видать нет isMember=1
источник

КР

Кирилл Романенко... in Android Developers
Дмитрий Рыбалкин
Подскажите про LiveData. В Dao я два разных списка обернул в LiveData. В итоге первый работает нормально, а второй всегда пустой. Почему второй пустой? Я что, не имею права так делать?
    @Query("select * from user_table")
   fun readUsers(): LiveData<List<User>>

   @Query("select * from user_table where isMember = 1")
   fun readMembers(): LiveData<List<User>>
Рум не умеет обзервить определенные запросы. Можно только просить всю таблицу, а оттуда уже вытаскивать нужные данные.
источник

ДР

Дмитрий Рыбалкин... in Android Developers
Есть у всех пользователей, я присваиваю isMember=1 еще в конструкторе. Ну и плюс я проверял, у всех 1
источник