SwiftUI 开源项目

  • 前言
  • 主要特色
  • 项目技术
  • 项目预览
    • 1. 不需要开启服务端
      • 1.1 用户列表
    • 2. 需要开启服务端
      • 2.1 消息列表
      • 2.2 会议列表
  • 运行教程
    • 运行 IOS 项目
    • 运行服务端项目
      • 数据库相关
      • 文件上传目录
      • 后台接口文档

Gitee 地址:https://gitee.com/szluyu99/ZYSwiftUIFrame

Github 地址:https://github.com/szluyu99/ZYSwiftUIFrame

本项目主要维护 Github 地址,同时会同步将其推送到 Gitee 地址(相当于镜像)

前言

我并不是专业的 IOS 开发人员,之前也没有接触过 IOS,但是因为某些原因,团队需要开发一个 IOS App,然后我便接触到了 Swift 和 SwiftUI,当然,我并没有学 OC 和 UIKit。该项目中几乎没有用到 UIKit 相关的东西(有也是谷歌搜索到了代码直接复制一下),基本上完全使用 SwiftUI 进行开发。

总觉得以后应该不会再和 IOS 有太多交集,但是好歹也是钻研了这么一段时间的技术,总希望能留下点什么东西,因此就诞生了这个项目。我试图将我开发 IOS 时学习和积累到的知识点和技术尽可能的集成到这个项目中,该框架也许会不停的迭代(如果我还有机会接触 IOS 的话)。

再次申明,我并不是专业的 IOS 开发人员,很多代码风格和思维,也许都是其他项目的开发经验,欢迎探讨。

希望我的项目能为 SwiftUI 带来一丝丝微弱的光芒。

主要特色

从我这么一个对 IOS 完全零基础的人的角度来看,我之前查询过很多项目,但是很多项目的功能性都是比较偏向某面,大多都是着力于视图层或其他功能性,很少能遇到比较完整的项目(可能我的看法并不专业)。而且 SwiftUI 开发中必然会遇到一些拦路虎如:下拉刷新、上拉加载、显示网络图片等,主要原因是因为 SwiftUI 目前还不是特别成熟,但是它作为未来的趋势是必然的。

该 SwiftUI 项目包含完整的:网络请求、下拉刷新、上拉加载更多、数据增删改查、图片上传、图片预览等功能(后续还会继续更新),代码中抽取成了框架体系:例如通用 ViewModel 等,很适合进行快速开发。

项目特色:

  • 拥有服务端项目,为了模拟实际的项目场景,我使用 Go 开发的
  • 包含网络请求部分,结合上面服务端,实现了对数据库数据的增删改查
  • 即使不运行服务端,项目也有单机 Demo,供你快速了解其主要功能
  • 封装了丝滑的上拉刷新、下拉加载更多(基于 BBSwiftUIKit),也可以模仿我的代码自行封装
  • 代码优雅、风格整洁,注释比较详细
  • 待更新…

项目技术

IOS 技术栈:基于 Swift 语言

  • SwiftUI

服务端技术栈:基于 Go 语言

  • Web 框架:Gin
  • ORM 框架:GORM

项目预览

1. 不需要开启服务端

不需要开启服务端,功能是下面 “需要开启服务端” 功能的简化版,仅用于本地演示,并且不涉及到数据请求。

1.1 用户列表

下拉刷新、上拉加载更多:

新增、删除、修改:

帮助、搜索:

2. 需要开启服务端

开启服务端的数据,模拟真实的请求后台,实现对数据库的操作。

2.1 消息列表

上拉、下拉、删除:

2.2 会议列表

显示帮助、删除、下拉刷新、搜索:

更新、新增:

图片上传、预览、删除、保存:

运行教程

运行 IOS 项目

这个应该不用多说了,项目拉下来,用 Xcode 打开 ZYSwiftUIFrame.xcodeproj 文件。

运行前需要修改签名等操作。


项目跑起来后,不需要服务端的界面是可以直接查看的,需要服务端的界面,还需要运行起服务端。

当服务端跑起来后,将 Api/NetworkManager.swift 中的 NetworkAPIBaseURL 修改为你当前的局域网 IP。

(端口默认是 8080,不需要修改)

保证你的真机和运行起服务端的电脑在同一个局域网下,或者直接使用模拟器运行项目。

查看电脑当前 IP 的方法:在网络偏好设置查看。

运行服务端项目

需要有 Go 语言的环境。

项目我已经打包好了,就是 go_api_server 目录下的 main 文件,终端中 ./main 即可运行。

运行前记得修改 config 目录中的配置文件,修改成自己的数据库名、用户名、密码。

数据库相关

我本地数据库用的 MySQL 8。

Golang 的数据库框架有自动迁移功能,在连接上数据库的基础上,直接运行起项目会自动建表。

我也在代码中初始化生成了一些测试数据,因此只要数据库连接正常,项目运行起来,就有数据了。

当然,我也提供了 SQL 语句(结构 + 数据),在项目的 sql 文件中。

文件上传目录

文件上传到本地,目前写死是 uploads/file 目录。

后台接口文档

该接口文档由 ApiPost 生成:

https://console-docs.apipost.cn/cover.html?url=36557b241534caed&salt=6015c9b386e133e0

SwiftUI 开源项目 - ZYSwiftUIFrame 自带服务端的完整示例项目(更新中...)相关推荐

  1. react-template 包含客户端,服务端渲染完整示例

    原文链接 React version 16.2 版本脚手架 包含客户端,服务端渲染完整示例,使用了最新的react,并实现version 16.2 最新的服务端渲染; 解决了一些之前的服务端渲染bug ...

  2. DIOCP开源项目-高效稳定的服务端解决方案(DIOCP + 无锁队列 + ZeroMQ + QWorkers) 出炉了

    DIOCP开源项目-高效稳定的服务端解决方案(DIOCP + 无锁队列 + ZeroMQ + QWorkers) 出炉了 参考文章: (1)DIOCP开源项目-高效稳定的服务端解决方案(DIOCP + ...

  3. 【初识Netty使用Netty实现简单的客户端与服务端的通信操作Netty框架中一些重要的类以及方法的解析】

    一.Netty是什么? Netty 由 Trustin Lee(韩国,Line 公司)2004 年开发 本质:网络应用程序框架 实现:异步.事件驱动 特性:高性能.可维护.快速开发 用途:开发服务器和 ...

  4. 七雄争霸服务端详细安装说明【更新WIN系统架设教程】

    七雄争霸服务端详细安装说明[更新WIN系统架设教程] 2011年09月09日 linux和win架设教程1(完整WIN教程看下面的)有些朋友说LUNIX下才可以架设,其实不然,WIN下也是可以实现的, ...

  5. nodejs ajax进度条,Ajax异步文件上传与NodeJS express服务端处理的示例分析

    Ajax异步文件上传与NodeJS express服务端处理的示例分析 发布时间:2021-07-24 11:17:21 来源:亿速云 阅读:79 作者:小新 这篇文章主要介绍Ajax异步文件上传与N ...

  6. 游戏服务端帧率控制(使用libuv中uv_now进行说明)

    游戏服务端帧率控制(使用libuv中uv_now进行说明) TIPS:本篇博客的思想是错误的,请移步新文章,链接如下: https://blog.csdn.net/qq135595696/articl ...

  7. 校园服务小程序源代码分享园服务微信小程序全开源版源码-包含服务端

    2021年4月17日更新 严正声明: [请一定勿将程序用户商业用途且 包括 用此程序去参加各类学校的竞赛或者其他以获取名利而参与的竞赛等,一旦被原作者发现将会面临严重的侵权责任后果,特别是被获奖后会遭 ...

  8. android 升级带服务端,安卓应用升级服务端设计思路

    原标题:安卓应用升级服务端设计思路 前言 去年支付宝集福卡活动玩出新花样,增加了一种花花卡,豪称全年帮你还花呗,一时火热.听到很多人在说要花花卡时,不准备玩集福卡的我准备再玩一把.进入页面功能点直接系 ...

  9. Android高仿大众点评(带服务端)

    2019独角兽企业重金招聘Python工程师标准>>> 实例讲解了一个类似大众点评的项目,项目包含服务端和android端源码, 服务端为php代码,如果没有接触过php, 文章中讲 ...

最新文章

  1. 如何有效利用项目管理工具提高工作效率?
  2. Exchange server 2010系列教程之一 安装Exchange 2010准备条件
  3. 铁血规则:事件预订与取消预订[转]
  4. jdk1.6 改 jdk1.7或jdk1.8(改回也可以)(图文详解)
  5. 清华博士的逆袭路:从延毕警告到在顶刊发文,我蛰伏了四年
  6. 伪原创工具安全第一嘛~~
  7. 最新SpringBoot2.0X整合SpringData JPA实战完整篇
  8. 特斯拉副总裁陶琳:在中国采集的数据都将存在中国
  9. SpringBoot支持JSP教程
  10. 【转】vb OPen文本文件的操作
  11. uniapp运行 pages.json解析失败,args (“--max-old-space-size=2048“, “E:/QMDownload/SoftMgr/HBuilderX/plugins/
  12. SpringBoot验证码
  13. 004. 看似“完美”的类目+属性
  14. mysql ehcache_EhCache使用心得
  15. oh-my-zsh主题添加命令显示执行时间和当前时间
  16. 简述轻量级与重量级(框架,应用,组件)
  17. 如何快速统计任意一条线段的长度?
  18. 古籍拆字 - 批量拆字成图 - js拆字 - js拆图 - js拆古籍 -导出svg矢量图
  19. 设计模式~调停者(中介)模式-06
  20. UDP协议全面实验分析详解

热门文章

  1. 网创第一件事是要找一起奋斗的人
  2. 最近和一个创业中的朋友喝茶聊天
  3. 数据结构和算法———P1 绪论
  4. linux下文件时间戳
  5. ssms应用程序错误_来自应用程序的查询计划与SSMS不同时的性能故障排除
  6. 数据湖 数据仓库 数据集市_还原数据仓库/数据集市环境的两种方法
  7. iOS中如何添加自定义的字体库
  8. 【SSH进阶】No result defined for action **的解决方案
  9. ArcGIS AddIN之工具不可用
  10. Centos6.5 恢复误删的系统面板