你的第一個 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/id1028844347cnBeta 的一個三方客戶端
當時看一本書《混沌與分形:科學的新疆界(第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語言 |