Хобрук: Ваш путь к мастерству в программировании

необходимо выполнить горячую перезагрузку для запуска приложения

Я работаю над приложением Flutter, которое использует Firebase и Stream для отображения представления списка, если данные в Firebase имеют значение! = Null. Если данные равны нулю, мой код отображает знак загрузки. Каждый раз, когда я запускаю свое приложение, первым делом появляется символ загрузки, который не исчезает, пока я не перезагружу приложение. Когда я снова выполняю «горячий перезапуск», мне нужно выполнить «горячую» перезагрузку для отображения данных. Если я когда-нибудь опубликую свое приложение, эта проблема возникнет у пользователей или это только потому, что я нахожусь в режиме отладки в своем симуляторе? Если это проблема, которая может возникнуть при публикации приложения, кто-нибудь знает, как это исправить?

код:

  Widget MemoirsList() {
    return SingleChildScrollView(
      child: memoirsStream != null
          ? Column(
              children: <Widget>[
                StreamBuilder(
                  stream: memoirsStream,
                  builder: (context, snapshot) {
                    return ListView.builder(
                        padding: EdgeInsets.symmetric(horizontal: 16),
                        itemCount: snapshot.data.documents.length,
                        shrinkWrap: true,
                        physics: NeverScrollableScrollPhysics(),
                        itemBuilder: (context, index) {
                          return MemoirsCard(
                            authorName: snapshot.data.documents[index].data['authorName'],
                            title: snapshot.data.documents[index].data["title"],
                            description: snapshot.data.documents[index].data['description'],
                            imgUrl: snapshot.data.documents[index].data['imgURL'],
                          );
                        });
                  },
                )
              ],
            )
          : Container(
              alignment: Alignment.center,
              child: CircularProgressIndicator(),
          ),
    );
  }
23.06.2020

Ответы:


1

Это определенно связано с режимом отладки. Я тоже часто сталкивался с этой проблемой. Попробуйте собрать его в режиме выпуска, и он должен работать нормально. Размер приложения отладочной сборки велик из-за накладных расходов на отладку, которые позволяют выполнять горячую перезагрузку и отладку на уровне исходного кода.

При создании окончательной версии приложения рассмотрите возможность использования тега --split-debug-info. Этот тег может значительно уменьшить размер кода. Пример использования этого тега см. В разделе Обфускация кода Dart.

Чтобы уменьшить размер приложения, вы можете также сделать следующее:

  • Удалите неиспользуемые ресурсы
  • Минимизировать ресурсы, импортированные из библиотек
  • Поддержка ограниченного количества плотностей экрана
  • Сжимайте файлы PNG и JPEG

Чтобы создать окончательную версию для Android

Чтобы создать версию выпуска для IOS

23.06.2020
Новые материалы

Решения DBA Metrix
DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

Начало работы с Блум
Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

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

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...