總結下自己的iOS開發之路
對iOS的學習,一開始就是熟悉公司的一個項目源碼。當時,有同事離職,暫時找不到人接收,所以經理讓我接手,我很開心,一是感覺很新鮮,還有就是本身自己想做開發。之前的工作主要是oracle後台的東西,寫存過,有時候用java(jquery)和cognos開發一些報表。
一開始當然是很陌生,對objc語法,程序結構等各種都不太理解,還好我那位同事交接的時候講得很仔細,很有條例,所以熟悉起來還是比較快,還有當然我的邏輯思維能力還是蠻強的。對項目的熟悉,首先是整體架構的認識(業務上的結構、程序的整體結構),然後一層一層往下撥,私下的時候會去學習一些基礎的東西。我主要從程序的源頭開始熟悉,一層一層往下的過程中,不懂的東西就百度,問問新手群裡面的朋友等等。慢慢地熟悉,上手,感覺很有成就感。一開始,這個項目主要是加一些功能,所以只要熟悉一下原來程序的架構,知道框架如何用就可以開發基本功能了。其實到這裡的時候,我感覺自己學的東西真的還是很淺,只是加些功能,內部的很多東西、代碼邏輯還是沒能很清晰。
今年元旦的時候,客戶提出項目不美觀,業務邏輯混亂,我們經理就找了一個美工,系統設計整個項目。我的工作就是根據美工的設計重新開始做整個項目,一開始真蒙了,美工設計的很多效果都需要自定義,很多控件的使用等等都不熟悉,那段時間不斷邊做邊學,晚上3.4點睡,壓力特別大,但是還是堅持了,不能丟人不是。當時美工設計底部循環滾動的tabbar,我研究了好久才弄出來(哈哈,當然現在覺得還是挺簡單的,百度下別人的實現,找到可用的再修改,如果沒有可用的,就自定義控件)。
到現在項目開發差不多了,從客戶端的顯示,到數據(webservice獲取數據,解析xml數據)等等,現在對客戶端的開發也比較如魚得水了!我感覺有關界面的開發,是比較細致的活兒,一定要保持頭腦清晰,理清如何布局,控件重用。很多效果都可用通過自定義view實現、合理組織viewcontrollers等等。登錄、注冊這塊,加密解密的學習,自動登錄的控制等等。
小小總結下;
1.登錄、注冊這塊,密碼的加密和解密很重要-熟悉加密、解密算法,實現自動登錄,用戶權限控制(根據用戶角色,控制用戶可看的內容)
2.數據獲取,通過webserce方式,數據格式為xml,很多第三方控件可實現xml和json格式的解析。
3.界面開發,很多效果可通過自定義view實現。
4.利用容器組織viewcontrollers ,也可自定義容器(最近發現可用addchildviewcontroller實現自定義容器,子viewcontrollers可通過:transitionFromViewController:toViewController:duration:options:animations:completion: willMoveToParentViewController: did 實現跳轉~還挺好用,可實現自定義uitabbarviewcontroller)。
5.數據加載的時候,同步異步,多線程等等就很重要了。
6.一開始就顧著實現功能去了,沒有太去管代碼的重用、可維護性。~~後來需求變更的時候,發現很難維護。所以意識到,需求分析的時候一定要對功能做個分類,搭建程序的主體架構,整理可重用的部分。
7.性能優化~內存洩漏的檢測等等。
說真的,現在的代碼快收尾了,但感覺有點亂,不易維護。~~這也正是給我機會,學習代碼重構,調優。最近在研究畫類圖、流程圖(大學學過,還是比較熟悉),以後接手的人,對整個項目就會有清晰的認識。我自己也覺得畫類圖、流程圖特別重要,在開發中可以對項目有很清晰的認識,改動也心中有數,不至於忘記、漏掉某些重要的東西。
最近的學習計劃:
1.項目-代碼重構,調優;
2.項目-性能優化;
3.學習-地圖、導航;分享;即時通訊;動畫;語音、視頻播放;~~一些常用技術/常用特效的學習。
早就想系統的總結下這段時間工作、學習情況,不斷總結提高自己的表達能力、從iOS開發到現在,感覺還是比較有成就感,現在能獨立完成項目了,遇到問題也不擔心不害怕了,有信心去解決。慢慢理解了IT嘛,開發中總會遇到很多問題、很多不懂的東西,只要耐心去解決,沒有什麼問題是不能解決的,再不行也有折中的辦法。~~~加油加油。。。睡覺了。