• Какая архитектура используется в больших компаниях?

    Серебряной пули нет, и архитектура будет зависеть от только от спкецифики проекта, используемых технологий, и опыта команды.
    Из того что я вижу - да, очень часто приложение приходит к чему-то похожему на MVVM/MVU/Flux, или даже сочетанию разных подходов
    Ответ написан
    Комментировать
  • Медленная загрузка RecyclerView, что делать?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Это решается очень просто - элементы "над списком" заносятся в сам список, нестед скролл выкидывается. См. getItemViewType в адаптере.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы по нажатию на итем в ListView открывался диалог с нужной мне информацией?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Короче начни с того, что выкинь ListView. Забудь о нём, как будто его не существует. Он учит плохому, все эти ArrayAdapter'ы - зло, за ними не видно, как надо делать правильно.
    Возьми RecyclerView. Он покажется тебе сложнее, но он заставит тебя делать правильнее.
    Уйди от списка строк. Список строк это ничто, нет у строки "эспрессо" никакого состава. У тебя должна быть моделька, POJO, в котором хранятся твои данные для одного элемента списка. В твоём случае это одна строчка? Прекрасно, это будет класс с одним полем. Дальше ты в этот же класс добавишь ещё одно поле - айди(id) этого элемента. По айди ты должен уметь однозначно получать и имя, и список ингридиентов.
    Дальше, когда ты напишешь кастомный адаптер к RecyclerView, тебе нужно будет проставить onClickListener на вьюхи. нажатия этого листенера ты должен прокинуть в свой интерфейс
    interface CoffeeSelectionListener {
        void onCoffeeSelected(int coffeeId);
    }

    Этот интерфейс-листенер должен приходить в твой адаптер снаружи, таким образом ты абстрагируешься от конкретного действия. И это хорошо.
    Снаружи проставь листенер, и по айдишнику находи список ингридиентов. Дальше показывай его.
    Упаси бог тебя показывать в AlertDialog'e. Возьми DialogFragment, потрать время, но сделай нормально. Никто уже не пользуется диалогами.

    Когда ты это сделаешь у тебя получится чуть-чуть лучшего качества код. Дальше надо будет абстрагироваться ещё.
    Ответ написан
    2 комментария