UI
主框架
1.利用UIScrollView+本身定義UITbaleViewCell+UICollectionView進行主界面框架的搭建。html
2.建立UINavigationController基類。各功能模塊導航控制器繼承基類實現特有功能,在基類中對樣式作統一更改。優化代碼結構。
3.主架構採用UITabBarController+多UINavigationController的複合結構設計。
4.UITabBarController + UINavigationController 的主架構設計。摒棄抽屜效果提高用戶體驗、個性化的下拉刷新以及 UITableHeaderView,個性化的首頁UITableView
5.使用多StoryBorad模式(故事版相應模塊)進行整體架構設計。在方便後期屏幕適配同一時候有利團隊並行分散開發
6.本身定義tabbar控制器作UIWindow的根控制器。每個子模塊的控制器爲導航控制器
7.主控制器是本身定義 TabBar 。實現不一樣頁面之間的切換。主要結構是產品搜索展現和個人功能
8.利用Storyboard+Autolayout、xib實現界面的高速開發
9.引入了AFNetWorking,SDWebImage,iOS-Slide-Menu等框架ios
新特性
1.使用UICollectionView實現新特性界面,利用3個Cell進行復用可實現N多張圖片的展現,進行圖片循環輪播數據庫
分類篩選編程
標籤欄
1.本身定義TabBar加入到系統控件。使用本身定義UIButton巧妙的加入TabBar中的編輯模板button。
2.在欄目板塊經過兩個tableViewController實現數據互聯json
列表展現
1.使⽤UITableView,UICollectionView組合實現商品分類展⽰,使用戶能有更好購物體驗
2.使用Xib封裝⾃定義TableViewCell、CollectionViewCell,更好的展現單個記錄
3.使⽤UITableView與⾃定義的UITableViewCell展現裝修公司的簡單信息
4.使用UICollectionView及本身定義cell展⽰裝修案例的一些效果圖⽚
5.本身定義UITableViewCell顯示文章標題與簡單介紹,使用SDWebImage開源框架對圖片進行緩存。
6.封裝了cell的Frame模型,使設置cell的Frame更加方便。
7.利用賦值和計算佈局分離、核心畫圖異步繪製cell、高速滑動圖片過濾等對tableview列表進行性能調優 http://www.cocoachina.com/ios/20150602/11968.html
8.利用UICollectionView實現音樂播放界面的流水佈局效果
9.主頁面由tableView展現。本身定義兩種cell。分別用來載入有圖和無圖帖子
10.UITableview的本身主動佈局處理(與Container View的結合)
11.在本身定義的UICollectionCell中顯示旅遊的圖片和文字數據
12.用UIScorllView實現頻道的選擇欄視圖、label的變化
13.本身定義UIScrollview實現各頻道的切換
14.依據獲取的數據來本身定義不一樣的UICollectionviewcell,如單圖、多圖、大圖的新聞
15.直播間用戶發表言論本身定義UITableviewcell,依據文本內容動態計算每個cell的frame設計模式
本身定義行高
1.本身定義Cell,由於沒法獲取微博中圖片的高度,首先利用SDWebImage講圖面下載下來,在使用cell的時候依據圖片的張數,對圖片進行排版,使用約束來控制cell的高度。計算返回行高。
2.利用NSCache來緩存行高。來對tableView進行優化。api
刷新控件
1.使用第三方框架MJRefresh用Scrollview代理監聽滾動視圖的contentoffset,使用UIView的Block動畫改變UITableview的contentInset實現數據上拉載入,下拉刷新效果;
2.本身定義刷新控件。用KVO來監聽UIRefreshControl的view的frame來實現響應的動畫緩存
瀑布流
1.使用UICollectionView的本身定義佈局,並本身定義UICollectionViewCell以及Cell的自適應高度,完畢美食列表展現的瀑布流效果。顯示美食圖庫;
2.本身定義UICollectionViewCell,採用流水佈局實現Cell的九宮格展現;安全
輪播圖
本身定義UIScrollView配合UIPagecontrol監聽完畢分頁功能。使用NSTimer實現圖片輪播效果。
抽屜效果
1.利用View的移動和拖拽事件(pan拖拽,tap點擊)實現抽屜效果進行側滑菜單的開發。
2.側滑效果展現主界面以及本身定義TabBar。
3.本身定義抽屜效果的TarBar控制器,使用塊動畫、手勢效果優化UI效果;
4.左右側滑菜單裏分別顯示欄目板塊和用戶詳情,可以經過手勢切換,也可以經過button點擊切換
提示窗
1.利用MBProgressHUD框架封裝的UIAlertView完畢載入過程當中等待響應的蒙板效果。
2.使用SVProgressHUD來建立登陸或者下載等操做時候的提醒框;
畫中畫
彈出菜單使用 UIPresentationController 實現彈出遮蓋。本身定義CATrasition轉場動畫實現彈出、消失動做。
圖片瀏覽器
經過UICollectionView和轉場動畫實現圖片瀏覽器。
網頁展現
1.使用UIWebView控件載入從server中得到的新聞數據對新聞詳情頁進行展現。
2.使用WebView調用JS語句實現對網頁內容字號大小的調整
3.使用WebView載入html新聞內容。採用oc&js互調放大展現圖片/打開相機/打開系統相冊等
事件監聽
1.使用hitTest和pointInside監聽不規則控件的事件響應,實現點擊人體不一樣部位選擇相應病理分類的功能。
軌跡跟蹤
1.經過UIEvent的事件監聽實現對觸摸事件的軌跡跟蹤,實現塗鴉功能/實現欄目控件的拖動效果
2.使用手勢識別功能加入特殊手勢,雙指滑動放大縮小文本內容
3.使用UIGesturRecognizer手勢識別,實現文件回收站效果,拖拽文件到回收站並刪除指定文件
多控制器管理
1.使用modal(模態)窗體的形式管理視圖,展現狀態編輯界面。收集用戶輸入信息
2.使用本身定義轉場動畫實現多控制器之間的跳轉功能
3.本身定義轉場modal出視圖控制器
佈局
1.使⽤AutoLayout實現佈局控件,設置本身定義中cell的控件之間的位置
2.使⽤AutoLayout佈局設置,適配iOS6〜iOS8,以及常⽤用⼯具類和宏的封裝等。
3.使用Masonry以代碼形式實現全局控件本身主動佈局
4.使用FFAutoLayout進行本身主動佈局
動畫效果
1.使用核心動畫CABasicAnimation設置轉盤transform的rotation屬性實現幸運轉盤功能
2.使用CoreAnimation核心動畫製做華麗的翻頁效果,保證效率的同一時候提升了用戶體驗;
3.利用KVO監聽界面位置的變化,實現頂部導航欄的淡入淡出效果
4.利用動畫來實現抽獎活動轉盤抽獎
5.使用UIImageView實現開獎幀動畫,並對內存進行優化
進度條:使用KVO監聽下載進度屬性。本身定義View重寫drawRect方法,setNeedsDisplay實時重繪
雪花效果(刷幀動畫):使用CADisplayLink刷幀實時重繪,重寫drawRect方法渲染UIImage
時鐘動畫: 對視圖加入CALayer,並調整指針視圖錨點,使用定時器CADisplayLink並匹配當前時間設置指針視圖的transform轉動完畢時鐘動畫
心跳動畫:使用CABasicAnimation基礎動畫設置紅心視圖的layer的transform.scale,實現心跳效果
圖片抖動:使用CAKeyframeAnimation關鍵幀動畫切換layer的transform.rotation屬性,實現圖片抖動效果
翻頁動畫:爲UIImageView加入手勢識別,監聽事件又一次賦值數據並執行CATrasition動畫實現翻頁/淡入淡出/Push/水滴/立方體翻轉效果
全景展現
監聽視圖的UITouch事件。依據touchMoved方法取得偏移量關聯沙盒角度圖片實現車輛的360度全景展現
http://code4app.com/ios/360-Degrees-Image-Sequence/4fb090c56803fa2563000001#
iPad
1.使用UIPopoverController彈出菜譜搜索與選擇界面。
2.使用UIPickview實現網站選擇功能
網絡
1.使用第三方框架AFNetWorking實現網絡數據交互的異步請求。
2.對AFNetWorking中的AFHTTPSessionManager封裝成工具類,實現管理全部的數據訪問,減小了項⺫與第三方框架的耦合度
3.使用MJExtension將server發送回來的Json格式的數據封裝成對象,在載入圖片時,使用SDWebImage實現圖片緩存。
4.設計請求工具類來封裝AFN框架髮網絡,以實現請求業務以實現項目分層管理。
5.網絡交互採用json數據格式。並使用NSJSONSerialization/SBJson/Jsonkit進行json數據解析。
7.使用系統Reachability框架監測網絡狀況,配合NSOperation控制線程數進行節電處理。
8.使用SDWebImage異步下載商品圖⽚並進行內存和硬盤緩存。
9.使用AFN實現網絡請求數據,以及數據解析。提升編程效率。
10.使用第三方框架AFNetworking處理網絡數據訪問。用Block封裝,實現異步處理網絡請求並對錯誤信息進行處理
11.使用AFN單例來管理全局的數據請求,NSURLCache作網絡請求緩存
12.json解析數據,展現論壇內容。用戶可以經過訂閱不一樣內容,來進行展現
13.使用AFNNetworking封裝網絡請求工具類,進而可以使用全局網絡訪問單例處理應用中的全部網絡傳輸數據
14.使用AFNNetworking第三方框架封裝網絡工具類,將框架和工具分離,減小項目對框架的依賴
本身主動刷新
1.開啓異步線程Runloop使用定時器按期拉取網絡數據源,改動數據源本身主動刷新列表數據
2.使用KVO監聽數據源變化,實時調整顯示新信息數據的badgeNumber
註冊登陸
1.高速註冊採用的是集成第三方SSMSDK發送驗證碼到註冊手機上進行註冊;
2.使用Post網絡請求進行數據上傳,實現登陸和數據信息公佈;
第三方登陸
1.使用ShareSDK集成第三方登陸模塊完畢微博、微信、QQ等SSO單點登陸受權
2.使用OAuth2認證完畢用戶登陸。使用UIWebView截取網頁重定向數據截取token,完畢SSO受權
3.經過騰訊和新浪的SSO受權,實現微信、微信、QQ第三方登錄功能。
加密
1.用戶登陸註冊使用 ((pwd+key)hmac+server時間)hmac 時間戳的解決方式。保證帳戶安全性和實時性。
2. 使用sskeychain保存鑰匙串。
下載
下載進度:使用NSURLConnection的代理監聽,獲取下載的數據段,並實現下載進度跟進。使用異步下載
斷點續傳:使用head請求檢查server段文件大小,使用NSFileManager獲取本地文件大小設置爲http請求頭的range字段,進行網絡請求
文件上傳
1.使用NSURLConnection進行POST請求使用multipart/form-data文件類型拼接mimeType實現文件上傳功能(文件大小限定2M)
2.使用NSURLSession進行PUT請求結合WebDAVserver實現大文件上傳功能
數據存儲
1.使⽤FMDB框架實現書庫數據緩存,減輕server頻繁被訪問的壓力和減小用戶數據流量的浪費。提升用戶體驗
2.使用NSUserDefaults保存用戶配置信息,如本身主動登陸。帳戶信息等
3.使用FMDB第三方數據庫框架實現SQLite數據庫管理
4.模仿SDWebimage對獲取的紅包圖片轉化成NSData類型二進制數據寫入沙盒進行歸檔,本地保存圖片,生成下載url的md5做爲圖片查找key以保證惟一性
5.使用NSFileManager對磁盤緩存進行管理,使用替換路徑方式清理磁盤緩存
6.使用 FMDB 完畢數據持久化功能,結合圖片緩存,提高用戶體驗
7.SDWebImage 實現圖片的異步下載與緩存,內存緩存以及磁盤緩存。提高用戶斷開鏈接時的用戶體驗。程序進入後臺本身主動清理
8.抽取用戶行爲。本身定義用戶模型對象,利用歸檔保存用戶信息
9.用戶登陸信息存入沙盒,可以本身主動登陸和記住password
10.編寫專門的數據處理工具類。利用NSCoding實現模型數據的存儲和讀取
11.利用SDWebImage實現圖片異步下載、圖片緩存、防止圖片反覆下載、圖片緩存清理等
12.利用SQlite3實現收藏、近期瀏覽的數據本地緩存
13.用SQlite3實現本地數據緩存。提高client與server之間的通信性能
14.採用CoreData做爲應用的數據庫技術,更好的管理數據庫訪問性能和關聯表的更新
設計模式
1.對標籤頁進行共性的抽取並封裝成對象,將一些共性的方法比方初始化界面,載入數據等操做封裝到工具類中,提升了程序的擴展性。
2.使用GCD實現單例模式封裝用戶登陸模塊。
3.嚴格遵循MVC設計模式開發,減小各個模塊的耦合度。
4.對封裝框架建立Category,按功能分佈式管理核心類,使用runtime機制動態關聯對象。給對象加入屬性
5.使用MVC模式。分工處理各功能模塊;
6.使用消息機制、代理和BLOCK來實現各界面之間跳轉時數據的傳遞。
數據傳遞
1.使用NSNotificationCenter進行多控制器消息通知,實現消息列表及消息詳情等多界面監聽新消息提醒。
2.使用Protocol對通信錄列表頁和編輯頁進行代理模式消息傳遞,減小應用耦合度,提升模塊複用。
3.經過MJExtension使用runtime機制動態載入模型數據,使開發更有效率。
4.利用Block對AFN的GET/POST數據請求進行封裝。保證消息響應代碼的高度集中。
5.本身定義cell建立Block屬性。利用策略模式封裝cell響應的詳細表現。
6.經過 Runtime 動態獲取屬性列表,替代字典轉模型工具 JSONModal, 是代碼更加輕量高效
7.使用runtime機制動態獲取屬性列表的技術。高速有效完畢字典轉模型、對象歸解檔操做。
8.使用通知來實現登陸、歡迎、未登陸界面的切換
9.利用Runtime執行時機制,優化字典數據轉模型數據的速度
10.貫徹MVC設計模式,大量使用字典轉模型進行數據載入和建模
11.MVC設計模式開發。面向接口、模型開發。實現完全封裝,最低耦合度。
12.給NSObject加入分類,利用Runtime機制動態獲取類的屬性列表關聯到模型數據中
有用技術
數據統計&社會化分享
1.使用UmengSDK完畢應用數據統計,實時監控各欄目的用戶需求,並集成分享模塊實現一鍵社會化分享功能。
2.經過友盟分享。讓用戶把在咱們APP看到的信息分享到他的新浪微博、微信朋友圈。
遠程推送
使用JPush激光推送集成APNS實現遠程通知功能。按期爲用戶推薦最新商戶信息。
相機
使用系統相機API設置UIImagePicker控制器。調用系統相機App和系統相冊,實現拍照和相冊讀取功能。
截屏/截圖
使用UIKit的Core Graphics(核心畫圖)api截取window範圍內容,生成圖片並保存到相冊中。
支付
使用單例封裝UPPay和AliPay框架,接入銀聯和支付寶兩大主流支付方式,打通應用支付環節。
地圖定位
1.使用BMapKit框架,利用百度地圖API實現移動導航功能。
2.使用CoreLocation實現地圖定位並捕獲地理信息。使用MapKit實現大頭針功能,標記地址位置和行車路線。
3.利用高德地圖開放API進行定位和周邊團購數據查找。
4.使用Mapkit、CLLocation、本身定義MKAnnotation View實現地圖上標識地鐵出入站口位置/顯示商家信息
5.使用UIScrollview展現線路圖。支持手勢縮放查看
二維碼
1.使用AVFoundation捕獲攝像頭輸出的二維碼相應的URL並進行載入來實現二維碼掃描
2.使用CIFilter濾鏡設置二維碼類型和相應信息生成二維碼名片
搜索
1.使用科大語音訊飛API集成語音識別功能,將語音轉爲文本並經過謂詞過濾實現語音搜索功能。查找病人病歷
http://code4app.com/ios/%E8%AE%AF%E9%A3%9E%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB/53514bb1933bf0914a8b52d9
2.基於正則表達式的搜索功能
3.首個頁面「搜菜譜」隨機載入一組數據經過彈跳方式展現在頁面上,用戶點擊就可以本身主動進行搜索,或者輸入所要搜索的內容,手動點擊搜索。
4.使用PinYin4Objc獲取可選欄目的拼音字符串並保存到模型。使用NSPredicate謂詞過濾匹配用戶輸入的拼音結果實現拼音搜索功能
圖文混排
1.優化寫日記功能,支持加入多張圖片、圖文混排編輯。
2.使用NSAttributedString的附件屬性attachment加入本身定義圖片。實現圖文混排。
3.設置表情鍵盤。在數據模型中實現圖文混排
源碼管理
使用CocoaPods來管理各第三方框架。
圖片水印
1.假水印:新聞圖片使用核心畫圖重寫UIView的drawRect方法,畫字符串到UIView中
2.真水印:利用Quartz2D開啓一個基於位圖的圖形上下文,將原圖和水印圖都畫入並生成新圖片
手勢解鎖
經過監聽手勢識別UITouch事件匹配解鎖buttonframe區域,實現手勢解鎖功能
文件管理
1.使用SSZipArchive框架實現對Zip文件的壓縮和解壓縮操做,節省磁盤控件
播放視頻
1.全屏:使用Mediaplayer類庫播放本地視頻。並調用視頻截圖方法接收通知消息截取截屏信息
2.窗體:使用AVPlayer實現視頻播放功能,並經過設置其layer實現窗體播放。及視頻放大縮小功能。
http://code4app.com/search/%E8%A7%86%E9%A2%91/0
3.流媒體:使用MPMoviePlayer載入m3u8格式視頻。實現流媒體播放
ffmpeg 支持mms、rtsp等協議的流媒體
http://code4app.com/ios/%E6%B5%81%E5%AA%92%E4%BD%93%E6%92%AD%E6%94%BE%E5%99%A8/538ed7f4933bf0f1168b519a
音頻音效
音效:使用AudioServices類庫實現iOS音效播放功能
本地音樂:使用AVAudioPlayer類庫實現iOS平臺的本地音樂播放
流媒體音樂:
1.使用AFN下載流媒體數據拼接NSData,使用AVAudioPlayer播放二進制數據 (不穩定)
2.使用AVPlayer載入URL實現流媒體音樂播放功能(沒法拿到數據)
3.使用第三方庫DOUAudioStreamer/Vitamio-online實現流媒體音樂播放
國際化
加入多項InfoPlist.strings配置文件相應不一樣語言。使用NSLocalizedString配置不一樣版本號內容 http://www.cocoachina.com/industry/20140526/8554.html
應用跳轉 1.使用openurl載入指定應用的scheme,實現應用推薦/支付寶跳轉/第三方登陸受權後返回應用的應用間跳轉功能 2.使用openurl調用系統電話APP/郵件APP/短信APP,實現打電話/發郵件/發短信等功能