flutter桌面端_阴阳师mac版设置

flutter桌面端_阴阳师mac版设置1. 如何使用Flutter mac 2. 如何获取FlutterUnit mac代码 FlutterUnit mac端,或说桌面端将在这个分支进行维护,和移动端独立。 3. 如何运行和打包 二、. FlutterUnit mac 功能简述 1. FlutterUnit主页界面…

零、前言

FlutterUnit【张风捷特烈】长期维护的一个开源项目。 欢迎star
经过一段时间的更新,FlutterUnit1.1已基本满足我的期望
目前正在逐渐增加优化组件的收录。现在mac版闪亮登场

FlutterUnit.apk 下载 FlutterUnit mac版 下载 Github仓库地址
flutter桌面端_阴阳师mac版设置 flutter桌面端_阴阳师mac版设置 flutter桌面端_阴阳师mac版设置
  • 镇楼图

flutter桌面端_阴阳师mac版设置


一、如何运行出FlutterUnit mac

1. 如何使用Flutter mac
目前稳定版(Stable)本并不支持macos,你可以切换到master分支进行体验。
  • 环境: 重新准备一个FlutterSDK,并使用flutter master分支
  • 开启macos 桌面支持: flutter config --enable-macos-desktop
---[• flutter config --enable-macos-desktop

---[• flutter --version
Flutter 1.18.0-7.0.pre.46 • channel master •
https://github.com/flutter/flutter.git
Framework • revision 1f132e90f8 (11 days ago) • 2020-04-23 11:00:12 +0530
Engine • revision d3f1c08f52
Tools • Dart 2.9.0 (build 2.9.0-2.0.dev 64b8ded48b)

2. 如何获取FlutterUnit mac代码
由于移动端和桌面端的情况有很大的不同,而且两者需要的SDK不同。
所以我并不在原移动端代码中进行适配,而是新建分支进行两个独立的项目。
其实两种完全不同的情景,并没有必要强行合一,否则会感觉到处束手束脚。
判断起来也会让代码变的复杂和难以阅读,独立维护也许是更好的选择。

flutter桌面端_阴阳师mac版设置


3. 如何运行和打包
  • 获取依赖包: flutter pub get
  • 运行命令: flutter run -d macos, 或直接通过AndroidStudio 选择设备运行

flutter桌面端_阴阳师mac版设置


  • 打包macos: flutter build macos,在build/macos/Build/Release中可以看到应用

flutter桌面端_阴阳师mac版设置


二、. FlutterUnit mac 功能简述

由于mac端录屏出的gif太大了,就不放动图了,所有功能同移动端
使用详情可参见: 【 FlutterUnit 食用指南】 开源篇
本文会说一下我做FlutterUnit mac端的原因和一些界面的变动。


1. FlutterUnit主页界面
  • 对于桌面来说,最麻烦的当属导航栏了,如果直接用底栏或顶栏,那会非常丑
  • 通常需要左栏,当然这些对于动手能力超强的我,都是小菜。有就用,没有就造。
  • 桌面程序一般都很宽,可以用GridView根据情况分多栏显示item,这样会好看些。

flutter桌面端_阴阳师mac版设置


2. 左滑菜单栏
  • 单击右侧导航栏底部的设置可以打开左侧的菜单
  • 也可以通过左边滑来打开左侧的菜单,菜单内容保持一致,功能保持一致

flutter桌面端_阴阳师mac版设置


3. 组件详情页
  • 调整相关组件和介绍的位置,同排显示,好看一些。

flutter桌面端_阴阳师mac版设置


  • 由于Share插件还不支持macos,这里代码分享的功能直接改成代码复制
  • 代码面板的展开功能依旧存在,可通过展开按钮进行展开。

flutter桌面端_阴阳师mac版设置


4.收藏集功能正常
  • 收藏集的增删改查操作移动端保持一致

flutter桌面端_阴阳师mac版设置

flutter桌面端_阴阳师mac版设置

flutter桌面端_阴阳师mac版设置

flutter桌面端_阴阳师mac版设置


5. 组件详情页的添加收藏

功能保持一致

flutter桌面端_阴阳师mac版设置

flutter桌面端_阴阳师mac版设置


6. 搜索页
  • 模糊查询

flutter桌面端_阴阳师mac版设置

  • 星级查询

flutter桌面端_阴阳师mac版设置

其实适配到macos我就花了小半天的时间。主要就是主页右边栏的设计和实现。
这也得益于项目的清晰,我知道哪些文件是干嘛的,所以抽离是很重要的,酌情抽出变量、方法或类,不要什么东西都塞在一起,一旦代码变动就是灭顶之灾。另外bloc维护的业务逻辑可以丝毫不动,只需将相关页面的一些结构进行调整即可,这也是bloc的优势。


三、做FlutterUnit mac端的原因

1. 其一: 装X
  • 如果活着不是为了装X,那一切都将毫无意义。----张风捷特烈

2. 其二: 让更多人知道flutter的桌面应用

我接触flutter也有一年半了,半年前开始从事flutter桌面应用的开发,踩过很多坑,也学到很多东西。一切的经历将我对flutter的理解提升了一个层次。可能很多人还在观望flutter在移动端的情况 。却已不知,flutter的桌面应用已在茁壮成长,特别是很多三方插件已经有macos支持。

一套代码运行在所有的设备上,我称为统一的跨平台解决方案,由于设备的应用场景不同,大小不同,强行进行适配感觉维护的成本太高,这是平台本身的局限性。
我越来越感觉Flutter 并非是一个统一的跨平台解决方案,而且可以给编程者一个跨平台的可能性。 其中最重要的一点是: 任何一个程序员,即使它不会C++、C#、Java、Js,也可以通过flutter/dart代码写出mac程序、写出windows程序、写出android程序、写出ios程序、写出linux程序、写出web程序,这就是Flutter所提供的可能性。做梦都没想过玩移动端的我能做出一个mac程序、写出一个windows程序

当然只会flutter/dart,瓶颈也会存在的,对于平台的特性你不太可能完全理解。但也无须了解所有的平台特性,毕竟软件的开发并非一个人的事。插件生态的日益丰富,会逐渐降低flutter开发者对平台的依赖性。对于特定领域、特定功能的软件、也许会出现各端的flutter插件师职业。
天下大势,合久必分,因为没有一个人可以抗住所有的事,一人玩转六端平台也不切实际精一而协同,各司其职,这是解决大问题的有效手段。就像人体由各种功能的细胞共同协作,维持个体生命,而不是一个万能细胞统合作用。

统一的跨平台解决方案是个美好而伟大的梦。就像让所有人都说一种语言沟通一样,也许只是一个梦而已。它也许不会终止于Flutter。但Flutter所提供的让编程者跨平台的可能性,就像一个万能的翻译机,这无疑是里程碑式的,会闪烁它的光芒。在此,虽然我个人能力微薄,但愿举起这星火,FlutterUnit将是这根火把,与我前行。你们要来,便随; 要离,便去, 皆与我无关。


3. 其三: 最重要的一点,为了数据维护的方便

其实除了FlutterUnit之外,之前还有一个FlutterUnit tool的项目
这个项目是用来维护数据库的。看过FlutterUnit源码的应该都知道,FlutterUnit是由本地数据库驱动的。没错,就是那个flutter.db。其中关于组件信息详情信息详情代码收藏集信息全部都储存在这个数据库中。

flutter桌面端_阴阳师mac版设置

但这样做有个很大的缺点: 数据的更新非常困难,比如修改了实例代码,或修复了文案,或者再拓展一个组件都要去修改数据库,这样维护的成本非常高。于是聪明的我想到了一个解决方案。定义规则解析规则。 于是我花了两天,对所以的组件源码进行重构,满足如下格式

/// create by 张风捷特烈 on 2020-03-24
/// contact me by email 1981462002@qq.com
/// 说明:
///
// {
// "widgetId": 34,
// "priority": 1,
// "name": "Divider颜色和粗细",
// "subtitle": "【color】: 颜色 【Color】\n"
// "【thickness】: 线粗细 【double】",
// }

import 'package:flutter/material.dart';

class CustomDivider extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var dataColor = [
      Colors.red, Colors.yellow,
      Colors.blue, Colors.green];
    var dataThickness = [1.0, 2.0, 4.0, 6.0];
    var data = Map.fromIterables(dataColor, dataThickness);
    return Column(
      children: dataColor
          .map((e) => Divider(
        color: e,
        thickness: data[e],
      ))
          .toList(),
    );
  }
}

通过node_parser.dart进行解析。爬取整个项目,一一解析生成bean。 再通过tool插入数据库中。这样一来,我可以随意修改和添加介绍组件的信息。只需不到1s的时间就能爬取全部所有文件进行数据同步,这就是工具带来的价值。但这价值的背后,是一个正则的匹配、规则的构思和实践的过程。遇到问题和解决问题的过程。当我写完整个工具时,那这感觉无疑是畅快的,是能力付诸于现实的快感。 当然这个工具我并未提交,也不会影响到FlutterUnit的任何展现。
使用mac的有点在于可以很方便地访问文件,进行爬取分析,这是移动端所不及的。

flutter桌面端_阴阳师mac版设置

最后挖个新坑: 我的个人博客正在整理中: king.toly1994.com/
不久的将来会有一个Flutter相关的长期更新计划。这时候适合喊一句:
我是张风捷特烈,那个要成为编程之王的男人


尾声

欢迎Star和关注FlutterUnit 的发展,让我们一起携手,成为Unit一员。
另外本人有一个Flutter微信交流群,欢迎小伙伴加入,共同探讨Flutter的问题,期待与你的交流与切磋。

@张风捷特烈 2019.04.04 未允禁转
我的公众号:编程之王
联系我--邮箱:1981462002@qq.com --微信:zdl1994328
~ END ~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13131.html

(0)

相关推荐

  • [20200401]优化的困惑5.txt[通俗易懂]

    [20200401]优化的困惑5.txt[通俗易懂][20200401]优化的困惑5.txt–//春节前对一个生产系统做优化,完成后使用ash_wait_chains.sql检查,发现control file parallel write有点多。–

    2023-02-13
    137
  • mysql按日期做曲线图统计,如果当天没有数据则日期不全、补全日期

    mysql按日期做曲线图统计,如果当天没有数据则日期不全、补全日期侵删。不足之处请谅解。 工作中遇到的问题: 不会就百度,多百度几次总会有自己需要的。比如这个曲线统计,我也是借用了博客里的各位大大,然后按照自己项目需求做的,页面给前端怼数据去就行,下面是步骤 1,用

    2023-02-12
    136
  • Kubernetes 部署 Nebula 图数据库集群[通俗易懂]

    Kubernetes 部署 Nebula 图数据库集群[通俗易懂]Kubernetes 是什么 Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效,Kubernetes 提供了…

    2023-01-31
    126
  • Python实现ithread登录

    Python实现ithread登录ithread是一款在线社区软件,是一种基于Web技术的BBS程序。ithread支持用户发表主题,并针对其他用户的主题做出评论或回复,在ithread社区上用户还可以商讨相关话题,发布个人动态,查看其他用户的动态等。

    2024-01-30
    111
  • win10环境下安装sql2000_mySQL安装

    win10环境下安装sql2000_mySQL安装下载mysql安装包,然后解压到你想安装的目录下,我下载的是mysql-8.0.18-winx64 Windows 上安装 MySQL 相对来说会较为简单,最新版本可以在 MySQL 下载&

    2022-12-29
    171
  • MySQL-进阶知识[亲测有效]

    MySQL-进阶知识[亲测有效]存储引擎 连接层:最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限 服务层:第二层架构主要完成大多数的核心服务

    2023-05-06
    138
  • Babelfish for PostgreSQL[亲测有效]

    Babelfish for PostgreSQL[亲测有效]Babelfish for PostgreSQL开源已快一月,不过全网还没有实践者总结。今天我们就测试看看,Babelfish到底是如何部署与使用的!

    2023-06-15
    160
  • 使用PyCharm进行Python开发

    使用PyCharm进行Python开发Python是一种高级编程语言,广泛应用于各种领域,如Web开发、数据科学、人工智能等。而PyCharm是一款功能强大的Python集成开发环境(IDE),具有强大的代码编辑、调试、测试和版本控制等功能,是Python程序员必不可少的工具之一。

    2024-04-25
    59

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注