10天用Flutter撸了个高仿携程App,含小米、腾讯、阿里

本文介绍了用Flutter快速构建类似携程App的实践,探讨了C#开发者如何利用Flutter进行界面开发。同时,文章深入讲解了网络通信的分层模型、TCP与UDP的区别、HTTP和HTTPS的工作原理,以及Java基础如StringBuilder、异常处理和容器类。此外,还涉及了数据结构和算法的基础知识。
摘要由CSDN通过智能技术生成

前言

众所周知,Xamarin应该是.net下的跨平台开发工具。2016年之前还处于收费状态,后被微软收购后开源。但似乎有个现象,开源后的Xamarin发展似乎有些停滞,而且维护Xamarin的团队又很固执不愿变通。社区多次建议UI层应该统一绘图引擎,而不是映射原生控件。

Xamarin.Forms给人的感觉就是性能差,动画僵硬,效果不好实现。以至于谷歌的Flutter火爆之后,Xamarin社区很多人便转移阵地,你在百度搜索Xamarin,第一个关键词就是xamarin还有人用么。

那么对于C#/.net开发者来说,唯一的问题就是界面,就有了开源项目Xamarin.Flutter,但过完年没多久,项目就Archived了,adamped说仅靠他和几个开发人员的业余时间很难搞定。但技术上确实可行,因为Skia在.net下本来就有绑定SkiaSharp,而Flutter底层便使用的Skia引擎。UIWidgets就是在Unity3D下的Flutter实现。那对于我们.net开发者有没有一种可能就是界面使用Flutter,业务逻辑采用C#呢,答案是可行的,请看如下分解。

网络:分层模型、TCP、UDP、HTTP、HTTPS

分层模型
  • 应用层:负责处理特定的应用程序细节,如 HTTP、FTP、DNS
  • 运输层:为两台主机提供端到端的基础通信,如 TCP、UDP
  • 网络层:控制分组传输、路由选择等,如 IP
  • 链路层:操作系统设备驱动程序、网卡相关接口
UDP
  • UDP 头结构:来源端口、目的端口、长度域、校验和
  • 特点:不可靠、无序、面向报文、速度快、轻量
  • 适用场景:适用于即时通讯、视频通话等
  • 应用:DHCP、DNS、QUCI、VXLAN、GTP-U、TFTP、SNMP
TCP
  • TCP 头结构:来源端口、目的端口、序号、确认序号、SYN/ACK 等状态位、窗口大小、校验和、紧急指针
  • 特点:面向字节流、有拥塞和流量控制、可靠、有序、速度慢、较重量,通过滑动窗口实现流量控制、用塞控制
  • 适用场景:文件传输、浏览器等
  • 应用:HTTP、HTTPS、RTMP、FTP、SMTP、POP3
  • 三次握手:
1\. C->S:SYN,seq=x(你能听到吗?)
2\. S->C:SYN,seq=y,ack=x+1(我能听到,你能听到吗?)
3\. C->S:ACK,seq=x+1,ack=y+1(我能听到,开始吧&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值