1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xiaweizi-SimplicityWeather

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

简悦天气

Простота без примитивности, богатство без сложности.

Это проект с лаконичным стилем оформления, созданный на Flutter. Он предоставляет услуги в реальном времени, а также прогнозы погоды на несколько дней и 24 часа, включая информацию о тайфунах и индексе качества жизни. Поддерживает геолокацию, удаление, поиск, голосовые оповещения и другие функции.

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

Если изображение не отображается, перейдите по ссылке 『Flutter』一款风格简约功能丰富的天气.

Опыт использования

Скачайте приложение по ссылке для скачивания 下载链接 или отсканируйте QR-код для предварительного ознакомления.

Третья группа

Описание функций

В настоящее время поддерживаются следующие функции:

  • Автоматическое определение местоположения;
  • Добавление и удаление городов;
  • Информация в реальном времени;
  • Прогноз на 24 часа и на несколько дней;
  • Богатый индекс качества жизни;
  • Путь тайфуна;
  • Фоновое размытие по Гауссу;
  • Динамические карточки осадков;
  • Автообновление;
  • Разнообразные эффекты погоды (эффекты грозы);
  • Автоматическое обновление;
  • Голосовое оповещение;
  • Смена погоды одним нажатием: станьте экспертом по погоде.

Далее представлены три группы предупреждений.

Первая группа

Вторая группа

Третья группа

Смена погоды одним нажатием

Эффекты погоды разделены на три слоя:

  • Слой цвета фона. Эффект градиента сверху вниз.
  • Слой облаков. Только одно изображение, которое перемещается, изменяется в количестве и окрашивается для достижения различных эффектов.
  • Слой дождя и снега. Для дождливой и снежной погоды была создана отдельная анимация, которая выглядит очень эффектно.

На данный момент поддерживается до 12 различных типов погоды, включая солнечную, облачную, пасмурную, небольшой, умеренный и сильный дождь, небольшой, умеренный и сильный снег, туман, смог, пыль, чтобы сделать его ещё лучше. На странице информации о погоде есть кнопка вверху для переключения типа погоды. В режиме реального времени можно просматривать различные фоновые эффекты при разной погоде. Ниже представлены GIF-изображения, демонстрирующие эффект. Из-за ограничений самого формата GIF, возможно, будет наблюдаться размытость при низкой частоте кадров. Рекомендуется скачать apk для личного опыта.

home page list grid check

Техническое описание

Хотя этот проект прост, он охватывает множество технических аспектов Flutter, которые могут удовлетворить потребности в разработке небольших проектов.

Фактически, от начала изучения Flutter до завершения этого проекта потребовалось всего два уикенда, плюс время после работы. Код немного поспешный, многие вещи можно было бы инкапсулировать, и есть большой потенциал для оптимизации логики рисования. Планируется провести оптимизацию позже.

Вот краткое изложение технических аспектов:

  • Сетевые запросы и кэширование данных;
  • SDK Baidu Location и автоматическое определение местоположения;
  • Пользовательские представления, анимация и виджеты;
  • Интеграция со сторонней статистикой и плагинами;
  • Управление состоянием, обмен данными между страницами и передача данных между страницами;
  • Адаптация экрана, инкапсуляция общих компонентов.

Здесь специально выделены пользовательские представления и анимация. В проекте представлено множество диаграмм, включая диаграммы качества воздуха и влажности, графики восхода и захода солнца и графики 24-часовых и многодневных прогнозов. Фактически, принцип рисования аналогичен рисованию на Android, включая дизайн интерфейса. Есть холст для рисования и кисть для рисования, что значительно упрощает процесс.

Имея опыт рисования на Android, разработка идёт очень быстро. Эти несколько графиков можно завершить менее чем за день. Всё, что нужно сделать, это загрузить данные и нарисовать их в соответствии с полученными данными. Позже будет отдельно представлена логика рисования этой части.

Библиотеки зависимостей

Почему Flutter сейчас так популярен, и почему разработка настолько эффективна? Помимо того, что Google является крупным игроком, большую роль играет активное сообщество с открытым исходным кодом. pub.dev предлагает множество стабильных и разнообразных плагинов, экономя время разработки и позволяя выбирать в зависимости от конкретных потребностей.

Точно так же в проекте Simplicity Weather используется множество зависимых плагинов. Вот список и описание:

Плагин Описание
flutter_weather_bg Разработанный автором динамический фон погоды
flutter_bloc Не требует пояснений, мощный, как новичок, больше не нужно беспокоиться о совместном использовании и обновлении данных
shared_preferences Часто используемый для сохранения данных в течение длительного времени
dio Конечно, хороший сетевой фреймворк необходим для сетевых запросов, и проект использует только базовый GET-запрос
amap_location_fluttify Плагин Baidu для определения местоположения, хотя и имеет некоторые проблемы, но удовлетворяет основные потребности
location_permissions Плагин для запроса разрешения на определение местоположения
event_bus Обновление событий
flutter_slidable Мощный плагин для скольжения
umeng_analytics_plugin Плагин статистики Umeng
flutter_screenutil Инструмент для адаптации экрана
modal_bottom_sheet Нижний всплывающий лист
path_drawing Используется для рисования пунктирных линий
url_launcher Универсальный инструмент для перехода
package_info Получение информации о пакете

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Проект погоды во Flutter в минималистичном стиле, который предоставляет услуги с информацией о погоде в реальном времени, прогнозом на несколько дней, траекторией тайфуна и индексом качества жизни. Поддерживает операции позиционирования, удаления и поиска. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xiaweizi-SimplicityWeather.git
git@api.gitlife.ru:oschina-mirror/xiaweizi-SimplicityWeather.git
oschina-mirror
xiaweizi-SimplicityWeather
xiaweizi-SimplicityWeather
master