开源项目——FLutter/iOS/Android编写的三个计算器APP
文章图片
前端时间使用Flutter,iOS,Android三种技术编写了三个相同功能的计算器APP,github地址。
ios_calculator
1.项目简介
使用Swift编写的IOS APP,实现了计算器的常见功能。
2.环境简介
语言:Swift 5.4
UI框架:UIKit
包管理工具:CocoaPods
布局框架:SnapKit 5.0.0
3.项目截图
文章图片
4.开发流程与代码逻辑简述
- 打开Xcode创建IOS APP项目。
- 引入包管理工具和框架。
- 编写布局类,继承UIView。编写Button组件,继承UIButton。
- 封装计算逻辑工具类。
- 在ViewController中引入布局文件,通过布局类中的按钮点击协议完成计算器的计算逻辑。
- Swift基础语法
- UIKit使用
- SnapKit使用
- CocoaPods使用
sudo gem install cocoapods pod init pod install
M1 mac安装有问题
- Swift中的协议
android_calculator 1.项目简介 使用java编写的Android APP,实现了计算器的常见功能。
2.环境简介 语言:java 1.8
依赖库:详见android_calculator/app/build.gradle下的dependencies
3.项目截图
文章图片
4.开发流程与代码逻辑简述
- 编写布局xml,使用
constraintlayout
布局 activity
中注册控件,监听点击事件- 点击=号时执行计算逻辑
- java基础语法
- 安卓开发官网
constraintlayout
布局
写之前看了一下其他的开源项目,参考了一下布局,学习了
constraintlayout
布局,其实本来想用jetpack试一下,不过自己kotlin还没学,而且学到太多也有点记不住,就放弃了。可能需要歇一歇再继续。
flutter_calculator 1.项目简介 使用dart编写的Flutter APP,实现了计算器的常见功能。
2.环境简介 语言:Dart 2.14
框架版本:Flutter stable, 2.0.6
3.项目截图
文章图片
4.开发流程与代码逻辑简述
- Gridview和Expanded实现布局
- Dart语法
- FLutter基础
android/iOS/flutter 三种技术写同一种APP本意是为了熟悉一下近来学习的android和iOS,flutter算是添头,写一下玩一玩。不过通过这次项目的编写,让我觉得其实很多的技术都是在做类似的事情,变化的只不过是API。用Icon,用RN,用FLutter,用Android,用IOS都可以写出APP来,成为大前端,也就是掌握多种可以做同一个事情的技术,会一种和会多种只不过是谁记住了更多的API。
最近在做一个移动端即时通讯的需求,读了一些技术博客,这些博客不是为了Flutter而写,他讲述的是客户端和服务器端整个的处理即时通讯的流程,客户端开启连接,心跳检测,创建本地数据库,服务端接收到消息再转发到客户端,等等。这让我觉得在业务开发上重要的其实不是语言或者技术,而是这种整体的,解决问题的思路,思路才是灵魂,语言和框架只不过是实现这种思路的工具。
工作已经两年了,感觉自己就是个API boy,掌握了很多的API,前端,客户端,服务端都写过,学过的语言都有七种了,以至于现在不是工作用到的技术,很多细节都想不起来了。可是这些API有多少是可以迁移的呢,过了几年有了新的语言,新的框架,所谓的编程经验也跟着清零。基于这种考虑,让我想到去学习计算机基础,学一学经久不衰的计算机科学,不能满足于学习API。从技术投资的角度来讲,肯定是希望自己学习的技术永远不过时,现在来看只有计算机科学有这样的特性,准备学一学试一试。当我认识到我可能会从事十几年的计算机行业后,我觉得不能再为了面试而学习了,应该学一些真正的可以贯穿整个职业生涯的知识。
从资本的角度出发,不管跨平台写出来的APP有多烂,跨平台还是提高了员工生产力。从我自己的角度出发,我觉得跨平台也是一种很好的技术方案,本来都是做的类似的事情,何必要用那么多种语言,那么多种框架,当Flutter web正式版出了之后,我就放弃了JS技术栈的学习,学习多种技术做同一种东西在我看来毫无意义。即使FLutter不是终极方案,我觉得跨端是不会消失的,只要还有各种各样的端存在,跨端技术就会存在。
我觉得一名好的跨端工程师不只是掌握跨端技术,能够写端上的应用,也应该熟悉端的特性,能够解决对应端的特定问题。自己未来一年里,除去基础知识的学习外,也会朝着这个目标前进。未来的一年内,也会寻找机会为开源社区做出贡献。技术在我这里分两种,一种是应该学的技术,所谓应该学的技术就是市场需要什么样的技术人才,对应的就是就是应该学的技术。另一种是感兴趣的技术,感兴趣的技术就全凭自己的心意,想学点什么就学点什么。
这两年来多半是在学应该学的技术,很多想做的事情,感兴趣的技术都被排在后面了,现在想一想如果当初不是对Flutter产生了兴趣,自己也不会在这两年里取得这么大的进步。其实做正确的事情我只是全凭意志力在坚持,而做感兴趣的东西会让我感到快乐和兴奋,生活已经够艰难了,还是应该让自己快乐一些,接下来一两年的时间里,我决定多学习一些自己感兴趣的知识,做自己真正想做的事情。做正确的事情,取得世俗意义上的成功,对自己来说毫无意义。做自己想做的事情,成为自己想成为的人,才是最有意义的事情。人生还长着呢,如果这一两年发现做自己感兴趣的东西完全行不通,到时候再调整方向也来得及。
我虽然希望一年后的自己成功,但我更希望一年后的自己快乐。人生一辈子都追求正确,虽然能有一个好的结果,但是也会错过一些其他的风景,我决定去看看这些风景。
“我支持你,加油!”
【开源项目——FLutter/iOS/Android编写的三个计算器APP】
文章图片
推荐阅读
- 急于表达——往往欲速则不达
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 2019-02-13——今天谈梦想()
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Ⅴ爱阅读,亲子互动——打卡第178天
- 低头思故乡——只是因为睡不着
- 取名——兰
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 广角叙述|广角叙述 展众生群像——试析鲁迅《示众》的展示艺术