iPad Pro三個月的使用心得:值得嗎?

整個夏天我都和我的12.9吋的iPad Pro相伴。 在這幾個月裡,我真的很頻繁地使用它,現在我可以寫一篇關於我的感受的文章了。 值得嗎? 售價從1219歐元(包括稅費和增值稅)在意大利起,這絕對不是一個便宜的設備。 我還有一台更小的iPad,被宣傳為“普通iPad”,沒有其他形容詞。 現在這感覺真的很小又輕。 因為iPad Pro就像一頭猛獸。 它很大。而且非常沉,特別是當它連接到Magic Keyboard時。 但它的價值俯拾皆是。 我喜歡12.9吋的iPad Pro。它具有巨大的潛力,它很美觀,而且功能強大。 它的屏幕太棒了。比我正在使用的MacBook Pro的屏幕要好很多。而鍵盤呢? 我要說的是,我同樣喜歡在Magic Keyboard上還是在MacBook Pro鍵盤上寫作。它們基本上是一樣的,我在使用外接的蘋果鍵盤、MacBook鍵盤還是iPad鍵盤時,我的手指“鍵位記憶”並不受影響。這樣對於工作效率來說非常棒。 我開始非常欣賞的一個功能是應用程式和操作系統。開發者針對桌面或平板設計的應用程式是不同的。在iPad上,你有令人驚艷的應用程式。iPad上的YouTube與Mac上的不一樣。同樣的情況也適用於Prime Video。一些應用程式讓你以在Mac上無法實現的方式消費內容。 一些事情在Mac上是不可能的,比如用Apple Pencil在屏幕上繪畫。但其他一些功能只在Mac上有。 而有時Mac就是不方便,因為你無法將MacBook的屏幕與鍵盤分離。但在iPad上,鍵盤只是一個附件。 我非常喜歡的一個功能就是只需要把iPad放在某個地方,就可以觀看電影或足球比賽了。 一個意想不到的特點是它有磁鐵,我想是為了將它連接到Magic Keyboard,你可以將iPad固定在任何金屬表面上,甚至是垂直的。我試過將它固定在車上,它只會黏在上面,所以你可以在外面玩iPad。非常方便。 說到車,我帶著它去了一趟為期三週的自駕遊,它的表現非常好。我將16吋的MacBook Pro留在了家裡,只攜帶了一台MacBook Air作為備用,實際使用不到30分鐘。 我可以在iPad上完成所有的工作,包括回復郵件、寫博客文章、通過GitHub網站發布文章等等。 我所編寫的程式只是在Swift Playgrounds應用程式上進行的,有關這一點,我仍在等待蘋果發布第4版,這將是一個轉變遊戲規則的版本。 當我在國外旅行時,我有機會體驗到它對移動數據的更好支持。 我有支援移動數據的版本,但我還沒有為它添加數據計劃,我只使用iPhone提供WiFi。這稍微有些不方便,但我不必支付兩個數據計劃。 在歐洲,我們可以使用自己的SIM卡旅行,並且可以免費漫遊,具體漫遊流量數據閾值則取決於你的合約。我的協議約有15到20GB的數據流量,當我需要時,可以額外付費獲得更多數據流量。 當你將iPad連接到iPhone時,你只需點擊WiFi菜單,告訴它這是低數據連接,這樣你的應用程式和系統更新不會消耗掉所有的數據流量。 在Mac上,我找不到這個功能。我知道有像Little Snitch這樣的工具可以實現這個功能,但你必須為每個試圖使用網絡的應用程式做出決策。一個簡單的內置按鈕就能解決大問題。 如果內置了5G連接,效果會更好,因為我可以選擇允許訪問網絡的應用程式。 我非常喜歡的另一個功能是它的重量。出於安全原因,在旅行時我總是將我的設備和我一起攜帶(因為很容易被撬開,而且你永遠不知道停車場的情況如何)。一旦我走出車,我就將iPad放進背包中。它只有大約700克之重,你根本不會意識到它的存在。MacBook Air的重量是它的兩倍,而MBP 16的重量是它的三倍。 當我使用我的MacBook Pro這台“工作機器”時,我可以使用Sidecar將偉大的iPad屏幕用作第二個屏幕,這樣我就可以得到16吋+12.9吋的屏幕。它運作得非常好。 我發現這是一個很好的解決方案,它能讓我擁有更多的屏幕工作空間,因為我發現我的MacBook Pro在使用外接顯示器時發熱很厲害,而獨立使用時運行得非常好。這可能取決於我的舊顯示器,但我仍然需要找到解決方案。 不管怎樣,回到主題。 值得嗎?對我來說,是值得的。 我會建議你購買一台iPad Pro嗎?也許不會。也許會。這取決於你的需求。 我的需求是獲得一個完全與蘋果生態系統相集成的設備,我希望它超級便攜,但又有大屏幕,以便不影響我的工作效率。而且我希望它基於iOS,因為我自2005年以來一直在使用Mac,有時“換換畫面”也是不錯的。 我在iPad Pro上找到了這一切。

Swift 程式語言介紹

本文是關於 Swift 的新系列文章的開始 Swift 程式語言是由蘋果於 2014 年推出的,並且是與所有蘋果操作系統系列一起使用的官方語言: iOS、iPadOS、watchOS、macOS、tvOS。 Swift 是一個開放源碼、通用、編譯的程式語言。 它是一個靜態類型的程式語言。 每個值都有一個分配的類型。在編譯時使用該值作為參數或返回時,將始終檢查其類型。如果不匹配,則程式將無法編譯。 Swift 的編譯器是 LLVM,並且它包含在用於蘋果軟體開發的標準 IDE - Xcode 中。 Swift 是一種現代化的程式語言,旨在“適應”先前設計了一種名為 Objective-C 的不同程式語言的生態系統。 即使對於官方的蘋果應用程式,iPhone 和 Mac 上運行的大多數軟體都是基於 Objective-C 代碼開發的,但 Swift 的使用量逐年增加,而且在未來的新應用程式中可能會使用 Swift。 在蘋果引入 Swift 之前,Objective-C 受到大量的發展,以引入新的功能和特性,但近年來這一努力已大幅減少,為了 Swift 的開發。 這並不意味著 Objective-C 已經死亡或不值得學習:Objective-C 對於任何蘋果開發者來說仍然是一個重要的工具。 也就是說,我不打算在這裡涵蓋 Objective-C,因為我們專注於 Swift。 這是蘋果平台的現在和未來。 在短短的 6 年內,Swift 已經經歷了 5 個主要版本,而我們現在(在撰寫本文的時候)是在版本 5.3。 Swift 被聞名為 Apple 的產品語言,但它並不僅僅是一個 Apple 的語言。我們可以在其他幾個平臺上使用它。它是開源的,因此將語言移植到其他平臺不需要任何許可或授權,並且您可以找到 Swift 專案來創建 Web 伺服器和 API(https://github.com/vapor/vapor),以及與微控制器交互的專案。 它是一門通用的程式語言,建立在現代概念之上,有著光明的前景。 Swift 擁有一些我所看過的程式語言中最好的文件。然而,我想在這裡寫一些關於它的內容,因為我認為有時文件對於初學者來說可能有些複雜。 此外,我通過寫作來學習,並決定重新學習 Swift,在我最後一次接觸 Swift 五年後。自那時以來,語言和 iOS 生態系統已經有了很大的變化,我覺得重新從頭學習它。...

SwiftUI: 圖片

你可以在 SwiftUI 的視圖中使用 Image 視圖顯示圖片。 首先,你需要將圖片添加到 Xcode 項目導航器中的 Assets.xcassets 檔案中的一個新圖片集中。 然後,你可以像這樣將圖片添加到你的 ContentView 中: import SwiftUI struct ContentView: View { var body: some View { Image("Avatar") } } 你也可以使用 Image(systemName:) 的格式顯示系統圖片: struct ContentView: View { var body: some View { Image(systemName: "house") } } Image 視圖有一系列的修飾器可供使用,包括: .resizable() 用於調整圖片大小以適應 .frame() 的尺寸 .frame() 用於設置寬度/高度 .clipShape() 用於設置裁剪形狀 .border() 用於設置邊框顏色 .overlay() 用於將另一個視圖放在其前面 .aspectRatio() 用於設置長寬比 .clipped() 用於裁剪超出框架的圖片 示例:

在 iOS 上使用 WebRTC 出現黑盒子時該怎麼辦

最近我在使用 WebRTC 搭配 PeerJS 庫進行一個項目。在桌面端一切運作正常,但在 iOS Safari 上,無論是本地流還是遠端流,都只看到一個黑色盒子。 經過一番研究後,我找到了解決方法,需要將 video 標籤的 playsincline 屬性添加到本地和遠端流的標籤中: <video id="local" autoplay playsinline muted></video> <video id="remote" autoplay playsinline></video> (注意:在 JSX 中是 playsInline) 解決這個問題後,我成功在 iOS 上正常顯示了 WebRTC 的視頻流。希望這個方法也能對你有幫助!

如何在 macOS 中解決「iphoneos 不能找到」錯誤

一個解決 React Native 混亂錯誤的快速指南 在安裝 React Native 以在 iOS 上運行專案時,我遇到了一個問題。 我進入專案的 ios 文件夾並執行了指令 pod install,這是我被告知要執行的。 但是在執行這個指令時,我收到了一個很長的錯誤訊息: 從這個錯誤訊息中,我看到了「error: SDK “iphoneos” 不能被找到」。 這看起來很可疑,是吧? 所以我做了一些研究,解決問題的方法是執行以下指令: sudo xcode-select --switch /Applications/Xcode.app 然後再次執行 pod install,一切都運行正常了!

安裝 iOS 和 Mac beta 版本

每年六月,蘋果公司都會舉辦開發者大會 WWDC(Worldwide Developers Conference)。 在這個日期,他們會宣布新的作業系統和程式語言更新。 這意味著新的 iOS、新的 macOS、新的 iPadOS、watchOS、tvOS。還有一個新的 Swift 更新,以及框架更新,甚至可能有新的框架。還有一個新的 Xcode 版本。 首個公開測試版隨後會釋出給開發者,並且整個夏天都會釋出許多不同的測試版,直到它們變得穩定並對公眾可用,通常是在十月/十一月間。 通常建議不要使用測試版軟體,特別是在主要工作設備上。但是當你看到新版本的奇蹟後,你肯定想親自體驗一下。也許你有一個應用點子,可以開始開發。或者你想更新你的應用程式,讓它們準備好穩定版的釋出。 我總是忽略我生產力使用的 Mac/主要的 iPhone/iPad 上的首個測試版,只是為了確保不會發生重大問題,但之後的測試版通常都很實用。 要獲取新版的 iOS 和 iPadOS、watchOS 測試版,你需要前往 Apple Beta 軟體計畫 網站,尤其是 註冊你的設備 頁面。 對於這些測試版,你不需要任何蘋果開發者計畫的會員資格。 但是對於 macOS 和 Xcode,以便你可以使用更新版本的 Swift 編寫應用程式,你需要具有會員資格。 有了會員資格,你可以登入並訪問 測試版軟體下載 頁面,並且你將能夠看到測試版作業系統的下載: 以及測試版應用程式的下載:

應用程式總是需要一個資料庫嗎?

關於資料庫需求的一些想法。也許你需要它,也許不需要。 應用程式總是需要一個資料庫嗎?當然不是。 就像科技中的一切一樣,在每個情況下都沒有一個理想的解決方案。 電腦提供了許多不同的資料儲存方式。最明顯的替代方案是檔案。 一個常見的例子是內容管理系統(CMS)。有些CMS使用資料庫來儲存資料(比如WordPress),有些則更偏好使用檔案來儲存資料(比如Grav或Statamic)。 在這種情況下不使用資料庫意味著更簡單的部署到一個虛擬主機服務上。 但是當處理大量資料時,資料庫絕對是簡化長期生活的好方法。 如果您正在開發一個macOS或iOS應用程式,您可能會決定只需要一個JSON或Plist檔案來處理資料,因為使用者不需要儲存大量資料。 或者可能Core Data(內部SQLite資料庫的封裝)對您來說是最適合的選擇。 總之,它始終是復雜性與便利性的平衡。

為什麼選擇 iOS

為什麼我選擇深入研究 iOS 呢? 難道我放棄了 Web 開發嗎?當然不是。 Swift 為我帶來了一個全新且令人興奮的世界。 我不是一個 Web 開發人員,我是一個開發人員。無論最終形式是什麼,我的目標是幫助人們成為開發人員。 我有很多想要建立的應用程序的點子,我可以創建它們並解釋如何實現。 我認為很多人都想要建立一個 iOS 應用程序,但這並不是一件簡單的事情。 iOS 應用程序在很多方面都與 Web 應用程序非常不同。 首先,是分發方式。在 Web 上,你擁有自己的域名,你的應用程序就在那裡。而且你可以做任何合法的事情。在 iOS 上,只有 Apple App Store,而且 Apple 對其有很大的控制權。他們可以決定拒絕你的應用程序。 然後是技術堆棧。在 Web 上,你有 JavaScript、HTML 和 CSS,除非你使用一些小眾工具。而在 iOS 上,你有 Swift 和 SwiftUI。 再者,Web 是一個開放的平台,而 iOS 則是封閉的,完全受 Apple 控制。 還有一個很大的區別:你可以創造的類型。在 Web 上,你創建 Web 應用程序,它們存在於瀏覽器中。在 iOS 上,你創建的是移動應用程序,這些應用程序可以隨時隨地帶在身上。這些應用程序可以通過傳感器更好地融入你的生活,它們可以存在於你的手錶上(我說 iOS 但我的意思是所有的移動 Apple 平台:iPhone、iPad、手錶,不包括不同的 Mac)。 所以,對我而言,開始創建 iOS 應用程序更像是創建 Web 上無法實現的應用程序的一種方式,也是進入這個有趣的開發領域的途徑。

簡介 SwiftUI

SwiftUI是開發iOS、iPadOS、watchOS和macOS應用程序的現代化方式。 它從“舊有”方式轉變,使許多現有的蘋果框架(UIKit,AppKit和WatchKit)變得過時。 這些框架有一個共同點:它們是命令式的。 作為程序員,您可以確定事物應該以每個像素為單位如何顯示。然後,您會對用戶事件作出響應並手動更新數據。在每次更改時,您還需要決定UI應該如何更改。 SwiftUI是一個完全的變革,因為它是反應式的,UI反映了數據的狀態。不再像在UIKit中“連接事物”。 而且,您需要編寫的代碼要少得多。如果以前曾使用UIKit編寫過iPhone應用程序,您將一直在想“就這樣嗎?”。 談到代碼,使用SwiftUI,您只需編寫代碼即可。不再使用StoryBoard或Interface Builder。 我認為這很完美,因為我可以將我的代碼存儲在Git中,並可以立即看到隨時間所做的更改,而不是一些XML的亂碼。 現在,如果您以前從未使用過UIKit,您可能不明白我的意思。這對您來說是好事,不用擔心。 由於蘋果能夠從頭開始使用SwiftUI,我們有很多優勢。 第一次接觸SwiftUI應用程式令人著迷。 以下是Hello World應用程式的代碼: import SwiftUI struct ContentView: View { var body: some View { Text("Hello World") } } 您導入SwiftUI模塊,並聲明一個符合View協議的結構。 該協議要求該結構具有一個名為“body”的計算屬性,該計算屬性返回“some View”。 這就是我們在結構內部做的事情。 “body”計算屬性返回一個類型為“Text”的單個視圖,其中包含內容“Hello World”。 由於您將始終在SwiftUI中看到“some View”使用,現在是解釋為什麼使用它而不僅僅是“View”的好時機。 該聲明強制“body”始終返回相同類型的視圖,這對於SwiftUI的工作方式至關重要。 其中一個原因是性能。為了具有高性能,SwiftUI需要將某些事情視為理所當然。其中之一是每個結構始終返回相同類型的視圖,以便可以輕鬆檢查是否需要在屏幕上重繪。 在這種情況下,我們返回一個“Text”視圖,這是我們的結構始終返回的視圖,而不管其狀態如何。

設置您的網站以在iOS上允許全屏

在使用iPad Pro期間,我決定將一些網站添加到主屏幕。雖然同樣的操作在iPhone上也有效: 按壓分享按鈕(在底部中間)以顯示選項面板: 選擇“添加到主屏幕”: 現在,您將在主屏幕上看到一個帶有網站圖標的應用程序。 點擊它只會在Safari中打開該網站。 但是,如果將此meta標籤添加到頁面中: <meta name="apple-mobile-web-app-capable" content="yes"> 點擊應用程序圖標將在全屏中打開該網站: 這在iPad上也是有效的: 這將幫助您節省螢幕空間,因為Safari的用戶界面將無用,也能提升整體應用程式使用體驗。 當然,這必須得到網站/應用程式開發者的支援,否則無法全屏顯示。