10步成為專業iOS開發者——新手向,從零起步

来源:http://www.cnblogs.com/shouce/archive/2016/06/07/5565922.html
-Advertisement-
Play Games

想在移動開發大餐中分一杯羹,體驗最火最炫的技術?小伙子,很有眼光嘛 毫無疑問,移動開發在目前和未來幾年內都會盛極一時。無數開發職位虛位以待。各大公司都在尋找各種層次的程式員——新手級、入門級、中級、老手、專家。 本文是寫給新手們的——我會幫你們找到第一份iOS開發工作。 “我幹嘛聽你的?”, 你可能 ...


  想在移動開發大餐中分一杯羹,體驗最火最炫的技術?小伙子,很有眼光嘛

  毫無疑問,移動開發在目前和未來幾年內都會盛極一時。無數開發職位虛位以待。各大公司都在尋找各種層次的程式員——新手級、入門級、中級、老手、專家。 本文是寫給新手們的——我會幫你們找到第一份iOS開發工作。

“我幹嘛聽你的?”,

  你可能會這麼說。是個問題——如果是菜鳥亂給建議,那倒是不聽最好。
我也不是什麼大神,甚至也不算是特別有經驗的iOS開發者——但我足夠瞭解市場,因此可以對你有些幫助。

  最初我是一個獨立開發者,擁有幾個收入不高(但也足夠讓我實現溫飽而專心做開發)的應用。之後,我作為初級iOS開發者加入了一家公司,終於能全心全意做應用、甭擔心明天吃啥這種問題了。如果我願意,我完全可以找個公司打工衣食無憂(但可能這並不適合我——我的身體里流著創業的血液)。

  現在,少說多做——如何才能成為一名iOS開發者呢?

 1.買一個Mac(如果沒iPhone的話,還得賣個腎)。

  iOS開發需要Mac。

  好吧,其實也能退而求其次(比如hackintosh,或Mac In Cloud),但聽我苦口婆心一言——對於iOS開發者來說,Mac會是你的主要武器。一般情況下,你無需放血去買最新、最快、最貴的設備,但好歹得有個叫Mac的東西。當然,如果你是小土豪,想買個好一點的入門設備,那不妨考慮一下Mac Mini——它可能是性價比最高的一款。如果你和我一樣追求便攜性,那就買Air——特別是它的大屏版。我們也不是非得買新品不可,從eBay上搞個二手貨也是棒棒的。

 2.安裝Xcode。

  現在,當你有了閃閃發亮的全新(好的二手貨也跟新的差不多)Mac之後,下一步就是安裝[Xcode]了,它可是對iOS開發者而言最重要的軟體。Xcode是開發iOS應用的IDE(集成開發環境)。它是免費的,你可以直接從Mac App Store下載。現在就去下,別磨嘰!

  你會在Xcode中寫代碼、編輯、在storyboard中“畫”出應用、進行單元測試,等等。你也需要用Xcode來上傳應用到App Store。你得儘可能地熟悉它,因為它是每個iOS開發者最重要的軟體。

 3.學習編程基礎(可能是最難的一點)。

  現在我們可能到最難的一步了——你需要直接開始編程。如果你有一定的編程基礎,那就可以在Objective-C(難一些)和Swift(簡單一些)當中挑一個,大概也沒那麼糾結——它們基本上是標準的面向對象編程語言。但是如果你一行代碼都沒寫過,那也別慌——這有兩個純新手的福利資源:

  1. Ry’s Objective-C tutorial?——適合“戀舊”的Objective-C愛好者。你不用把Obejective-C學得多精(Swift才是未來大勢<或者已經是當下大勢了>),但最好能瞭解其基礎知識,並可以讀懂用它寫出來的代碼。

  2. Swift language guide ,由蘋果官方提供——這是最好的Swift參考和學習資料。蘋果出品,必屬精品。
    當然,你不必深入理解所有東西——等你更有經驗了再談這些。但是你必須好好理解變數、指針、類、數據類型和迴圈這些概念。這樣,你以後的學習才能水到渠成。

  4.跟著教程,依樣畫葫蘆

  從這一步開始,你終於要做點有用的東西了。看看這些網站:

  1. AppCoda ——對初學者而言可能是最好的起點。你可以找到大量不同的教程,它們都有非常詳細的說明。一定要都看下來!

  2. Ray Wenderlich ——另一個有用的網站,它擁有海量的iOS開發教程資料庫。一步一步從中學習吧。
    但不要局限在這些網站和教程上!繼續前進,開發一個計算器應用。然後是天氣應用。再有就是匯率換算應用。音樂應用。明白了嗎?只要能找到相關教程,就把它們都做出來。

  推薦閱讀:

  一直跟著教程學做應用,直到你覺得自己運用Xcode和編程語言(你所選的Objective-C或Swift)都很熟練了。這時候,我們繼續前進——

 5.著手開發自己的應用

  OK,我們越來越進入狀態了。現在,你要開始開發自己的應用,它將成為你日後面試的法寶。

  別害怕!又不是讓你開發Facebook。咱得從初級職位開始,沒錯吧?在初級職位上,你可以從同事身上大量學習知識。好高騖遠沒用,你不可能一下子成為有五年經驗的專家。

  因此,你應該保持內心平靜,思考一下目前自己最擅長的iOS開發領域是什麼。

  或許你開發過一個網路相關的應用?或許你研究過UIKit,並且很擅長做複雜的用戶界面?再或者你開發過一個音樂播放器應用,喜歡iOS的音頻?你得利用好自己的興趣和知識,以此為開發應用的基礎。要寫出整潔、有風格、運行良好的代碼。

 6.在此期間,希望你能同時儘量多學一點軟體開發的綜合知識。

  你正在閱讀本文,這多少說明瞭你近期不打算去大學修習電腦。好消息是!你根本不必去!

  你可以在家打開電腦,學很多關於電腦科學、編程、軟體工程之類的課程。

  當然,這跟學位還是沒法比的,不過單就iOS開發而言卻已經足夠了。看到上面的圖片了嗎?讀讀上面的文字。我不會把鏈接拱手奉上——信息搜索是開發者最重要的技能之一。開始訓練。Google是你的良師益友。

 7.完成應用。

  你專心於學習和開發應用,這樣過去了幾天、幾個星期、幾個月……親,你該有一款自己像樣的應用了。應用就是你的簡歷——你必須全力以赴。甚至說,鞠躬盡瘁。公司會希望從你的應用中看到什麼呢?這裡有一些建議:

  • 運行良好的應用
  • 整潔的代碼
  • 代碼結構——小巧的類、合適的變數命名、Xcode中良好的文件分組,等等
  • 對storyboard的使用(如果你既能用storyboard又能徒手編程寫用戶界面的話,那就碉堡了)
  • 對CocoaPods的使用
  • 一些簡單的單元測試
  • 對第三方庫的使用(例如GitHub上的一些開源項目——這將是一大加分項,因為實際工作中這非常有用)

  順便,如果你正在尋找一些炫酷的iOS開源庫的話,不妨看我另一篇文章:

  當然,一切都取決於你想找什麼樣的工作和什麼樣的公司,但總體而言,學好上述話,走遍天下都不怕。

  OK,現在你有了自己狂拽炫酷的應用。下一步——

 8.在App Store發佈應用

  呃,我得說清楚——這一步不是必須的,因為它需要一個開發者賬號,而這個賬號呢,每年有99美元的費用,這很有可能會搞得你入不敷出。

  發佈還是不發佈,這是一個問題……它由你說了算。不過,若能成功發佈,很多公司都會把它看做是一個大大的加分項。

  在App Store有自己的應用意味著你熟悉應用發佈流程,熟悉蘋果對於應用的限制(還真不少),熟悉應用本身之外的發佈所需事項(如應用描述、關鍵詞、屏幕截圖、宣傳視頻等等)。

  你可以選擇跳過這一步,但我強烈推薦你能試一下(我的第一份工作應該就是靠我在App Store的應用找到的)。

 9.把應用上傳到GitHub。

  GitHub是一個社交平臺,其主要功能就是源碼分享(與之類似但不如GitHub火還有另一個平臺是,Bitbucket)。

  你可以在此上傳源碼(可設置為公開或私人),可以在此瀏覽其他人的代碼,還可以為開源項目出一份力。GitHub應用廣泛,即使你一直都是獨立開發,那也可以從中獲益許多——你可以更好地組織代碼,並可以獲得可能是最好的備份。

  但你為什麼要上傳應用呢?很簡單,把源碼給你的面試官看。

  別再用郵件發代碼了,長點心吧,這又不是90年代。

 10.聯繫你中意的公司!

 圓夢時刻到——現在,你已經準備好接受第一份iOS開發工作了!可能是從實習生或初級崗位開始,這都不重要——重要的是,你現在有能力找到第一份工作了,萬事開頭難嘛,以後就順利了。

  所以,準備好你的簡歷,找到你所嚮往的公司,然後就與他們一起開發應用吧!

  現在你已經有了一定的開發技能了。在進入崗位之前,你可能會希望試試當獨立開發者的滋味,卻又不知道該去做什麼樣的應用。需要靈感嗎?那就看看每周最佳iOS應用和游戲報告,這是我一手策劃的——那裡有各種各樣的好應用,iOS開發者們一定想去做!

  或許你在App Store中有一個很酷的應用?我每周都自己策劃iOS Apps Weekly,所以給我發送Twitter私信,也許你的應用就是下一輪的App of The Week!

  如果你喜歡這篇文章並想讀更多,請點擊下麵的推薦按鈕——這會激勵我分享更多的東西(我腦子裡的想法可是取之不盡!)你也可以在Twitter上關註我,我會經常發一些關於iOS開發的東西。謝謝!

  Paweł Białecki (@pawel_bialecki) | Twitter:Paweł Białecki(@pawel_bialecki)最新的推特。iOS開發者,電吉他手……

  推薦閱讀:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 每個學過編程的人都寫過“HelloWorld” 但99乘法表,我想也應該成為每個編程初學者的必編程式 這是JavaScript的實現方法,非常適合初學者!!! 以下是代碼及註釋 1 <!DOCTYPE html> 2 <head> 3 <meta http-equiv="Content-Type" ...
  • 在頁面中除了內容圖片以外的圖片都是修飾圖,去掉無意義修飾圖或者用css替換秀試圖效果是減少HTTP請求次數的有效方式。 一:css替換圖片 圓角 陰影 漸變 等css效果在當前主瀏覽器中已得到廣泛的支持,而在之前是通過圖片來實現這些效果的,比如圓角按鈕 圓角按鈕相對來說只需要要一次HTTP請求,但是 ...
  • 在HTML頁面中插入Javascript的主要方法,就是使用<script>元素。這個元素由Netscape創造併在Netscape Navigator 2中首先實現。後來,這個元素就被加入到正式的HTML規範中。HTML4.01為<script>定義了6個屬性,包括defer和async。defe ...
  • 本篇主要簡單介紹了knockoutjs中各種綁定的使用方法,使用這些綁定方法的組合就能簡單地做好一個需要較多動態交互的UI頁面。使用這些方法比較重要的一點就是要記住綁定的都是函數對象,所以可以直接在HTML裡面進行操作,這樣的話有時候 js 代碼結構可以更簡單。 ...
  • iOS 直播 閃光燈的使用 應用場景是這樣的,最近公司決定做一款直播類的軟體. 在開發中就遇到了不曾使用過的硬體功能 閃光燈. 這篇博客將簡單介紹一下閃光燈的使用. ` ` ...
  • 1.第一個Fragment 2.第二個Fragment ...
  • iOS FFmpeg 優秀博客(資源)集錦 這篇博客沒有我自己寫的內容: 主要是對FFmpeg一些優秀博客的記錄 隨時更新 1 "iOS編譯FFmpeg,kxmovie實現視頻播放" 2 "視音頻編解碼技術零基礎學習方法" 3 "一個不依賴FFmpeg的播放器,支持RTMP" ...
  • 說到自定義控制項不得不提的就是介面回調,在Android開發中介面回調用的還是蠻多的。在這篇博客開始的時候呢,我想聊一下iOS的自定義控制項。在iOS中自定義控制項的思路是繼承自UIView, 在UIView的子類中組合一些控制項,對外暴漏一些屬性和回調介面,並留有必要的實現方法。在iOS自定義控制項中常用的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...