【- Flutter 桌面篇 -】 FlutterUnit mac版闪亮登场


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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


二、. FlutterUnit mac 功能简述

由于mac端录屏出的gif太大了,就不放动图了,所有功能同移动端

使用详情可参见: 【 FlutterUnit 食用指南】 开源篇
本文会说一下我做FlutterUnit mac端的原因和一些界面的变动。


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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


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

功能保持一致

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


6. 搜索页
  • 模糊查询

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 星级查询

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其实适配到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。其中关于组件信息详情信息详情代码收藏集信息全部都储存在这个数据库中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

于是我花了两天,对所以的组件源码进行重构,满足如下格式

/// 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(),
);
}
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

选定你想去的几家公司后,先去一些小的公司练练,学习下面试技巧,总结下,也算是熟悉下面试氛围,平时和同事或者产品PK时可以讲得头头是道,思路清晰至极,到了现场真的不一样,怎么描述你所做的一切,这绝对是个学术性问题!

面试过程一定要有礼貌!即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也一定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-L5Jjmdgu-1713431800310)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值