辛宝Otto

辛宝Otto 的玄酒清谈

北漂前端程序员儿 / 探索新事物 / Web Worker 主播之一/内向话痨
xiaoyuzhou
email

如何快速學習和測試 Swift 和 UIKit 代碼?

我的基礎背景#

我是一名普通前端,之前並沒有學習過 iOS 開發,有時候我需要實現 Swift 代碼,包裝為插件,在 app 中調用原生功能。

在 uni-app x 的 4.25 支持原生混編之後,可以做的事情就更多了。

舉個例子,比如我希望封裝一個函數,獲取當前手機的電量,或者獲取當前系統的主題是否暗黑、獲取按鈕時候播放一段音樂。

JS Web 開發一樣很容易測試,打開瀏覽器隨便打開一個網頁,按下 F12 打開控制台,就可以運行 JS 並得到響應。客戶端原生開發並不可以。

所以,我該如何盡可能少地學習無關知識,讓我快速測試和實驗 UIKit 和 Swift 代碼

本篇文章記錄我的學習過程,面向讀者是和我一樣的純前端、客戶端開發無知者。如果後續有更深入的理解,我會嘗試修改其中的細節。也請讀者請注意甄別。

代碼從哪裡來?#

以前我推薦快速閱讀官方文檔,了解大綱後再進行測試練習。現在有了 AI,更適合問 AI,比如

如何使用 UIKit 獲取當前電量,我希望編寫一個 fun 返回結果。我可以調用 fun 並 print 結果。

知道了如何獲取代碼,如何進行測試?考慮到我現階段不需要考慮系統性地掌握 xcode 的使用。這就引出了下面的話題。

快速測試 UIKit?#

如何快速學習 UIKit 和 Swift?

經過我的探索,我找了兩個方案來測試:創建普通項目和使用 playground。下面分別說一說。

以下方案基於 XCode 15.4 進行截圖說明,隨著版本迭代,部分截圖可能會發生變化,但預計不會發生大的變化。

1 創建普通項目#

基礎模板搭建#

打開 xcode,選擇創建新的工程,彈出下面對話框。

image

注意:頂部平台選擇 iOS,不要選擇默認的 Multiplaform 跨平台

點擊 Next,得到下面的對話框

image.png

提示:

  • Product Name 隨便起一個名字
  • Team 隨便選,我選擇了 None
  • Org ID 這裡,默認,或者隨便的 a.b.c 的格式就可以
  • Interface 這裡試了試,選擇 Storyboard,不選擇 SwiftUI
  • Language 選擇 Swift
  • Storage 選擇 None
  • 取消勾選 Include Tests

點擊 Next,會出現下面彈窗,讓你選擇代碼存放路徑

image.png

最終選擇 Create 就完成了一個普通項目的創建。

測試 demo 代碼#

有了項目,我們就可以測試 swift 代碼塊了。

image.png

按照我的上圖提示,打開 ViewController.swift 全部刪除,粘貼我提供的代碼。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
       
        // 獲取電量並打印·
        let currentBatteryLevel = getBatteryLevel()
        print("當前電量: \(currentBatteryLevel)%")
    }

    func getBatteryLevel() -> Float {
        // 開啟電池監測
        UIDevice.current.isBatteryMonitoringEnabled = true
        
        // 獲取當前電量
        let batteryLevel = UIDevice.current.batteryLevel
        // 轉換為百分比
        return batteryLevel * 100
    }
}

這個代碼會在應用啟動之後,調用 getBatterLevel() 方法並打印結果到控制台。

這個代碼會獲取電量,並返回數據。

粘貼完畢,在頂部選擇模擬器,然後點擊運行,稍等片刻,可以在控制台看到返回結果。

image.png

以上就是普通項目的測試方案,這種方案雖然稍微複雜,但是比較規整,屬於最常見的模板。

下面介紹一種,我問 ai 知道的簡單方案。

2 創建 Playground 項目#

xcode 選擇創建 playground,不知道為啥,默認的創建工程裡沒有這個模板。

基礎模板搭建#

必須使用下面的方案:

打開 xcode 這個啟動頁面

image.png

左上角選擇 File - New - Playground...

image.png

出現下面的截圖,選擇默認的 iOS - Blank。

image.png

點擊 Next 就可以出現代碼存放位置了。工程後綴文件 .playground,比較簡單。

測試 demo 代碼#

image.png

點擊圖片中的運行,就可以得到這段代碼的運行結果了。

你可以複製我提供的代碼進行驗證

import UIKit

func getBatteryLevel() -> Float {
    // 開啟電池監測
    UIDevice.current.isBatteryMonitoringEnabled = true
    
    // 獲取當前電量
    let batteryLevel = UIDevice.current.batteryLevel
    // 轉換為百分比
    return batteryLevel * 100
}

// 獲取電量並打印·
let currentBatteryLevel = getBatteryLevel()
print("當前電量: \(currentBatteryLevel)%")

下一步做什麼?#

系統學習官方文檔#

官網文檔關於 UIDevice.current.batteryLevel 的介紹

路徑是:App and environment - UIDevice - Getting the device battery state - batteryLevel

batteryLevel | Apple Developer Documentation

問 Ai 如何獲取暗黑模式等其他問題#

詢問 AI

使用 swift 和 UIKit 查詢當前系統的主題,是否是暗黑模式,封裝成 fun,返回當前是 light 還是 dark,還有其他值嗎?

經過我測試,ok。這裡讀者可以自行測試。可以有意識地積累代碼了,後面可以隨手拿來用。

學習 UTS 插件包裝#

[[新手向:包裝 UTS 插件]]

學習 Android 如何快速測試代碼#

[[如何快速學習和測試 Android Kotlin 代碼?]]

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。