Andrey
Привет! А посоветуйте, пожалуйста, книгу для начинающего разработчика под Android ?
Andrey
Есть какие-то классические труды или крутые авторы?
Maksim
devcolibri.com
Andrey
а бумага на русском языке существует?))
S
а бумага на русском языке существует?))
android для профессионалов - оч. помогла мне пару лет назад.
Andrey
например, что брать из следующего списка https://www.ozon.ru/?context=search&text=%ef%f0%ee%e3%f0%e0%ec%ec%e8%f0%ee%e2%e0%ed%e8%e5+%e4%eb%ff+android ?
Andrey
если чувак не очень то и программист, осилит?
Andrey
раньше начинали с паскаля и бейсика, а он хочет с разработки под андроид)
Volodymyr
раньше начинали с паскаля и бейсика, а он хочет с разработки под андроид)
ну и? большинство с джава кор начинали и потом под андроид
Andrey
ну и? большинство с джава кор начинали и потом под андроид
значит, лучше взять книгу по языку, а не сразу нырять в разработку под андроид?
Сергій
сначала джаву, потом андроид
Chingiz
Ну как, получилось?
Chingiz
А чё?
Chingiz
А мой варик?
Никита 🙃
А как в Room сделать проверку на содержание 2х списков. Напрмиер на вход у меня список ids: List<Long>, в Entity тоже есть список ids: List<Long>. Мне надо достать все сущности, в которых список ids содержит другой список ids "ids in (:ids)" чёт не достаёт
Anonymous
сейчас скину
Anonymous
@Query("SELECT * FROM entityvaluedata WHERE executionId=:executionId AND entityId=:entityId AND id IN (:ids)") fun getEntityValuesByIds(executionId: Int, entityId: Int, ids: List<Int>): List<EntityValueData>
Никита 🙃
Спасибо, сейчас ппробую)
Никита 🙃
Ну у меня вроде так, но возвращает пустой список. Странно
Никита 🙃
Ладно, буду искать что не так сделал
Stanislav
Ребят. Что делает метод Activity.clear()?
Chingiz
Я не говорил такое делать.
Chingiz
Что-то забыл наверное
Eugene
а разве app.Fragment не deprecated?
Eugene
https://developer.android.com/reference/android/app/Fragment
Никита 🙃
а разве app.Fragment не deprecated?
v4 депрекейтед же
Никита 🙃
А, ой
Eugene
v4 депрекейтед же
наоборот, android.app.Fragment стал deprecated с api 28
Никита 🙃
Перепутал
Chingiz
Кто уже пользуется Navigation Component? Насколько удобно?
Сергій
Fragment'ы с аппкомпата
Никита 🙃
А как в Room сделать проверку на содержание 2х списков. Напрмиер на вход у меня список ids: List<Long>, в Entity тоже есть список ids: List<Long>. Мне надо достать все сущности, в которых список ids содержит другой список ids "ids in (:ids)" чёт не достаёт
Хмм... Нашёл ошибку. а именно сравнение 2х списков. В enitity есть ids: List<Long> Дальше в запрос я передаю список ids2: List<Long>. по идее мне надо достать все сущности, котоыре в ids содержат элементы ids2. ids in (:ids2) не сработал для меня. что не так я делаю?
Artem
рум разве можно хранить лист?
Никита 🙃
рум разве можно хранить лист?
Нет, но можно написать TypeConverter
Artem
Нет, но можно написать TypeConverter
так может где-то тут ошибка?
Artem
так как просто WHERE id IN (:ids) отрабатывает норм
Никита 🙃
так как просто WHERE id IN (:ids) отрабатывает норм
*id не PrimaryKey, а просто список id'шников
Artem
сложно разобраться не понимая что там внутри)
Artem
покажи запрос
Никита 🙃
@Query("select count(*) from Message where ids in (:ids)")
Никита 🙃
Ничего сверхъестественного
Никита 🙃
@Entity(tableName = "MessageFilter") data class MessageFilterEntity( val ids: List<ID>?, val recipients: List<ID>?, val read: Boolean?) { @ColumnInfo(name = "id") @PrimaryKey(autoGenerate = true) var id: Long = 0 }
Никита 🙃
Вот сама сущность
Никита 🙃
ID == Long (typealias)
Artem
Привет! никто не знает, для фаербейса еще не запилили какой-нибудь простенькой админки для их ДБ? а то дико неудобно json руками фигачить
Egor
так вроде бы всегда была
Egor
причем достаточно удобная
Artem
это какая?
Artem
есть где-то скриншоты может?)
Stas
у приложения должен быть платный доступ, который стоит 400 евро. покупка одноразовая без срока действия. но у in-app purchases лимит в 350 евро. как это правильно обойти?
Artem
два по 200?) 350+50?
Stas
но как юзера заставить платить дважды
Stas
это похоже на наеб)
Artem
400 евро само по себе похоже на наеб
Stas
там конент дорогой, профессиональный
Stas
это курсы для медиков.
Dmytro
это курсы для медиков.
Сделать один блок за 350 а второй маленький за 50
Mikhail
это курсы для медиков.
Другой сервис оплаты прикручивать
Gleb
ребят, кто может обьяснить, зачем нужен DI для тестирования? допустим есть презентер, в котором я с сетью работаю через сатический класс NetworkUtils, я так понима, это плохо. я не смогу замокать его ни как, если он не инжектить извне?
Gleb
ну это то понятно, вопрос немного другой. меня скорее интересует, на сколько становится нетестируемый код, если не инжектить, я могу замокать методы моего Netw.. ? если он через статику
Igor
Нет, не можешь
Gleb
да вот и я том же, меян обманули :(
Gleb
или ве таки можно?
Igor
Можно унаследоваться от класса и "скрыть" статические методы
Igor
Но куда проще и лучше сделать нормально
Gleb
Но куда проще и лучше сделать нормально
нет, не проще, что бы сделать нормально, надо понять почему плохо - это плохо))
Gevork
Юзай PowerMockito он даст замокать статик если прям очень хочется
Gevork
ну это то понятно, вопрос немного другой. меня скорее интересует, на сколько становится нетестируемый код, если не инжектить, я могу замокать методы моего Netw.. ? если он через статику
Gevork
Оганнес я не про то, как правильно, а про то, как возможно.
Gevork
Статика сама по себе минус
Gevork
Но есть ситуации когда приходишь в проект где класс со 100500 методами статическими а-ля подход с названием ****Utils, и приходиться крутиться
Gevork
Я использую интерфейсы и реализации вместо статиков
Gevork
да, он называется RxUtils, ты угадал)
А зачем тебе трансформеры?
Gleb
А зачем тебе трансформеры?
это класс работы с сетью