最近主要在学习Swift
和SwiftUI
,准备搞一个全栈使用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
,谁还用Java
和Kotlin
啊😄。
Server & 数据库
后台用Server-Side Swift
来写,参考Vapor。
数据抓取可能需要用到Python。
数据库继续使用MySQL。
服务器继续使用腾讯云。
之前写后台都是用的非常成熟的 LNMP(Linux、Nginx、MySQL、PHP/Python/Perl)方案,而且都是些很简单的项目,比如APNS push服务、Bitwarden服务等,所以这次后台和数据库的部分挑战会比较大。不过好在服务器已经有了,而且能够直接使用Swift
来写,好像也不会太折腾。
可能存在的坑就是Server-Side Swift
还不成熟,配套的社区和插件会比较弱,不过作为学习项目,有啥用啥呗。
计划
啊,要做的东西太多了!还是一步步来吧,不能好高骛远。
- 使用
SwiftUI
完成客户端基本UI - 配置
Swift
服务端开发环境,跑通流程 - 使用
Python
抓取真实数据并存储 - 实现接入层逻辑,完成客户端和Server的交互
- 使用 Weex 编写Android端和Web端
千里执行始于足下,无论是milestone还是stone砸出的大坑,都走着瞧吧!