Ivansuper
В студии много чего не хватает так то
Ivansuper
Особенно по умолчанию
Ivansuper
Но ты можешь New -> Activity -> Navigation Drawer Activity
Dug
Имелось ввиду такой view
Ну ты можешь сам нарисовать)
Глеб
чтобы побыстрее отвязаться от этого я просто делал adapter.clean в резюме перед подключением презентера, ясно понятно это работает но как то не особо красиво загружать данные еще раз если они уже были, да и мне не понравился такой подход
От лишних перезагрузок, может спасти пару хаков 1) if (Objects.equals(mData, data)) return; - В сеттере адаптера н-р, да и везде 2) Список пусть хранит тот кто в адаптер данные принёс(LiveData, Observable и тд) - а его пусть хранит Retain-контейнер, моксиевский презентер, ViewModel, RetainFragment и пр самопис И только потом уже смотреть чо там с фрагментами.... лишнее пересоздавание или недоуничтожения и проч
Глеб
если это не проблема "живых данных" а проблема доставки "single-эвента", тут мож тоже чёнить провереное взять.... 🤔 мокси кричали - у них "крутые стратегии" я б LiveDat-ой пульнул (такой вариант норм, где-то сам гугл предлагал)
Глеб
чёт у них где-то в сэмплах был хитрый наследник лайв-даты который типа OneShot
Konstantin
самое забавное - я ни в одном куске кода не сомневаюсь который вне юи слоя
Konstantin
а в юи у меня кругом какие то костыли
Konstantin
не знаю даже как сформулировать чтбы начать обсуждать хаха, да что такое та
Глеб
а в юи у меня кругом какие то костыли
самое забавное в разработке что там где - ui, там и боли))
Глеб
так-то аргументы взял, калькуляцию какую-то осуществил и в result отдал 😂😂😂 как где-нибудь в консольных утилитах)
Konstantin
хорошо, начну с такого. контекст прост - single-activity-app; презентер - когда цеплять и отцеплять? уже был у меня такой вопрос ранее но искать лень ) на одном из экранов я попробовал кешировать данные сети в репозиторий, вроде как все ок. но не нравится задержка - экран пуст какие то доли секунды до получения данных, хотя они уже и хранятся локально. ада никакого там нет, просто презентер цепляется в резюме, а отцепляется в паузе. куда можно переместить его чтобы "чуть раньше" и точки attach/detach были симметричные?
Глеб
может, ... не помню.... ну да в тех samples где-то
voffka
как-то можно определить, что приложение запущено в симуляторе? или задам вопрос ширше - как нормально защититься взлома приложухи?
Vladimir
Никак
voffka
обфускаторы какие-нить? я вот помню для десктопного софта ASProtect был
Олександр 🇺🇦
proguard
Nikita
как передать помимо поискового запроса еще и предпочитаемую поисковую систему?
Igor
А у кого-нибудь такое было – меняешь в AppBarLayout видимость какой-то View на GONE/INVISIBLE и скpоллится список с @string/appbar_scrolling_view_behavior вниз, так, что часть попадает под AppBarLayout?
Iuriich
Изучаю kotlin. Почему ide не заставляет меня писать TextView? если findViewById может вернуть null?
Iuriich
Мне передали исходники, я уже поймал краш из за того что ид не существует. Неизвестно сколько еще может быть таких мест. Нельзя как то сделать чтобы ide видела эти переменные как потенциально Null?
Iuriich
Потому что вы указываете id искомого TextView
И это как то вроде противоречит фишке kotlina - null безопасность и всё такое, если метод может вернуть null почему нет предупреждения?
Кирилл
И это как то вроде противоречит фишке kotlina - null безопасность и всё такое, если метод может вернуть null почему нет предупреждения?
Ну потому что есть такие места, где лучше словить NPE, чем тысячу раз проверять на null. Это тот случай. Для того чтобы проверить, всё ли в порядке, вы должны просто запустить приложение. А теперь представьте: на каждое findViewById он будет возвращать View? и вам КАЖДЫЙ раз придётся для КАЖДОГО вызова прописывать nullable-вероятность. Ад, а не разработка. Так что здесь в качестве редкого исключения.
Iuriich
Подключи android extentions и работай с вьюхой по id
Предыдущие девелоперы на один viewholder завязали разные layoutы:) Отсюда и отсутствующие местами элементы
Max
Беги Форест
Iuriich
Не, для опыта лучше прохавать всё с самого низа:)
Alexey
Изучаю kotlin. Почему ide не заставляет меня писать TextView? если findViewById может вернуть null?
Types of Java declarations are treated specially in Kotlin and called platform types. Null-checks are relaxed for such types, so that safety guarantees for them are the same as in Java https://kotlinlang.org/docs/reference/java-interop.html
Iuriich
А законно ли viewholder использовать отдельно от recyclerview? Разбираю код, вижу что-то вроде: import kotlinx.android.synthetic.main.activity_gift.* override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_gift) timeLeftBaseViewHolder = TimeLeftBaseViewHolder(giftTimeLeftLayout) ... override fun onDestroy() { if (timeLeftBaseViewHolder != null) { giftBaseViewHolderTimerBehavior.onViewDetachedFromWindow(timeLeftBaseViewHolder!!) }
Anonymous
I added version control to my project and committed, but NOT pushed yet... Accidentally I reverted and lost all code can someone help please (Sorry for English it's hard to explain in Russian)
Iuriich
Check here
Iuriich
Better here
Iuriich
If you have not invalidated cache this must solve you problem
Anonymous
Okay I found what's next bro ?
Iuriich
Try to revert it back
Iuriich
Iuriich
Just select item that was ok for you
Anonymous
Anonymous
I just see this no codes
Anonymous
Anonymous
but here I can see all files on the right
Iuriich
Select history from "app" (left column)
Iuriich
Better here
Iuriich
Check history from left column
Iuriich
from "app"
Anonymous
Thanks bro, appreciate it 👍
Алексей
Добрый день Кто какие библиотеки для работы с бд может предложить? Я пока из популярных только RealM помню, хочу пощупать ближайшее время её и другие по-лучше
Кирилл
Александр
Добрый день Кто какие библиотеки для работы с бд может предложить? Я пока из популярных только RealM помню, хочу пощупать ближайшее время её и другие по-лучше
стоит только отметить, что Realm это не библиотека для работы с бд, а отдельная NQSql база данных. Тогда как Room это уже библиотека для удобной работы с SQLite. под капотом Realm и SQLite совершенно разные
Алексей
Вот оно как
Алексей
Спасибо
Alexander
Привет Кто-нибудь сталкивался с проблемой использования библиотек в проектах с котлином? Проблема в следубщем: студия отказывается видеть классы библиотек созданных ранее, но если создать новый библиотечный модуль и копировать туда все без изменений (исходники, build.gradle, манифест и т.д.), то все работает ок. Clean/Build, unvalidate caches и ручная чистка всего, до чего руки дотянулись не помогли
Алексей
Я так понял, что это бага то ли в плагине, то ли в студии
Алексей
У меня такое же было и тоже ничего не помогло (даже ./gradlew cleanBuildCache)
Alexander
и как с этим жить? только смена имен библиотек?
Max
из рубрики "о наболевшем" какого черта в дизайнере лайаут вечно возвращается наверх при любом изминении?
Valdis
ребят, вопрос по JavaDoc перед каждой функцией комментарий имеет вид /** * initialization of stage map */ а в самой функции необходимо таким же стилем или такого? //subtract the amount from owners total balance
Arka
Когда скролишь экран на дизайн-превью вниз, то есть там есть scrollview , делаешь связь объекта с другим, экран скролится автоматом обратно наверх, я думаю он про это
Valdis
А вы читали что такое javadoc, где и как его применять?
да, что из этого генерит доки по комментам функций но все же желательно коментить и код внутри функций, насколько я знаю
Max
Я даже потерял способность выражать свои мысли)
Aleksandr
Всем привет, подскажите такой вопрос. у меня есть некий networkmanger который я инджетю через дагер. @Inject protected NetworkManagerHelper mNetworkManagerHelper; вот таким образом. Он может вернуть мне состояние сети (есть нету интрнета). Как в тестах правильно поменять его состояние? завести замоканый, и просто через сеттер засунуть в тот класс где я его инжектю?
Ivan
дядя боб помнится топил за UML и что программисты будут не нужны
Aleksandr
мок именно хелпера? и потом засунуть его через set?
Ivan
ну может тогда и коментарии не нужны станут
Anonymous
Can someone help please, recyclerView is not showing on deploy ... <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context=".UserProfile.UserProfileFragment"> <ImageView android:id="@+id/profile_imageView" android:layout_width="match_parent" android:layout_height="200dp" android:layout_marginEnd="2dp" android:layout_marginStart="2dp" android:layout_marginTop="2dp" android:contentDescription="@string/user_profile_image" android:src="@drawable/com_facebook_profile_picture_blank_square" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <android.support.v7.widget.RecyclerView android:id="@+id/design_list" android:layout_width="300dp" android:layout_height="0dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginBottom="110dp" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/profile_imageView" /> <Button android:id="@+id/add_design" android:layout_width="300dp" android:layout_height="50dp" android:layout_marginBottom="55dp" android:background="@drawable/rounded_button_login" android:paddingLeft="5dp" android:paddingRight="5dp" android:text="@string/add_new_design" android:textColor="@color/colorWhite" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> </android.support.constraint.ConstraintLayout>
Anonymous
Anonymous