Pull to refresh
46
0
Макс Ровкин @andreich

senior android developer

Send message
1) когда мне надо поменять объект, я меняю отвязанный от реалма, и сохраняю через репозиторий. Поиск по спискам я делаю либо с помощью Rx, либо с помощью extention методов к колекциям в котлин. Все зависит от ситуации. В котлине это выглядело бы примерно так:
val kid = parent.kidlist.firstOrNull { kid -> kid.name == "Piter"}


2) возможно так и есть, но городить пул потоков — это преждевременная оптимизация, вот когда начнутся тормоза в текущем вариант — я задумаюсь, сейчас все работает достаточно быстро. Никакого callback-hell у меня нет, везде rxjava. Делать операции с БД в UI — сомнительное занятие, на мой взгляд, но тут дело каждого.

4) тестирование реалма — это вообще отдельная тема, к тому же холиварная.
ну в ту ветку :(
Подход хороший, только вот пример совсем неудачный, не надо так работать с активити :)
Нет, если включить поддержку векторов. В Саппорте есть такое
Вообще, у меня не вызывает проблем работа с реалмом уже давненько.

1) Вся работа с реалмом у меня ведется изолированно через репозиторий. Ни каких active records у меня нет, так как я предпочитаю работать с иммутабельными объектами, с ними меньше непредсказуемых поведений. Кстати, это же и устраняет проблему с RealmList

2) Работа с реалмом всегда ведется в фоновом потоке, на каждый запрос создается инстанс и закрывается после выполнения. Никаких проблем с производительностью я не заметил. Тут очень поможет reactive подход. Написал один раз и радуешься потом.

3) Касательно множетственного наследования: в java его как бы вообще нет. Я понял о чем речь идет, что в цепочке наследования не может быть ничего, кроме RealmObject, но это немного другое.

4) На счет тестов, да, тут проблема, но надо мокать не реалм, а репозиторий в принципе, потому что логики в репозитории должно быть минимум. Если тестировать его — то это уже интеграционные тесты. Последние с реалимом надо запускать сразу на дейвасе.
Интересно читать чужой опыт, но надо было разбить статью на несколько и сделать серию. Дело в том, что получилась солянка. Да и читать несколько маленьких статей проще, чем одну огромную.
что касается импорта пачки svg, то можно воспользоваться вот этим плагином, он ковертнет svg в Vector drawable
да и сейчас вроде ничего так
да, но это немного другое.
Вообще в java, а котлин больше в эту сторону, можно получить стектрейс текущего потока как-то так
Thread.currentThread().getStackTrace().
Про остальное не скажу, но вот на счет колбеков и async-await, то в котлине стектрейс сохраняется. Да и вообще, без колбеков в андроид разработке сложновато будет жить. Что касается производительности, то за многие вкусности приходится платить. Обычно тут вопрос стоит ли оно того или нет.
Если приложение установлено как системное, то удалить его нельзя. Можно удалить любое приложение, которое пользователь сам устанавливал.
Сплэш может быть идеальным местом для инициализации нативных библиотек.
Я, например, сделал там инициализацию ретрофита, AndroidThreeTen и настройку Realm.
Мне кажется проблему backpressure библиотека не должна решать. Это должен делать пользователь библиотеки. Потому что как минимум не один вариант можно выбрать.
боюсь, что в 2гис они полностью все сами писали, потому что там QT используется
я рассматриваю разделение точкой только для смысловых блоков, тогда как в блоке нижним подчеркиванием разделяю слова, относящиеся к блоку.
например так
<string name="shopping_list.category.other">Другое</string>

На мой взгляд выгляди лаконичней, в сравнении с таким вариантом
<string name="shopping_list_category_other">Другое</string>
Для себя заметил, что когда разделяешь сроки по экранам префиксами, то удобней пользоваться точками, нежели нижним подчеркиванием.
Я, например, делаю вот так, профит замечаешь позже, главное не скатиться с такого именования
<string name="history.status.received">Получен</string>
<string name="history.status.canceled">Отклонен</string>


В java коде правда это автоматом заменяется на такую конструкцию
R.string.history_status_receiverd

Но мне все равно нравится
логин можно поменять на символьный
RxLoader да, давненько не обновляли. Но мой вариант относительно свежий :)

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity