你的第一個 iOS 項目是什麼?

打算著手實現自己的第一個項目(用於實習面試),有什麼好的建議嗎?


「100件小事」。100件小事 on the App Store

兩年前寫這個 APP,是為了記錄我和老婆之間的那些很小的溫暖的點滴,同時也是想嘗試一下iOS的開發。

找了很靠譜的交互同學@鄭劍秋 幫我理順了前後流程和原型邏輯,我老婆愛意滿滿的列出了100件我們想一起去做的事情,然後就開始對著 Photoshop 和 Xcode 擼了三四個月的代碼,直到審核通過上架 App Store。

關於建議

1. 它最好是一個不太複雜的東西,新手上路,坑會很多,太多不確定性會影響進度和質量,更會影響你的信心。

2. 它最好是一個簡單的東西,如果你要做功能性的,它就是用來專門解決某個特定需求的。不要加太多東西在裡面,聚焦到你要做的事情上面,不要太發散。

3. 它最好是一個漂亮的東西,如果你有學設計或者交互的朋友,拉他入伙吧,如果碰巧有想找工作App設計的大學生朋友再好不過了,一個團隊比一個人效率和質量高太多了,精心設計的界面是告別小作坊的第一步。

4. 它是一個規範的App,在你動手之前,一定要仔細閱讀蘋果交互規範,不但能使你的App更易用,還能保證審核上架的速度。

5. 使用開源的框架,在寫100件小事的時候,用了幾個很棒的框架,友盟的社會化組件、MBProgressHUD、AFNetworking等。這些神器會加快你的進度,而且優秀的源碼是非常棒的代碼教材。

還有分離好代碼,項目架構,這些能培養你的代碼習慣,也很方便日後的維護和迭代。100件小事的代碼現在已經不敢看了=_=

就這些,認真的把它做簡單做完整。

然後,騰訊成都,招iOS、前端

xiaofeng@besttime.us 你懂...

很久沒有維護了,截圖


抗戰紀念館

學到了很多東西。包括但不限於以下:

tableview

autolayout

鍵盤處理

cocoapod

網路相關

Apple HIG

三方分享SDK

我開始學的時候先把ITunes U老爺爺看完。然後裝上Alfred + Dash邊查邊寫


嘗試去解決一個問題吧。

本人現在已經上線了幾款獨立開發的App,做東西的原因之一也是為以後應聘做準備。

有幸也做出了 AppStore 總榜 Top50 的應用,嘗試給出一些建議吧:

1.【把你的產品上架】只有讓它上架,你才會知道,自己平時做小項目的時候,一些「我這東西不上架,不用搞這麼麻煩」的東西,到後來,可能會變成必須的,而且你還不一定能輕鬆搞的定。

2.【嘗試去解決一個問題】目前上線的幾款作品中,有些是真的解決了一些市場上還沒有App解決了的問題(或者解決的程度很低),這些App,一來可以盈利(能解決用戶一個問題的東西,真的可以讓用戶毫不猶豫付費的,別人不做,你做了,這就是一種壟斷);還有的App,自己做的時候感覺熱血沸騰,感覺雖然這個東西別人做過類似的,但是自己做的就是要好一些……等東西發布了,時間一長,冷靜了,就會發現,這東西不僅用戶不感興趣,自己都覺得一般般。

3.【造輪子】我個人沒造出來過什麼好輪子,冒昧地建議一下吧。發布在Github上的東西,其實也是產品,只不過你的用戶是開發者而已,不要因為沒有金錢回報就偷工減料。注釋盡量寫好,耦合性盡量降低,別隨便做出來個什麼鬼東西(自己三五天搞個小項目,覺得很滿意,覺得很適合初學者, etc)都往上放,然後過了幾個月還是0個star(我自己就這麼幹了,現在很後悔)。

第一個項目是收費的,還是放免費項目的鏈接吧:https://itunes.apple.com/app/id1028844347


cnBeta 的一個三方客戶端


當時看一本書《混沌與分形:科學的新疆界(第2版)》,(這本書我一直沒有看完)。其中有一章講述 Multiple Reduction Copy Machine,幾個基本的形狀,再有些基本變換,一代代迭代下去,最終會產生一個圖形。根據這個理論,做了我第一個 iOS 程序,叫 GeoCopier。界面如下,現在看來界面實在太難看了。

黃色那個平行四邊形是最開始的,跟著添加編輯裡面的紅色小平行四邊形。這樣黃色和紅色的平行四邊形可以計算出一個變換。之後,就 1 個變 4 個,4 個變 16 個,這樣一代代迭代,不斷產生小平行四邊形。最終會收斂成一個圖形。

我還記得那本書裡面有個圖形是一片樹葉的,但需要迭代很多次,而當時還是 iOS 3.1.2, 我用的機器是台 iPod Touch, 迭代太多代就會很卡,一直生成不了那片樹葉。最終這個小 App 上架了 App Store, 血本無歸,之後開發者賬號沒有續費,就下架了。

其實我現在有點小衝動,在 Mac 機上重新做這個小軟體的。


既然題主你問做個項目去找工作吧。我就說說自己的背景和經歷吧,順便能提供些意見給你。

我是電子信息工程專業畢業的,大一連C語言都不會就買一塊ARM9開發板來弄,做了四年嵌入式,找工作不理想,跟個人的職業發展規劃有出入。畢業答辯拿了學校的優秀論文和創新獎後,在學校圖書館裡面蹲了三個月,自學iOS和看演算法導論,做了一個連連看和新浪微博。找工作花了十幾天,找到幾份比較滿意的工作,後來去了一家創業公司。去了不到一周,公司的Android工程師相繼離職,老闆說我可不可以頂一段時間,我就花了兩周時間,學習Android,把公司的APP重寫了一遍,現在公司的Android APP客戶端是由我負責開發。

題主,你想做項目用來找實習或者工作的話,我的意見就是——項目不在多,做能夠跟網路進行交互的APP,而且還是直接調用介面而不是用別人寫好的SDK做出來的APP最好。在做的過程中,把遇到的問題和怎樣解決問題的方法和思路記錄下來。做完項目之後,回想自己做的APP,用了什麼設計模式,單例模式?委託模式?還是門面模式或者是裝飾器模式?這些模式用在這些地方的作用是什麼?請求網路採用的是同步還是非同步?如果用非同步請求,回調可能會產生什麼問題?APP是否要下載圖片?下載圖片的緩存策略是什麼?是否用到面向對象的單一職責原則、開閉原則、里氏代換原則、依賴倒置原則、介面隔離原則和迪米特原則中的一種或者幾種?然後用總結性的語句寫到簡歷裡面去,比如用以下的形式:

1、我用什麼東西實現了什麼功能,使用什麼模式,遇到什麼困難,用什麼 方法解決。

2、我用什麼東西實現了什麼功能,使用了什麼方式和手段對代碼進行了哪些優化。

3、圖片下載我用了什麼緩存策略,在編寫緩存策略的時候遇到什麼問題,怎麼解決的。

4、我對APP做了哪些優化,優化前和優化後,網路請求是否減少,內存使用是否減少,是否提高了APP的流暢度等。

使用簡單的總結性語句,將自己做過的東西,使用的方法、手段、設計模式、面向對象原則、遇到的困難以及解決方法寫到項目經歷中去。這樣,別人在看你簡歷的時候,基本大體上能夠知道你是否滿足公司的要求,是否願意花時間和精力去面試你。我不是教你怎麼寫簡歷,而是教你怎樣把自己做過的東西簡潔地表達出來,這樣公司看到你的簡歷,覺得你是一個比較簡潔精練的人,以後招進來,交流起來也會比較方便,公司願意給機會給你面試,接下來的面試就看自己的水平了。

面試的時候別說謊,知道多少是多少。大多數人就算是在自己擅長的領域裡面也是有不知道的東西,因為人的精力是有限的,誠實地面對自己的短板就是。大多數公司覺得你是一個誠實的、值得培養的人,那麼你離拿到Offer也不遠了。


更新:終於上線AppStore

https://appsto.re/cn/_1zkcb.i

知乎首答,好緊張 ~~

花了10天時間,做了這個校園社交功能app。

目前已經實現基本功能:

登錄

新特性界面

天氣刷新

課表自動導入切換

成績查詢

消息下拉刷新。

最近要考試了,寒假回家把它完善。

代碼還在完善,如果有興趣,加一個星星呀~~

GitHub - BigBugGrow/lkd-helper-iOS: an campus app for ustl

感謝@Infinitytron,@洋子提供的UI和介面~~

遼科大助手iOS版功能演示(視頻)

以下是截圖:


給學校做了個教務系統客戶端。好多功能沒完成。全是解析html,模擬web瀏覽器的HTTP請求乾的。學校連個json介面都沒有,就不吐槽了。


2011 年的時候開始準備做自己的社交軟體 Piner,核心是圍繞計劃,讓有相同計劃的人可以互相關注,社交。

一開始也搞不清楚 iOS 到底是啥,但看到 Path 實現了那麼多效果,感覺應該是可以實現的。搞了半天后不得法門,心想要不我就用 HTML5 來實現吧。於是最終就做成了一個混合開發的 App。

時間線上的 Card 全是 Web 的,用 JavaScript Bridge 來通信。

側滑菜單是原生的,找了個開源控制項套上。

2013 年的時候,iOS 7 發布,我全新設計了整個 App,當時 Rails 完全作為 API Server 使用,不再有混合開的元素。

全部是 Native,UI 控制項也全部是自己開發了。也是這個原因順帶開發了 PNChart 這個開源 iOS 圖表庫。

這個項目當時具備了

  • Feed 圖片 視頻 語音
  • 關注與社交分享
  • 推送
  • iOS 客戶端
  • Web 版本

完成度還是非常高的,視頻部分因為當時 Vine 已經出現了,所以就研究了下那種段視頻的開發方式。也是為後來開發秒視打下了基礎吧。


謝謝邀請。慚愧慚愧啊,我還沒有做過自己的一個app,都是在公司做的,看了 些人的回答,我準備把我前幾天想要放棄的app努力擼完。


把App Store排行榜中各分類的頭一名拿出來看看,如果你覺得你能做得更好的話,你就做那個。


https://github.com/Obisoft2017/VSpace


很久以前幫朋友做了個點餐客戶端,那時候還沒有Mac,用的虛擬機開發 真是難受

其實剛開始做什麼都一樣 要是沒有伺服器的基礎的話建議做一下第三方的客戶端啥的。 比如說寫個Github的客戶端呀。 微博的啊啥的。有現成的API。入門很方便。 但是寫的好與差區別又很大,要寫好的話也是需要費點心思的


FreePP,一款語音視頻的社交軟體,在2011年用戶突破千萬,可惜現在沒落了。


遊戲 三個機器人:在 App Store 上的內容

開始是收費的,但由於銷量一直不好,乾脆免費了~


叫Pie.難到炸。

剛學會基本控制項被弄去做短視頻和濾鏡處理。

仿City Guides的交互和地圖。

做Vine的六秒錄製。

但是,有多大的難度就有多大的收穫。

做一個寫寫data bind 的tableview和一個炫酷動畫,吊炸天交互的tableview的成就感完全不是一個檔次。

進步那是每天最直接的體會。

那段經歷太棒了。感謝。


更新走一波:

這幾天上了一下第二個app

是一個很簡單的天氣預報軟體

代碼寫得亂七八糟的

上個圖

你可以在App Store 中搜到:YuWeather

--------------------------------------------------------------------------------

原文如下:

一個記賬軟體。

長得很醜,但是喜歡這個平台。

第一次上架就出現大bug,想哭。

希望可以走得遠吧


Tatomato ( https://itunes.apple.com/us/app/tatomato/id1077609826?mt=8 )

想法來自於在 Coursera 上學習 Learning how to learn 這門課時,裡面提到通過「番茄工作法」可以養成不拖延的好習慣,於是開始了解「番茄工作法」,在知道其原理後,便想要不我自己寫一個 iOS 應用吧,不管怎麼樣自己用,於是就開始幹了...設計 + 編碼都干真是一件很有趣味性的事情。

我沒糾結過是用 Swift 還是 Objective-C,因為之前對 Python 語法相對比較熟悉一些,於是直接上手 Swift,寫了 10 多天,第一個 iOS 項目就上線啦~

剛開始肯定是痛苦的,因為真正準備做一個項目上線到 App Store 還是不太一樣,對於某些你覺得異常簡單的東西,覺得簡單得不要錢就能實現的效果,在你真正開始考慮到各個細節後,就會發現和自己想像中的有差別,遇到這種情況的時候怎麼辦?Google + Stackoverflow + Apple Developer Document 是你絕佳伴侶。

我認為將你想做的東西實現出來是件 Fuckin" Awesome 的事情,提高姿勢水平總是必要的,從開始 Coding 到上線 App Store,走一個完整流程非常好玩:)

總之,整個過程讓我激動。


當時iPad剛出來,

和lp一起玩一個總共30關的連連看,

玩到27還是28關的時候,

過不去了,

太難了。

於是幾個月後,

我的一個遊戲上架了,

也是30關,

而且比那個更難。

當時沒有Mac,

用的黑蘋果。

直到現在,

那個遊戲每天還能給我帶來50元左右的收入。


找一個好的開源項目,去理解它的實現,在新項目中去模仿它。

直到你理解了第一個開源項目,就去找第二個。

重複幾個這樣的項目,就出師了。


推薦閱讀:

如何評價 2016 年 4 月 23 日在上海舉辦的 SwiftCon 大會?
iPhone 6 和 6 Plus 新增的屏幕尺寸會如何影響 iOS 應用的界面設計?

TAG:iOS | iOS開發 | Objective-C | Swift語言 |