D2- 用 Swift 和公开资讯,打造投资理财的 Apps { 加上版控 git 和第三方套件管 理工具CocoaPods }

当模拟器能运行之後,就可以开始准备开发的辅助工具了。我个人习惯上,是在建立完成後,马上加上 git 版控,和安装 CocoaPods 进行第三方套件管理工具。在写文章的当下,虽然 Apple 官方也推出了 Swift Package Manager (SPM) 帮开发者进行第三方套件管理工具,但和这个时期的 CocoaPods 相比,我还是比较习惯 CocoaPods,所以这边并不特别介绍 SPM。

Git 的使用方法

将 terminal 打开,进入刚刚创立的 ITIronMan 目录,输入 git init ,接下来 git add -git commit -m "project created"。就完成了第一个 commit 点和版控。我个人习惯会使用 Source Tree 的 GUI 来看不同的 branch。如果你习惯使用 terminal 直接操作 git,也是可以的。

.gitignore(建议使用)

如果你是一个人自己写专案,那使不使用 gitignore 并没有很大的相关。一个人自己写专案,和一群人一起写专案的差别,就是那些 Xcode 帮你自动生出来的档案,要不要放在版控系统中? 因为这些自动生出来的档案,在别人的电脑上是没有作用的,所以建议不要将这些档案放在版控系统中。在 github 上,已经有收录各大语言主要的 gitignore 模版,下面连结就是 Swift 的 gitignore 模版。

Github 上的 Swift gitignore 模版

https://github.com/github/gitignore/blob/master/Swift.gitignore

CocoaPods - iOS 必备的第三方套件管理工具

安装方法可以在 https://cocoapods.org/ 中找到

安装好 pod 後,如果有开启 ITIronMan 的 Xcode,请先关掉。在 terminal 中进入 ITIronMan 目录,输入 pod init ,就会看到 finder 中的 folder 多出一个 Podfile。你可以用任何文字编辑器来编辑这个 Podfile。在 #Pods for ITIronMan 下方输入 pod 'Alamofire',存档後离开。再输入 pod install,就会看到 pod 帮你生出了副档名为 xcworkspace 的 ITIronMan.xcworkspace,他的样子看起来是白色的 icon。

https://ithelp.ithome.com.tw/upload/images/20210911/20140622GktxDX4Yms.png

https://ithelp.ithome.com.tw/upload/images/20210911/20140622cVS0PwLf21.png

请记得,以後要写专案,都要使用 xcworkspace,如果使用副档名为 xcodeproj (icon 是蓝色的,那会读取不到第三方套件,在 run 模拟器的时候,会失败)

延伸阅读: Git Flow https://guides.github.com/introduction/flow/

移除掉预设的档案

当你建立专案後,系统会在我的预设环境下,生成 ViewController.swift 和 Main.storyboard。但命名是很重要的,ViewController 不能代表他是哪个作用的 VC,所以我习惯在专案开好之後,马上砍掉,并创造一个适当的命名。

先建立一个叫 LandingViewController 的 VC。

然後在 Main.storyboard 上,把原来的 VC 砍掉,然後按下 [+],拖曳出一个新的 VC,在右方的选单中,class 指定为 LandingViewController。

并在中间放上一个 UILabel,我先把 text 设定成 LandingVC。

Run 起来,你应可以看到模拟器上有这个 Label,显示为 LandingVC。

https://ithelp.ithome.com.tw/upload/images/20210912/20140622E6ZR1SU3oY.png

转场

这个 App 预计会有很多不同的页面来呈现不同的数据。所以先加上 UINavigationController,让後续的转场比较方便。

先点选到 Storyboard 上的 LandingVC,然後[Editor] → [Embed In] → [Navigation Controller]

https://ithelp.ithome.com.tw/upload/images/20210912/20140622HGMaA8wMa0.png

这样,你的 LandingVC 就有一个系统生成的 Navigation Controller 来操控了。

现在 Build 模拟器,你会看到 LandingVC 上面,会有淡灰色的 Navigation Bar了,这也是预设效果。

在 LandingVC 内,如果要呼叫 NavigationController,只要写 navigationContrller? 就可以告诉这个 VC 的 navigationController 来进行对应的 UI 行为。

要注意的是,在 VC 的 viewDidLoad() 时候,是有可能叫不到 navigationController 的,如果你发现程序行为和你预期的不一样,请把 navigationController 相关 func 放到 VC 的 viewWillAppear(_:) 或之後的生命周期。

https://ithelp.ithome.com.tw/upload/images/20210912/20140622vY4UOhFbEG.png

附录: UIViewController
生命周期文件

https://developer.apple.com/documentation/uikit/uiviewcontroller


<<:  [Day-3] 我的第一个C++程序

>>:  灵异现象 - 怎麽大家都能改阿

透过 RISC-V 模拟器搞懂指令管线化

本文目标 理解处理器在各个 stage 会有何种行为 Pinpline 的概念 现代处理器面临的挑战...

[DAY 02]环境建置

先把环境建置好 环境建置 1.安装Anaconda 官方载点 步骤 安装注意事项 第三步选justm...

入场後,重要性排序

投资人入场後,一定会面临到以下三种情况,依照重要性排序,我会一一说明,到达这个阶段你所要做的事。 将...

【Day 13】 实作 - 透过 AWS 服务 - QuickSight 建立互动式仪表板 ( 1 )

大家好~忧郁的星期一 在前几天我们顺利撷取 Google Analytics 资料到 AWS 中,并...

JavaScript入门 Day11_有关数字的语法3

今天要讲讲数字的其他语法,那今天要讲的是Math.round( ) 那这个是要干嘛的呢,他其实就是四...