0%

Swift全栈项目计划

最近主要在学习SwiftSwiftUI,准备搞一个全栈使用Swift的完整项目,在实际工程中进行深入探索。同时我也一直想做一个完整的全栈开发项目,提升下姿势水平。

目前的初步想法是做一个电影相关的APP,主要涉及的技术栈有:

  • 客户端
  • Web端
  • Server
  • 数据库

客户端 & Web端

因为最主要的目标是学习SwiftUI,所以iOS客户端我会使用SwiftUI来写,这样就直接实现了苹果的“跨平台”,支持所有Apple Platform(iOS/iPadOS/watchOS/macOS)。

Android端优先级比较低,毕竟不如iOS熟悉,后面可以考虑用 Weex 等跨平台方案来实现,正好横向对比下 真实的跨平台(iOS/Android/Web)和 虚假的跨平台(iOS/iPadOS/watchOS/macOS)到底谁更有前途。(好像不用对比也能知道💔)

正好 Weex 也支持Web端,一套代码搞定Android和Web,也能顺便学习下JS大法和VUE

那么问题来了:

为啥iOS不也用Weex来写呢?

  • 回答0:身为iOS客户端开发,要对Swift语言有信仰!而且用SwiftUI来开发,同时能支持所有Apple Platform,不也挺香吗。

  • 回答1:反正是个学习的项目,怎么折腾怎么来😏。

为啥不用Java或者Kotlin来写Android呢?

  • 有了Swift,谁还用JavaKotlin啊😄。

Server & 数据库

后台用Server-Side Swift来写,参考Vapor
数据抓取可能需要用到Python。
数据库继续使用MySQL。
服务器继续使用腾讯云。

之前写后台都是用的非常成熟的 LNMP(Linux、Nginx、MySQL、PHP/Python/Perl)方案,而且都是些很简单的项目,比如APNS push服务、Bitwarden服务等,所以这次后台和数据库的部分挑战会比较大。不过好在服务器已经有了,而且能够直接使用Swift来写,好像也不会太折腾。

可能存在的坑就是Server-Side Swift还不成熟,配套的社区和插件会比较弱,不过作为学习项目,有啥用啥呗。

计划

啊,要做的东西太多了!还是一步步来吧,不能好高骛远。

  1. 使用SwiftUI完成客户端基本UI
  2. 配置Swift服务端开发环境,跑通流程
  3. 使用Python抓取真实数据并存储
  4. 实现接入层逻辑,完成客户端和Server的交互
  5. 使用 Weex 编写Android端和Web端

千里执行始于足下,无论是milestone还是stone砸出的大坑,都走着瞧吧!