Flutter — это набор кроссплатформенных фреймворков пользовательского интерфейса с открытым исходным кодом, запущенных Google, которые могут быстро создавать высококачественные нативные пользовательские интерфейсы для Android, iOS и веб-платформ. В то же время Flutter также является комплектом разработки по умолчанию для недавно разработанной операционной системы Google Fuchsia. Во всем мире Flutter используется все большим количеством разработчиков и организаций, и Flutter полностью бесплатен и имеет открытый исходный код.
В настоящее время Flutter является самой популярной кросс-платформенной технологической структурой, которую все больше и больше разработчиков и организаций ищут. Поэтому не будет преувеличением сказать, что Flutter — самая популярная фронтенд-технология в 2019 году.
Как и в случае с другими внешними технологиями, технология Flutter пользуется популярностью благодаря идеальному сообществу и энтузиазму разработчиков, поэтому при разработке приложений Flutter мы будем более или менее использовать некоторые библиотеки сообщества с открытым исходным кодом, чтобы снизить затраты, связанные с нашим собственная упаковка.Стоимость времени, ниже приводится сводка библиотек, которые больше используются в разработке Flutter (в произвольном порядке).
Подобно внешнему механизму управления пакетами, пакеты зависимостей Flutter помещаются в файл pubspec.yaml, как показано ниже.
name: flutter_app
description: A new Flutter application.
version: 1.0.0+1
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
lpinyin: ^1.0.7
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
Среди них сторонние библиотеки, от которых мы зависим, размещены в узле зависимостей.
Дисплей пользовательского интерфейса
богатый текст
flutter_html_view
универсальный. горячий sirius.org/packages/legal…По умолчанию Flutter не предоставляет компонентов для отображения HTML, поэтому, если вы хотите отображать HTML, вам нужно использовать сторонний пакет, который может отображать HTML в собственных виджетах. Аналогичен плагину jsoup для Android.
flutter_html_textview
универсальный. горячий sirius.org/packages/legal…Отобразите html как виджет и отобразите html в текстовом представлении.
MarkDown
flutter_markdown
Универсальный.горячий sirius.org/packages/horse…
Библиотека, написанная на Dart, которая поддерживает просмотр Markdown, который преобразует Markdown в HTML на клиенте и сервере.
markdown
Универсальный. горячий sirius.org/packages/horse…Портативная библиотека Markdown, написанная на Dart. Он может анализировать Markdown в HTML как на клиенте, так и на сервере.
html2md
универсальный.горячий sirius.org/packages/contracts…Плагин, поддерживающий преобразование html в MarkDown.
анимация
flutter_villains
универсальный. горячий sirius.org/packages/legal…Библиотека анимаций переключения страниц, упрощающая операции с анимацией. При ее использовании вам нужно только управлять пользовательским интерфейсом.
экранизация
platform_aware
Универсальный. горячий sirius.org/packages/comments…Компоненты Flutter упакованы для автоматической адаптации к текущей платформе, никаких изменений кода для iOS и Android не требуется. Все виджеты полагаются на Theme.of(context).platform для определения платформы текущей активной платформы. Вы можете динамически менять платформы с помощью Flutter Inspector.
native_widgets
Универсальный горячий sirius.org/packages/that…Чтобы избежать дублирования кода, напишите код один раз для поддержки двух платформ и автоматически используйте соответствующие компоненты стиля в соответствии с платформой, Android будет использовать материальный дизайн, iOS будет использовать виджеты в стиле Купертино.
Календарь, библиотека выбора времени
flutter_calendar
универсальный. горячий sirius.org/packages/legal…Библиотека компонентов календаря Flutter немного отличается в отображении, потому что она вызывает собственную библиотеку компонентов.
calendarro
[https://pub.dartlang.org/packages/calendarro](https://pub.dartlang.org/packages/calendarro)
Библиотека компонентов календаря Flutter, эта библиотека предоставляет множество способов настройки компонентов.
flutter_picker
универсальный. горячий sirius.org/packages/legal…Селектор даты, времени, даты и времени, значка и пользовательских данных, которые можно расположить по центру или выдвинуть внизу. (В настоящее время это наиболее полный элемент управления селектором. Плагин поддерживает платформы ios и android и использует эффекты пользовательского интерфейса в стиле ios.)
Выбор цвета
flutter_color_picker
универсальный. горячий sirius.org/packages/legal…Простой селектор цвета, аналогичный функции селектора Android, может установить эффект селектора для элемента управления при щелчке элемента управления.
flutter_colorpicker
универсальный. горячий sirius.org/packages/legal…Средство выбора цвета HSV.
Панель навигации
navigation_bar
Универсальный горячий sirius.org/packages/that…Библиотека простой нижней панели навигации
fluro
универсальный. горячий sirius.org/packages/legal…Лучший фреймворк навигации по маршрутизации. Возможности: простая навигация по маршруту, обработчики функций (сопоставление с функциями вместо путей), сопоставление параметров с подстановочными знаками, анализ параметров строки запроса, встроенные общие преобразования, простое создание пользовательских преобразований.
Сеть и сериализация данных
сетевой запрос
http
универсальный.горячий sirius.org/packages/contracts… GitHub.com/Big Hot Sky-Wolf/Также…http — это библиотека сетевых запросов, изначально написанная на Dart, которая может легко реализовывать HTTP-запросы ресурсов, она не зависит от платформы и может использоваться в командной строке и в браузере.
HttpClient
HttpClient — это разновидность Http-запроса, предоставляемого библиотекой Dart IO, которая может реализовывать некоторые базовые Http-запросы. Однако HttpClient может выполнять только некоторые базовые сетевые запросы и не может выполнять некоторые сложные сетевые запросы.Например, часть типа содержимого тела запроса в POST не может поддерживаться, а тип передачи multipart/form-data еще не поддерживается.
dio
Универсальный.горячий sirius.org/packages/th…
Библиотека HTTP-запросов, предоставляемая сообществом Dart, не только поддерживает общие сетевые запросы, но также поддерживает такие операции, как Restful API, FormData, перехватчики, отмену запросов, управление файлами cookie, загрузку/выгрузку файлов и тайм-аут.
http_multi_server
универсальный.горячий sirius.org/packages/contracts…
Оболочка HttpServer, которую можно использовать для обработки запросов с нескольких серверов.
ps: Подробное описание использования сетевой библиотеки можно найти во введении к моей предыдущей статье:Сетевой запрос Http, разработанный Flutter
Сериализация
Сериализацию Flutter можно разделить на ручную сериализацию и сериализацию с помощью инструментов. Ручная сериализация относится к использованию встроенного декодера dart:convert, включая передачу необработанной строки JSON в метод JSON.decode(), а затем запрос Map
Кроме того, если используется синтаксический анализ json, вы также можете использовать кодируемую библиотеку, которая может преобразовывать динамические структурированные данные (JSON, YAML) в библиотеку типов Dart. Ниже приведено сравнение некоторых часто используемых библиотек синтаксического анализа json.
кодировать декодировать
Иногда в целях безопасности данных передаваемые данные или локально хранящиеся данные будут закодированы, декодированы, зашифрованы и расшифрованы.Если есть такая операция, можно использовать следующую библиотеку.
ninja
Универсальный горячий sirius.org/packages/your…Библиотека совершенных алгоритмов шифрования и дешифрования AES и RSA на интерфейсах Dart's Converter и Codec.
archive
Универсальный.горячий sirius.org/packages/AR…Предоставляет кодировщики и декодеры для различных форматов архивов и сжатия, таких как zip, tar, bzip2, gzip и zlib.
база данных
Если у вас есть требования, связанные с хранением и кэшированием данных, вы можете использовать следующие сторонние библиотеки.
sqflite
Универсальный горячий sirius.org/packages/thing…Плагин Flutter для SQLite, автономный высоконадежный встроенный механизм базы данных SQL.
file_cache
Универсальная лихорадка Sirius.org/packages/FI…Кэш Json, Buffer, FileCacheImage для проектов пакетов флаттера.
Загрузка и обработка изображений
загрузка изображения
В разработке Flutter изображение является важным модулем, в основном для загрузки и обработки изображений. Что касается загрузки изображений, помимо использования Image.network и FadeInImage.memoryNetwork компонента Image для загрузки изображений вы также можете использовать следующие библиотеки изображений для загрузки изображений.
cached_network_image
универсальный.горячий sirius.org/packages/wipe…Библиотека флаттера для отображения изображений из Интернета и их сохранения в каталоге кеша может использоваться для загрузки и кэширования изображений для Интернета, а также работает с заполнителями и виджетами ошибок.
flutter_advanced_networkimage
универсальный. горячий sirius.org/packages/legal…Библиотека Flutter для расширенной загрузки кеша изображений и управления масштабированием.
transparent_image
Универсальный горячий sirius.org/packages/suddenly…Простые прозрачные изображения, представленные как Uint8List, которые можно использовать в качестве заполнителей при загрузке изображений.
Обработка изображения
image_jpeg
Универсальный.горячий sirius.org/packages/IM…Он используется для преобразования изображения в формат jpeg, и более эффективно загружать изображение после сжатия. Библиотека в конечном итоге будет вызывать собственные функции Android или iOS для сжатия изображений, которые обладают высокой производительностью и поддерживают множество исходных форматов изображений.
image_picker
Как видно из названия библиотеки, image_picker — это библиотека для выбора изображений из библиотек изображений Android и iOS, которая поддерживает создание новых фотографий с помощью камеры.
photo
Универсальный. горячий sirius.org/packages/IM…Эту библиотеку также можно использовать для выбора изображений, она поддерживает множественный выбор, и эта библиотека представляет собой пользовательский интерфейс, созданный с помощью Flutter, который может легко настраивать и изменять стиль отображения.
image
Универсальный. горячий sirius.org/packages/IM…
Библиотека Dart, обеспечивающая возможность загрузки, сохранения и обработки изображений в различных форматах файлов. Библиотеке не нужно зависеть от DART:IO, поэтому ее можно использовать в серверных и веб-приложениях.
flutter_svg
универсальный. горячий sirius.org/packages/legal…Эту библиотеку можно использовать для загрузки изображений svg.
zoomable_image
Универсальный. Найдите Sirius.org/packages/…Библиотека изображений, которая поддерживает операции просмотра изображений и масштабирования с помощью жестов.
image_carousel
Универсальный. горячий sirius.org/packages/IM…Элемент управления для отображения изображения Flutter.По сравнению с официальным компонентом изображения, image_carousel поддерживает пролистывание влево и вправо для переключения между предыдущим и следующим изображением, а image_carousel также сочетает в себе функцию zoomable_image, поэтому вы можете щелкнуть и увеличить, чтобы просмотреть изображение, В дополнение к этому, image_carousel также поддерживает активные и сетевые изображения.
carousel_slider
универсальный.горячий sirius.org/packages/wipe…Как вы можете понять из названия, carousel_slider — это библиотека, которая поддерживает смахивание жестами, используя эту библиотеку, вы можете переключать компоненты изображения с помощью смахивания жестами, и эта библиотека также поддерживает автоматическое воспроизведение изображений.
parallax_image
Универсальный горячий sirius.org/packages/fear…Изображения параллакса можно использовать с любой прокручиваемой областью (например, ListVIEW), чтобы изображения, помещенные в область прокрутки, выглядели более плавно при прокрутке.
camera
универсальный.горячий sirius.org/packages/wipe…Используется для получения информации с системных камер Android и iOS, поддерживает предварительный просмотр каналов камер и захват изображений, а также поддерживает запись видео.
уведомление
flutter_local_notifications
универсальный. горячий sirius.org/packages/legal…Плагин, который может отображать локальные уведомления на разных платформах, поддерживает платформы Android и iOS.
local_notifications
Универсальный.Большая жара Sirius.org/packages/…С помощью этой библиотеки можно легко создавать уведомления на Android и iOS.
url_launcher
Универсальный горячий sirius.org/packages/u let…URL-адреса можно запускать на Android и iOS, поддерживая такие сценарии, как открытие Интернета, телефонные звонки, текстовые сообщения и электронные письма.
firebase_messaging
Универсальная лихорадка Sirius.org/packages/FI…Кроссплатформенное решение для обмена сообщениями, позволяющее надежно доставлять сообщения на Android и iOS.
event_bus
Универсальный. горячий sirius.org/packages/EV…Простая библиотека шины событий, которая использует потоки Dart для разделения приложений, подобно механизму шины событий в Android, и использует внутренний механизм широковещания.
Видео и аудио
В разработке Flutter может участвовать разработка воспроизведения видео и аудио.В дополнение к компонентам, предоставляемым Flutter, также могут использоваться некоторые сторонние библиотеки с открытым исходным кодом.
video_player
Универсальный. горячий sirius.org/packages/vi…Официально поддерживаемый плагин воспроизведения видео для отображения встроенных видео вместе с другими виджетами Flutter на Android и iOS.
video_launcher
Универсальный. горячий sirius.org/packages/vi…В основном используется для видеоплееров.
flute_music_player
универсальный. горячий sirius.org/packages/legal…Музыкальный проигрыватель на основе Flutter и воспроизведение аудиоплагинов поддерживают воспроизведение локальных музыкальных файлов.
audioplayer
Универсальный.горячий sirius.org/packages/AU…Аудио-плагин Flutter, который воспроизводит удаленные или локальные аудиофайлы.
audioplayers
Универсальный.горячий sirius.org/packages/AU…Разветвление аудиоплеера, за исключением того, что он поддерживает одновременное воспроизведение нескольких аудиофайлов и отображает элементы управления громкостью.
разное
Кроме того, такие как карты, QR-коды, библиотеки диаграмм, библиотеки разрешений и совместное использование и т. д. также встречаются в повседневной разработке.
карта
map_view
Универсальный. горячий sirius.org/packages/horse…Плагин Flutter для отображения Google Maps на iOS и Android.
flutter_map
универсальный. горячий sirius.org/packages/legal…Пакет карт Flutter на основе листовки.
location
Универсальный.Большая жара Sirius.org/packages/…Обрабатывает местоположение на Android и iOS, предоставляя обратные вызовы при изменении местоположения.
latlong
Универсальный. горячий sirius.org/packages/pull…LatLong — это легкая библиотека для вычисления общей широты и долготы.
QR код
qr_flutter
Универсальный. горячий sirius.org/packages/confirmed…qr_flutter — это библиотека Flutter для QR-кодов, которая обеспечивает простую и быструю визуализацию QR-кода с помощью виджета или пользовательского Paint.
barcode_scan
Универсальный.горячий sirius.org/packages/put…barcode_scan — это плагин Flutter для сканирования 2D-штрих-кодов и QR-кодов.
qrcode_reader
Универсальный. горячий sirius.org/packages/confirmed…qrcode_reader — это плагин Flutter, который использует камеру для чтения QR-кодов.
Библиотека диаграмм
Во многих случаях разработка диаграмм также является относительно распространенным требованием к разработке.Если у вас есть требования к разработке диаграмм, вы можете использовать следующие библиотеки с открытым исходным кодом.
charts-common
Универсальный горячий sirius.org/packages/eat…Библиотека диаграмм в стиле Material Design.
charts-flutter
Универсальный горячий sirius.org/packages/eat…Универсальный компонент библиотеки диаграмм предоставляет базовые гистограммы, линейные диаграммы, круговые диаграммы и т. д.
flutter_circular_chart
универсальный. горячий sirius.org/packages/legal…Библиотека, позволяющая легко создавать анимированные элементы управления круговой диаграммой с помощью Flutter.
разрешение
Во время разработки, если вы хотите подать заявку на разрешение в системе, вы можете использовать библиотеку разрешений для подачи заявки.
simple_permissions
Универсальный. горячий sirius.org/packages/4…Библиотека разрешений запросов для Android и iOS.
flutter_simple_permissions
универсальный. горячий sirius.org/packages/legal…Библиотека для приложения разрешений Flutter.
поделитесь статистикой оплаты
share
Универсальный горячий sirius.org/packages/ это…Плагин флаттера, который поддерживает обмен.
flutter_umeng_analytics
универсальный. горячий sirius.org/packages/legal…Библиотека обмена и статистики Umeng.
flutter_qq
универсальный. горячий sirius.org/packages/legal…Библиотека, которая объединяет такие функции, как вход в систему QQ, совместное использование QQ и совместное использование пространства QQ.
flutter_wechat
универсальный. горячий sirius.org/packages/legal…Библиотека, которая интегрирует WeChat и поддерживает вход в WeChat, совместное использование, оплату и другие функции.
flutter_alipay
универсальный. горячий sirius.org/packages/legal…Реализована функция вызова Alipay для оплаты, которая совместима с Android и iOS.
Исходный код приложения с открытым исходным кодом
Самый эффективный способ изучить технологию — написать небольшое приложение после изучения основ. Как самая популярная кроссплатформенная технология в этом году (не одна из них), в Интернете появилось большое количество исходных кодов приложений с открытым исходным кодом, Читая эти исходные коды, мы можем быстро углубить разработку приложений Flutter.
flutter-go
GitHub.com/Alibaba/Приложение…
Приложение помощи разработчику Flutter, разработанное технической командой Alibaba, включает в себя демонстрации и китайские документы более чем 140 компонентов, обычно используемых во флаттере, и является важным руководством для изучения разработки Flutter.
gsy_github_app_flutter
GitHub.com/car GU O/GS YG…Преимущества серии GSYGithubApp: в настоящее время у нас есть четыре версии Flutter, Weex, ReactNative и kotlin. Полные функции, обширный технический охват в рамках проекта, высокая степень завершенности, постоянное обслуживание, вспомогательные статьи, подходящие для всестороннего изучения, сравнения и справок. Кроссплатформенное клиентское приложение Github с открытым исходным кодом, улучшенный опыт, более богатые функции, разработанные для лучшего ежедневного управления и обслуживания личного Github, а также для обеспечения лучшего и более удобного вождения Σ( ̄. ̄ノ)ノ.
flutter-examples
GitHub.com/Ваш доход исходит от/Приложение…
Содержит общие примеры обучения для Flutter.
flutter-osc
GitHub.com/Yubo725/Приложение…
Китайский клиент с открытым исходным кодом на основе Google Flutter, поддерживает Android и iOS.
FlutterDouBan
Клиент Flutter Douban, Awesome Flutter Project, самый 100% восстановленный клиент Douban во всей сети. Основные функции включают домашнюю страницу, книгу, видео, группу, рынок и личный центр.
zhihu-flutter
GitHub.com/Sequel имеет/только…
Сильно имитированное приложение Zhihu Flutter, которое поддерживает переключение черной темы.
flutter_shuqi
Новый клиент с высокой имитацией книги, все функции написаны на Dart, а уровень повторного использования кода iOS и Android достиг 100%.
flutter-netease-music
GitHub.com/Beyond01/Приложение…Высокая имитация NetEase Cloud Music, полная высокая имитация большинства функций.
NeteaseCloudMusic
Высокая имитация последней версии NetEase Cloud Music, использование интерфейсаBinaryify Big Guy - NeteaseCloudMusicApi
Morec
Это очень красивая версия клиента фильмов на Flutter, использующая существующий API Douban для создания полноценного приложения для просмотра фильмов. Детали идеальны, это полностью разработанный продукт, а не демоверсия.
flutter_boss
GitHub.com/и швейцарская армия/юридические…Приложение Flutter, имитирующее прямой набор Босса.
awesome-flutter-cn
GitHub.com/блог сумасшедшего кода…
Flutter — это SDK, созданный Google для разработки высокопроизводительных кроссплатформенных приложений с высокой точностью воспроизведения (Android iOS). awesome-flutter-cn — это учебная библиотека для Flutter, и новички могут обращаться к ней для обучения.