1. 零基礎學習ios游戲開發該如何入門
學習iOS開發由C/C++/OC語言到iOS項目實戰階段的學習。Objective-C編程語言,有C語言的基礎加上有面向對象的思維,很容易學好Objective-C,Objective-C是iOS的開發語言。以下是iOS開發學習的大致階段:
1、C/C++/OC語言,零基礎學習iOS開發同樣也是,以提高編寫代碼和變成調試能力,具有扎實的編程功底和思想。
2、iOS應用開發階段,具有開發中大型iOS應用項目能力。
3、iOS游戲開發階段,可以掌握iOS3D游戲開發的能力。
4、iOS項目實戰階段,提升創新、實戰經驗能力,擁有自己獨立研發的幾款產品。
5、iOS項目答辯,對學習成果有個總結,通過答辯鍛煉表達能力。
學習iOS開發可以自學也可以選擇參加iOS開發培訓機構的學習,但自學中可能遇到什麼問題不便於解決,往往自學效率不高,自己會感覺壓力山大甚至就會選擇放棄。自然參加iOS開發培訓學習起來會比較快、容易掌握。零基礎學習iOS開發是不用擔心的,完全可以零基礎學習iOS開發。iOS開發零基礎學習培訓四個月的時間足夠。
2. iOS 開發怎麼入門
一、
准備工作
1. Mac、iOS設備、開發者賬號
這些是做iOS開發必須要有的,而且是一大筆錢,但不要怕花錢,因為這些都是值得的。如果能夠學有所成,一兩個月的工資基本就回本了。就當是自己交的一筆「培訓費」吧。
2. 心態上的准備
如果你是零基礎轉行iOS,那麼一定要有破釜沉舟的勇氣和決心,並做好打持久戰的心理准備。
二、
學習路線
1. 對編程的基本認識
如果你是完全的零基礎,我建議先要對編程有個基本的認識。建議從C語言入手,因為C語言比較簡潔易上手,並且和Objective-C很相似。
「計算機專業體系」課程,很適合入門。
書籍的話,推薦《C
Primer Plus》。
2. Objective-C語言學習
當對C語言有個大致的了解後,就可以開始學習Objective-C了。
推薦書籍:
《Objective-C基礎教程》
《Objective-C程序設計》
註:這兩本內容都差不多,但《Objective-C基礎教程》寫的更好、更經典,建議以這本為重點精讀。但是這本寫的比較籠統,難度稍高,所以如果遇到不懂的地方就看看《Objective-C程序設計》,這一本寫的簡單、詳細一些。
需要掌握並熟練運用的地方:
1) 面向對象編程的基礎知識。包括:面向對象與面向過程的區別、為什麼要面向對象編程,類、對象、繼承、方法、屬性、介面等概念的理解與使用。
2) Foundation框架。主要是NSString類、NSArray類、NSDictionary類、NSNumber類、NSRange類的熟練運用。
3) 內存管理MRC、ARC的原理,委託delegate、協議protocol、類別category、塊block的理解與使用。
3. iOS SDK/Cocoa Touch學習
有了Objective-C基礎,就可以開始邊看斯坦福公開課邊做APP了(個人覺得沒有OC基礎直接看這個會很吃力)。視頻如下:
斯坦福大學公開課CS193P《iOS7應用開發》(Objective-C語言)
斯坦福大學公開課CS193P《iOS8開發 》(Swift語言)
推薦書籍:《精通iOS開發》
第一個iOS應用:
蘋果官方有個做iOS應用的教程——《馬上著手開發iOS應用程序(Start
Developing iOS Apps Today)》。強烈建議以這個Demo作為你的第一個iOS應用,因為這個教程能讓你對一個iOS應用的搭建有個非常全面、細致的認識。完成了這個Demo後,就可以結合斯坦福公開課學到的東西創建屬於你自己的APP了。
需要掌握的地方:
1) MVC設計模式。只有理解了iOS的MVC架構,才能把一個應用解剖成一個個單獨的部分,這樣你在開始做一個項目的時候才不會茫無頭緒。
2)UIKit的各種控制項。特別是UITableView和UICollectionView一定要掌握,因為大部分的iOS應用都是由這兩種視圖搭建,吃透了它們那可玩的花樣就很多了,其樂無窮。
3) 導航控制器UINavigationController和選項卡控制器UITabBarController。同上,這兩個控制器也是絕大多數iOS應用UI框架的根基,也是多個MVC協同工作的最典型例子。
4) 場景切換的實現——Segue。熟練使用Segue很重要,因為一個應用一般都是各個界面輪流出現的,兩個界面之間怎樣實現跳轉、怎樣將一個界面的數據傳遞到下個界面,這都是實際開發中會遇到的問題。
5) Storyboard和AutoLayout的使用。這兩者是一個應用的UI界面設計不可或缺的部分。
6) 其它iOS高級編程。包括:數據存取CoreData/SQLite、多線程GCD、繪圖CoreGraphics、動畫CoreAnimation、網路編程、手勢Gesture、多媒體AVFoundation等等,這些內容都可以實際用到時再深入學習。
7) 第三方庫的使用。參考:GitHub 上都有哪些值得關注學習的 iOS 開源項目? - 編程
4. 堅持寫代碼、查文檔、讀技術博客
學習編程,一定要勤於動手,看再多的書、再多的視頻,如果不動手敲代碼都是白搭。哪怕書上和視頻上的代碼你一行都看不懂,也要親手把代碼敲一遍、把Demo親自實現一遍,這很重要。編程是手敲會的,不是眼睛看會的。
學習iOS開發的過程中,有遇到不懂是正常的,別害怕不懂,Cocoa的內容細節本來就多,每年的WWDC還會發布一些新技術。所以遇到不懂的知識一定要學會查蘋果官方API文檔:iOS Dev Center
做APP時,如果一個地方不會實現,或者遇到解決不了的問題,一定要學會使用Google搜索。一般來說,初學iOS遇到的問題,Stack Overflow上都有類似的提問,基本一搜一個准。
此外,CSDN等一些技術博客上的文章也很有參考價值。推薦一些優秀的iOS技術博客——中文 iOS/Mac 開發博客列表:tangqiaoboy/iOSBlogCN · GitHub
3. 只要一個 iPad,手把手教你給 iPhone 開發應用
科技 是一種人文素養,我認為 Swift Playgrounds App 的核心定位正是如此。
未來世界創新、創業、創造的大門,需要我們用一種有著人文溫度的方式去開啟。
我自己從初中開始看矽谷三大春晚——Apple WWDC 開發者大會、谷歌I/O 大會、微軟Build 大會;在高中的時候,雖然身為文科生,但是開始了裝「黑蘋果」、自學編程的神秘煉金術之旅。Swift 因此成了我的計算機語言母語,而大學時期也很幸運地入選了 WWDC18 獎學金計劃,能夠帶著我們團隊自己開發的 App 見到了庫克。我們後來休學創業,拿了幾輪融資,至今還在這個波詭雲譎卻充滿魔力的創業場拼搏。
這些過去的經歷,都成了喬布斯所說的「connecting the dots」的一部分。我和一家做少兒素質與編程教育的機構也有著不少的合作,也帶過幾支天才少年隊伍,看著他們忘我地投入,看著他們迸發著顛覆性創造力的光芒。
由 Apple 推出的編程工具 Swift Playgrounds 近期推出了 4.0 大版本,我使用它開發了一個簡單的疫情數據看板 App,並以此作為一次簡單的體驗,將過程中的思考和體悟和大家分享。
我們為何學習編程、如何學習創造,Apple 給了我們他們的思考。雖然 Swift Playgrounds 現在還充滿了各者培種瑕疵,但我們也看到了全新的可能:AR、AI、感測器、多維交互、物聯網,這些前沿的技術,以及伴隨其中的人文主義光輝,都能夠在這個小小的設備中,經由每一個開發者的研磨,如同坩堝一般,煉就出自己的結晶。
讓我們開始吧。
註:本文中所有新冠疫情數據來自 騰訊開放平台數據介面,僅用作產品功能效果演示,不具有任何防疫相關參考價值,新冠疫情准確數據,請查閱官方數據平台。
在 Swift Playgrounds 中寫一個疫情數據 App,整個體驗充滿了驚喜與迷思,總之情緒如同一杯馥郁的咖啡,濃烈喚襪而復雜。
我一直在用一台 2017 年的 10.5 英寸玫瑰金 iPad Pro,它伴隨了我的整個大學到現在創業的時光。它曾陪伴著我去過 WWDC18 面對面見過庫克(沒錯)。然而自從升級 iOS 14 以來,我開始對其體和嫌激驗心生不滿,尤其是 Swift Playgrounds 在更新 4.0 大版本前的頻頻閃退和卡頓問題著實讓我頭大。
雖然我從朋友那裡搞來了一台 12.9 英寸的全面屏 iPad Pro,但由於種種原因沒有升級到 Swift Playgrounds 開發 App 所需的 iPadOS 15.2 的環境,於是最終還是投奔到了自己的陳年舊相識的懷抱。
好在 Swift Playgrounds 4.0 對系統兼容性與性能的優化,讓我瞬間覺得「爺青回」。我嘗試了直接在 iPad 上觸屏、觸屏 + 鍵盤、觸屏 + 鍵盤 + Magic Trackpad 的體驗,確實覺得如果沒有一套像樣的鍵鼠方案做配合,效率依然會大打折扣。
由於 macOS Monterey 12.1 依然沒有開放 Universal Control 通用控制功能,我最終選擇將 iPad 畫面投屏到 Mac 的顯示器上。
作為一個簡單的嘗試,我打算寫一個實時展示疫情數據的看板 App。
SwiftUI 配合 iPad 的屏幕操作邏輯,可以說很大程度降低了 UI 部分開發的復雜度,右側的 App 預覽響應迅速,提供了所見即所得的及時反饋。
左側的代碼窗口也新增了 Xcode 樣式的自動補全,在多數情況運轉良好,然而也會在不少場合耍個脾氣,考一考你「默寫」代碼的能力。當然我期待這些問題能夠盡快在後續版本中得到改善。
我們也可以直接編譯代碼,Swift Playgrounds 則會開啟一個新窗口來運行應用,日誌則均可通過自帶的控制台輸出。
Swift Playgrounds 可以像在 Xcode 編輯 .plist 文件一樣,為應用增加系統級能力支持。而同時,Swift Playgrounds 也允許開發者使用 Swift 包管理器來在線獲取第三方模塊的支持。
App 可以選擇自帶的佔位符或者自定義圖片作為圖標,並且打包編譯,發布到 App Store。Swift Playgrounds 自帶的手繪風格圖標頗有「Everyone Can Code」的質感。
寫完的 App 也可以直接發布 App Store 審核。
iPadOS 上 Swift Playgrounds 開發 App 的 .swiftpm 工程無法在 macOS 上的 Swift Playgrounds 中打開(或許還需坐等 macOS Swift Playgrounds App 更新),但是可以在 Xcode 的 Swift Playgrounds 模塊運行。
我們現在能夠看到 macOS 上 Xcode App 中的 Swift Playgrounds 功能模塊、macOS 獨立的 Swift Playgrounds App 與 iPadOS 上的 Swift Playgrounds App 三者並存且互相有所不兼容的情況。對於初學者而言,若不加了解,這確實是一條令人有些困惑的產品線。當然我相信 Apple 會在後續解決這一問題。
此次體驗下來,我認為新版的 Swift Playgrounds 也還存在以下不足:
對於想通過 Swift Playgrounds 入門編程的新手,我也在這里提出一些個人建議。
首先是設備,我手中的 2017 年款 iPad Pro(A10X 處理器)運行 Swift Playgrounds 4.0 沒有出現明顯的性能瓶頸,因此我姑且認為往後的新機型應該都有著不錯的性能表現。
文檔:前文說到,現有的 Swift Playgrounds 4.0 如果要以 IDE 的要求來看,還缺少必要的類型提示和文檔內容的說明。這時候我們也可以選擇手動查閱開發者文檔,這是 Apple 對各類系統框架事無巨細的說明。在 Swift Playgrounds 更早版本的更新中,Apple 已經將大部分的開發者文檔內置到了 Swift Playgrounds 中,我們可以在工具中找到文檔的查詢入口。或者,我們可以使用瀏覽器訪問 Apple Developer 開發者網站 查詢文檔。
Swift 語法入門:Swift Playgrounds 在更早版本中,已經提供了 游戲 化 Swift 語言學習的各種模塊,如果你是 Swift 語言的新手,可以通過學習官方提供的學習編程 1、2、3 和其他一系列的學習模塊來 探索 Swift 語言。
SwiftUI 入門:SwiftUI 是 Apple 發布於 2019 年 WWDC 大會的基於 Swift 的UI框架,結合了代碼 UI 編輯和 Storyboard 圖形化 UI 繪制的優點。因此 Swift Playgrounds 默認將 SwiftUI 作為創建一個空白 .swiftpm 工程後的初始界面模板。
如果你對 SwiftUI 還不熟悉,網上有不少優秀的教程內容可以學習,你可以在 Swift Playgrounds 跟著教程一起學習。當然,有時候自動補全功能的失效會給學習者帶來一點點困惑,我希望這個 Bug(但願不是一個 feature)能夠被盡早修復。當然,你也可以使用 UIKit 來實現界面,不過我認為現有的工作流更為 SwiftUI 量身打造。
嘗試 AR 體驗:如果你想在 Swift Playgrounds 開發的 App 中體驗一下 AR,Apple 的 AR Quick Look 頁面提供了不少開放的模型。我們可以通過創建 ARQuickLookPreview 來載入各類 USDZ 文件。
社群:現在基於 Swift Playgrounds 開發 App 的愛好者社群還在萌芽階段,因此找一個有 iOS 等生態開發經驗的朋友能夠極大提高你的學習速度。當然,你也可以創建一個社群讓好朋友們一起交流討論。比如少數派本身便是這樣一個不錯的社群,期待各位能在其中共同學習,各顯神通。
當然,瑕不掩瑜,我依然為這一次 Swift Playgrounds 的重大升級深感高興。在 iPad 上進行「真正」地開發 App 的呼聲從 iPad 推出之日起便此起彼伏。我在初中擁有第一台 iPad 2 的時候,就千方百計地嘗試用它來開發點什麼,而這一次的 Swift Playgrounds 升級則真正地表明了 Apple 的立場。
我一直不很在意關於 iPad 生產力的爭論。然而,我和身邊不少用戶切身體會到的,確實是 iPad 作為一個 科技 產品,給人源源不斷帶來的幸福感。書桌旁、畫架上、被窩里常常有著它和我形影不離。因此,和 Mac 相比,我一直覺得 iPad 是一個讓人更少異化、更多自由的產品形態。
因此 Swift Playgrounds 正如其名稱一般,也是一個大家能夠在代碼、多媒體內容與知識的 探索 與交互中自如玩耍的地方。在未來,並不會人人都做程序員,但 Everyone Can Code 能夠真正讓 科技 作為一種人文素養,讓每個人都徜徉其間,用開放包容和智慧的心態,面向與人類走向共融共生的通用智能。
庫克表示他不說元宇宙一詞,Apple 看好 AR。
AR、VR、AI、物聯網、區塊鏈、數字孿生、量子計算、Web3、元宇宙…… 各種詞彙總是在不經意間成為資本的寵兒,卻又在悄無聲息中急流勇退,大浪淘沙留下一波真正做事的人。
AR 作為在 iPad 先行的驗證,並被著力主推的技術能力,或許不久就會以全新的硬體形態與大家見面。運行在 iPadOS 之上的 Swift Playgrounds,結合 Apple 軟體全家桶的一系列應用,將進一步將多媒體的創造能力帶給每一個人,而這次會將 3D 沉浸空間體驗的創造也逐步納入進來,Swift Playgrounds 4.0 正是起點。
往後,Swift Playgrounds 結合 Reality Composer App 和大幅升級改造的「地圖」應用,使用 USDZ 格式文件,配合或將推出的穿戴式硬體設備,有可能能夠拓展成為一個「3D 沉浸式體驗編輯器」。它的潛力,可以是下一個時代的「Word」。當然,我們要看 Apple 將如何打這一套組合拳。
最重要的是,機遇永遠不在一家公司手中。創新、創業、創造將是每個人的全新可能,而這正是 Swift Playgrounds 作為這樣一個賦能人的工具,在根本上的意義:Give people wonderful tools, and they'll do wonderful things.
凡是過去,皆為序章。
4. 我想自學IOS軟體開發但是我都不懂該從何學起怎麼入門呢求大神解答
第一步,學習開發語言Objective-C。參考書看《Objective-C基礎教程》這本書就行了。書看到後來還需要補充一些關於面向對象的知識,一般計算機專業的學生都是在學C++的時候接觸這類思想的。我推薦的那本參考書里也會有一些講解,進階的學習需要以後再去看資料,沒有特定教材,因為面向對象是一種編程思想,好在Objective-C本身就是這種思想的體現,以後寫代碼的時候可以慢慢體會。學完《Objective-C基礎教程》,就會對iOS開發中所用到的基礎數據類有一個了解了,這時候應該就可以寫簡單的無界面程序了。
第二步,學習iOS開發的軟體運行原理,軟體開發思想、規范以及一些蘋果公司提供的常用標准UI(User Interface,用戶界面)控制項的使用方法。這個階段推薦的參考書是《iPhone 4與iPad開發基礎教程》,該書有中文譯本,雖然不是最新的iOS教程(最新的教程應該是iOS7開發基礎教程,但是該書沒有中文譯本,如果英文過硬,看這本書當然最好)。
第三步,熟悉常用第三方控制項。因為蘋果本身開放性的局限,其提供的標准開發庫會有一些功能局限,智慧無線的網友們開發了各種各樣的第三方控制項來實現他們想要的功能,可以使開發過程事半功倍。此部分為進階學習內容,需要在掌握前兩步內容的基礎上展開。這一步主要是試用,學習第三方代碼,要求閱讀第三方開發文檔以及代碼多一些。可以與開發同時進行,邊學變進行軟體開發。
除了參考書,這里推薦一個網站「Cocoachina蘋果開發中文站」裡面分享了很多網友的代碼,並且可以對自己學習過程中遇到的問題進行討論。學習初期,中期以及後期進階都可以在這個論壇找到相應的學習資料與代碼,並且可以通過發帖得到大神的技術指點。對應的英文網站是Stackflow,此網站偏重實際開發問題的解決,交流語言為英文。
另外,斯坦福大學每年都開設iOS開發的公開課,從Objective-C的學習到最後的控制項使用以及開發思想,架構的學習,都有涉獵,是很好的視頻教程。網易公開課中有以往課程配中文字幕的視頻,而最新的課程一般沒有中文字幕,並且,該課程選擇默認學生已經有C++編程基礎,可能對於初學者會困難一些。視頻屬於公開資源,在搜索引擎上搜索斯坦福、iOS等關鍵字,即可找到相應資源。剛剛簡單搜索了一下,優酷已經提供iOS7開發的高清視頻專輯。
最後,無論學習哪個操作系統的軟體開發,最關鍵還是要多多練習,因此大量的寫練習代碼,看別人的優秀代碼很重要。