基礎(chǔ)
目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、繁峙網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
一定的編程經(jīng)驗(yàn)
這里說的編程經(jīng)驗(yàn)是至少熟練一門編程語言,對(duì) OOP 有一定的了解,最好熟悉一些基本的設(shè)計(jì)模式。遇到過的好多 iOS 開發(fā),大多是從別的語言轉(zhuǎn)過來的,所以有一定的編程基礎(chǔ),學(xué)起來會(huì)更容易 get the point.
如果是第一次接觸編程,當(dāng)然也是沒問題的,只是要做好心理準(zhǔn)備,可能會(huì)比想象的難。
英語
發(fā)現(xiàn)不少開發(fā)對(duì)于英語似乎有點(diǎn)接受不能,通常都是中文優(yōu)先,除非迫不得已,才硬著頭皮看看 StackOverflow,英文文章,文檔等。忘了是誰說過「難走的路越走越好走」,通常如此。其實(shí)只要稍微 push 一下自己,那些技術(shù)文章啃下來應(yīng)該不會(huì)有太大的問題,有過幾次成功的體驗(yàn)后,這種恐懼感就會(huì)減少很多。優(yōu)質(zhì)的文章、視頻、書籍,多是英文的,不邁過這個(gè) 坎,將來要么成為瓶頸,要么花更大的成本去填補(bǔ)。
入門
書籍
要學(xué)習(xí) iOS 開發(fā),自然要先學(xué) Objective-C (當(dāng)然現(xiàn)在也可以直接上 Swift,不過如果多人協(xié)作的話,OC目前還是主流),因?yàn)?OC 是 C 語言的超集,所以了解 C 語言對(duì)于學(xué)習(xí) OC 肯定會(huì)有幫助,不過就算不了解,直接學(xué) OC 也沒太大問題。
這里推薦 BNR (Big Nerd Ranch) 的這本 Objective-C Programming The Big Nerd Ranch Guide,講解地比較細(xì)致,能幫助你更好的理解 OC,更重要的是教你遇到問題時(shí),如何去解決問題,以及這個(gè)問題對(duì)應(yīng)的一些知識(shí)點(diǎn),如何使用文檔等等。
來到一個(gè)新的世界,肯定會(huì)對(duì)這個(gè)世界充滿好奇,想訂閱一大堆博客,買一堆書,看各種教程和視頻,然后就變得浮躁,不知該從哪下手,這會(huì)導(dǎo)致拖延癥。 我渴了,給我倒一杯水,這個(gè)很直接,馬上就可以做,但如果是給我買一瓶飲料,而自己對(duì)那些飲料又不怎么熟悉時(shí),就糾結(jié)了,不如刷會(huì)微博,看看朋友圈,玩?zhèn)€小游戲先。
所以一本好的入門教材很重要,要契合自己當(dāng)前的水平,且常常會(huì)有收獲,這種成就感會(huì)激勵(lì)著你繼續(xù)學(xué)下去。
在看書的過程中,往往會(huì)有這樣的經(jīng)歷:書中提到某個(gè)人、觀點(diǎn)、知識(shí)點(diǎn)、書、文章,然后就順著它提到的這些東西出去了,可能某個(gè)知識(shí)點(diǎn)又牽扯到另一些內(nèi)容,然后就這樣越走越遠(yuǎn)。想起了一個(gè)故事——
三只獵狗追一只土拔鼠,土拔鼠逃跑時(shí)鉆進(jìn)了一個(gè)樹洞。這個(gè)樹洞只有一個(gè)出口,不一會(huì)兒,忽然從樹洞里跑出一只兔子。兔子飛快地向前跑,并爬上另一棵大樹。兔子因?yàn)榛艁y在樹上沒站穩(wěn),掉了下來,砸暈了正仰頭看的三只獵狗,最后,兔子終于逃脫。
對(duì)于這個(gè)故事可以從不同的角度去解讀,我更愿意以初心去解讀。兔子為什么會(huì)爬樹?為什么能砸暈三只獵狗?這不是重點(diǎn),重點(diǎn)是,之前追趕的土撥鼠哪去了?看書時(shí)難免會(huì)有延伸閱讀,這個(gè)深度我覺得不宜超過 2 層,不然很容易就回不來了。
還有就是如果有可能,最好每天都看點(diǎn),這其實(shí)是很難的,因?yàn)榭偸菚?huì)有優(yōu)先級(jí)更高的事,或者之前的某些習(xí)慣在干擾。一旦斷了幾天,就不想再拿起來了。
還有,蘋果官方的 Start Developing iOS Apps Today 也是很不錯(cuò)的入門材料。
視頻
推薦斯坦福老頭子(Paul Hegarty)的 Developing iOS 7 Apps for iPhone and iPad ,當(dāng)初也是看的這個(gè)(那時(shí)還是更老的版本),Paul 是資深的 Mac/iOS 開發(fā)(前蘋果員工?),很多知識(shí)點(diǎn)講得很到位,學(xué)生們的提問也大都在點(diǎn)上,同時(shí)配有Demo,總之聽下來會(huì)對(duì) iOS 開發(fā)有比較全面的了解。
同時(shí)推薦一本小冊(cè)子:objc-zen-book,花不長時(shí)間就能看完,里面是一些 Best Practices,對(duì)于編寫優(yōu)質(zhì)代碼會(huì)很有幫助。
筆記
這是一個(gè)持久的過程,任何階段都適用。以前也沒太在意這個(gè),覺得概念性的東西,腦子過一遍,就大概知道了,然后就去啃其他的東西了,現(xiàn)在看來,如果有記筆記的話,會(huì)更有助于消化概念、知識(shí)點(diǎn),也可以記錄自己的思考過程。達(dá)芬奇就記錄了10000多頁的筆記。
記筆記可以加深對(duì)知識(shí)點(diǎn)的理解,而成為編程巨星的唯一秘訣就是:對(duì)所做的事情理解地越深,就會(huì)做得越好。同時(shí)如果遵循遺忘曲線去復(fù)習(xí)的話,效果更佳。對(duì)知識(shí)點(diǎn)了解地足夠透徹后,Debug 時(shí)才更有可能知道問題出在哪,解決問題也更容易有思路。
筆記不僅可以記知識(shí)點(diǎn),也可以記錄調(diào)試過程,比如這篇筆記,有一種調(diào)試方法:小黃鴨調(diào)試法
許多程序員都有過向別人(甚至可能向完全不會(huì)編程的人)提問及解釋編程問題,就在解釋的過程中擊中了問題的解決方案。一邊闡述代碼的意圖一邊觀察它實(shí)際上的意圖并做調(diào)試,這兩者之間的任何不協(xié)調(diào)會(huì)變得很明顯,并且更容易發(fā)現(xiàn)自己的錯(cuò)誤。
生活中我們可能不會(huì)真的這么去做,這時(shí)抽離出另一個(gè)自己,記錄下跟ta的對(duì)話,也是個(gè)發(fā)現(xiàn)問題的好方法。
練習(xí)
這也是一個(gè)持續(xù)的過程,知道了些概念或原理后,總是會(huì)想著去驗(yàn)證下是不是這樣,無論結(jié)果是否如自己預(yù)期,實(shí)踐的過程會(huì)降低對(duì)語言的陌生感,慢慢地培養(yǎng)一種駕馭這門語言的自信,如果出了錯(cuò),正好可以重新梳理一下。
目標(biāo)
如果靜下心來看完了 BNR 的這本書,以及斯坦福的 iOS 開發(fā)視頻,那么對(duì) OC 應(yīng)該比較了解了,一些常用的 UIKit 用起來也沒什么問題了,比如 UIViewController / UIView / UIScrollView / UIImageView / UITableView。也熟悉一些概念,如 KVO / MVC / Delegate / DataSource。
這個(gè)階段下來,應(yīng)該會(huì)有:哦,iOS 開發(fā)也就這樣嘛,多翻翻文檔,熟悉 Cocoa Touch 的一些 Class,差不多也能做出一個(gè)簡單的 App 了。
進(jìn)階
入門之后,接下來可以折騰的東西還會(huì)有不少。
書籍
Effective Objective-C 2.0,里面提到了 52 種提高 iOS App 質(zhì)量的途徑。涉及了 API 設(shè)計(jì)、protocols / category 的使用、寫出更模塊化的代碼等,讀下來應(yīng)該會(huì)有不少收獲。
iOS Programming: The Big Nerd Ranch Guide (4th Edition),又是一本 BNR 的書,這本書的特點(diǎn)是通過 Demo 來引出知識(shí)點(diǎn),然后提一些問題,并且會(huì)細(xì)說解題思路。看書的過程中,對(duì)于元學(xué)習(xí)能力的提升也會(huì)有一定幫助。
--- update ---
發(fā)現(xiàn)巧哥的 iOS開發(fā)進(jìn)階 已經(jīng)可以在京東買到了,雖然沒有細(xì)看,但巧哥出品質(zhì)量肯定有保障。
其他資源
進(jìn)入這個(gè)階段后,可以去探索更大的世界了,現(xiàn)在的資源已經(jīng)很豐富了,但還是要遵循「少而精」的原則。以下是我覺得挺不錯(cuò)的資源
iOS Dev Weekly 每周一期,內(nèi)容多為這一星期里值得關(guān)注的Github項(xiàng)目、文章、工具等。
iOS 移動(dòng)開發(fā)周報(bào) 這是唐巧大大整理的每周不錯(cuò)的 iOS 開發(fā)相關(guān)的內(nèi)容,多為中文。
RayWenderlich 很多詳細(xì)又全面的教程,不容錯(cuò)過。
iOS Dev Slack 國內(nèi)不少 iOS 開發(fā)(包括大大們)都在這里,不過現(xiàn)在好像不怎么能拿到邀請(qǐng)了。
中文 iOS/Mac 開發(fā)博客列表,打開工具訂閱吧。
還有,如果可能的話,多去分享自己學(xué)到的東西,教是最好的學(xué),我試過幾次,效果真的很不錯(cuò)。
目標(biāo)
這個(gè)階段下來,對(duì)于常用的設(shè)計(jì)模式、內(nèi)存管理、Blocks 的使用、圖像操作、網(wǎng)絡(luò)請(qǐng)求和管理、多線程應(yīng)該比較熟悉了。對(duì)于 CALayer、Animation、UIScrollView、UITableView、UICollectionView、 ViewController Container 則非常熟悉,對(duì)「非常熟悉」的定義是:不打開 Xcode,腦子里就能把相應(yīng)的知識(shí)點(diǎn)復(fù)述出來 80% ,比如這個(gè)類有哪些方法,Delegate / DataSource 有哪些方法,怎么使用,如果要實(shí)現(xiàn)某個(gè)效果,應(yīng)該怎么做(好吧, UICollectionView 除外)。
高級(jí)
其實(shí)高級(jí)、進(jìn)階、入門并沒有嚴(yán)格的界限,在入門階段也可以探究高級(jí)階段的一些東西。我覺得支撐我們不斷探索和前進(jìn)的動(dòng)力不是興趣,而是永不滿足的好奇心,和對(duì)優(yōu)雅代碼的追求。
If your standards are low, you're going to stop pretty early on in the process.
BNR 的這篇 Leveling Up 已經(jīng)講得很好了,也更加細(xì)致。
書籍
iOS 7 Programming Pushing the Limits 這本書對(duì) iOS 7 的一些特性會(huì)講解地比較深入,當(dāng)然也不僅僅是 iOS 7。只嘆 iOS 更新實(shí)在太快,書籍往往跟不上,一本好書往往需要很長時(shí)間來撰寫,等書可以出版了,iOS 又出新版本了。
源碼
看優(yōu)秀的源碼,可以學(xué)到很多東西,使用過程中遇到問題也更容易解決。這些是我覺得值得細(xì)看的源碼:AFNetworking(NSOperation, HTTP, Block), SDWebImage(Image Handle, Cache, NSOperation, Block),SVPullToRefresh(UIScrollView, State Handle), JSONModel(runtime)
如果有興趣,也可以翻翻 CoreFoundation / OC runtime 的源碼。
資源
oleb
NSHipster
objc.io || objcio.cn
WWDC 視頻
工具
chisel Facebook 出品的 LLDB 助手,用于調(diào)試很方便
Reveal 每當(dāng)好奇某個(gè) App 的實(shí)現(xiàn)時(shí),都會(huì)打開它一窺究竟,用于調(diào)試自己的 App 也很方便
Aspects steipete 大大出品的一款方便使用 method swizzling 的工具,可以在運(yùn)行時(shí)動(dòng)態(tài)添加代碼到某個(gè)方法
class-dump 從 Mach-O 文件生成 OC 頭文件,有時(shí)想看看某個(gè) App 大概是如何組織的會(huì)比較方便
Hopper 可以對(duì)二進(jìn)制文件進(jìn)行反編譯,甚至可以生成偽代碼!有時(shí)想看看 UIViewController 里某個(gè)方法大概是怎么實(shí)現(xiàn)的,就可以用它。
Instruments 這個(gè)內(nèi)置的工具對(duì)于發(fā)現(xiàn) App 的各種問題很有幫助,如內(nèi)存占用、泄露,渲染問題等。
目標(biāo)
這個(gè)階段,對(duì)于底層的實(shí)現(xiàn)會(huì)有更深入的了解,各種 Core 開頭的 Framework 至少可以說出個(gè)大概,工具也能熟練使用,「正經(jīng)的代碼」寫過數(shù)萬行,可能天天在翻 Dash。如果別人讓你實(shí)現(xiàn)某個(gè)功能,能在較短的時(shí)間內(nèi)給出不錯(cuò)的實(shí)現(xiàn)方案,并且足夠細(xì)致,甚至精細(xì)到如何使用 Core Graphic 去畫某個(gè)圖像。
其他
我覺得無論學(xué)習(xí)什么,「速成」的心態(tài)是最要不得的,這只會(huì)讓自己變得浮躁,一知半解,整個(gè)過程也很難讓自己的元學(xué)習(xí)能力得到提升。慢慢來,攻占一個(gè)城后,再去打下一個(gè),這時(shí)心態(tài)也會(huì)平和許多。
相信各位讀了之前的兩篇文章,對(duì)pods的使用已經(jīng)相當(dāng)熟練了。不過在紛繁復(fù)雜的實(shí)際使用場景下,可能還是會(huì)遇到一些問題。本文就結(jié)合自己的實(shí)踐經(jīng)驗(yàn),做一些快問快答,希望大家能多多補(bǔ)充交流。話不多說,那我們就即刻開始吧!
pod系列文章
Cocoapods,讓iOS開發(fā)更簡單(一):走近Cocoapods
Cocoapods,讓iOS開發(fā)更簡單(二):創(chuàng)建私有庫
Cocoapods,讓iOS開發(fā)更簡單(三):實(shí)踐經(jīng)驗(yàn)匯總
一文帶你快速分清靜態(tài)庫-動(dòng)態(tài)庫-Framework
一般推薦使用指定版本或范圍版本號(hào),以確保依賴的穩(wěn)定性。
總結(jié) :能用pod install解決問題的,就不要用pod update。因?yàn)閜od update會(huì)把依賴庫全部檢查一遍,不僅慢有時(shí)候還會(huì)出現(xiàn)坑。
忽略Pods警告,有些第三方Pod集成進(jìn)來會(huì)有一大堆警告信息,在Podfile中對(duì)應(yīng)的target或分組下加上關(guān)鍵字inhibit_all_warnings!就可以把警告忽略。
作用:
在pods中用frameworks替代.a靜態(tài)庫。
場景:
swift項(xiàng)目pods默認(rèn)開啟(use_frameworks!),OC項(xiàng)目pods默認(rèn)關(guān)閉(#use_frameworks!),同時(shí)需滿足以下兩點(diǎn),
解析:
swift工程依賴了OC工程的話,需要use_modular_headers!
示例:
為某個(gè) Pods 使用模塊化標(biāo)頭,可以使用以下語法:
pod 'TestPodLib', :modular_headers = true
另外,當(dāng)全局使用 use_modular_headers! 屬性時(shí),同時(shí)還可以使用以下方法從模塊化標(biāo)頭中排除特定的Pod:
pod 'TestPodLib', :modular_headers = false
版本格式:主版本號(hào).次版本號(hào).修訂號(hào),版本號(hào)遞增規(guī)則如下:
常用的方式調(diào)用pod中的素材是不生效的,因?yàn)槟J(rèn)是從mainBundle中讀取的,如
打在pod中的素材已經(jīng)不在mainBundle中而在對(duì)應(yīng)組件下的bundle 里面,所以應(yīng)該這么調(diào)用:
在用CocoaPods集成第三方庫之后,默認(rèn)情況下,使用類似#import XXX/YYY.h的方式引入第三方庫的頭文件。
pod search只會(huì)搜索本地緩存的庫,如果想搜索到最新的第三方框架或者某個(gè)框架的最新版本,必須先使用pod repo update。
開發(fā)一個(gè)手機(jī)APP都有哪些步驟?說一下制作流程
1、一個(gè)APP項(xiàng)目的最初首先要確定項(xiàng)目整體方案,整個(gè)項(xiàng)目的規(guī)劃,大體框架,做成文檔展現(xiàn)出來,以便大家提意見和更好的改進(jìn)。也就是說首先要確立產(chǎn)品原型,進(jìn)入項(xiàng)目評(píng)估階段。經(jīng)過反復(fù)確認(rèn),最終形成產(chǎn)品腦圖和完整的需求文檔。
2.功能做軟件致---電---幺伍扒---幺幺叁叁---駟柒駟駟設(shè)計(jì)—APP項(xiàng)目概要設(shè)計(jì)
第二步相當(dāng)于網(wǎng)站的需求分析,需要整理確定APP的主要用戶群體和APP能實(shí)現(xiàn)的功能。關(guān)于APP開發(fā)設(shè)計(jì)可以在一些APP開發(fā)平臺(tái)上借助一些工具來充實(shí)你的手機(jī)APP,像結(jié)合推送、地圖、社交分享、第三方登錄等常用的工具讓你的APP更豐富一些。借助第三方服務(wù)來豐富自己的作品是很好的借力途徑,一定不要錯(cuò)過,平時(shí)要養(yǎng)成收集平臺(tái)的習(xí)慣,例如工具平臺(tái),學(xué)習(xí)交流平臺(tái),養(yǎng)成總結(jié)整合資源會(huì)是受益一生的好習(xí)慣。
3. 功能做軟件致---電---幺伍扒---幺幺叁叁---駟柒駟駟實(shí)現(xiàn)—APP項(xiàng)目打碼階段
APP的大概界面構(gòu)思和設(shè)計(jì),大功能模塊代碼編寫。正式進(jìn)入產(chǎn)品的原型設(shè)計(jì)階段。UI、UE開始設(shè)計(jì),形成初步的效果圖。在經(jīng)過確認(rèn)后界面的效果圖正式設(shè)計(jì)完成。產(chǎn)品在設(shè)計(jì)圖完成后,進(jìn)入研發(fā)階段。通過編程語言形成正式的程序。至此,APP的制作過程就完成了一大部分,可以進(jìn)入測試部進(jìn)行測試。作為一個(gè)開發(fā)者來說這才是重頭戲,設(shè)計(jì),測試都是別人的事情,這一步主要是開發(fā)者努力打碼階段,不斷碼磚,修bug階段。
4.測試—APP項(xiàng)目大家評(píng)
把大概的界面和功能連接后,APP的大致demo就出來了,demo自己試用和體驗(yàn)幾遍后,根據(jù)實(shí)際情況修改,沒有大錯(cuò)誤后,新版本可以嘗試尋找beta用戶,
根據(jù)測試用戶的反饋,改進(jìn)并反復(fù)測試。用戶測試階段一定要把每個(gè)用戶的意見考慮進(jìn)去,不一定每個(gè)意見都會(huì)采納,但是不要放過一點(diǎn)瑕疵,盡全力讓自己的作品更好。
5.APP項(xiàng)目完成, 把APP投放市場
在產(chǎn)品經(jīng)過多次測試,修改bug確認(rèn)無誤后。一個(gè)APP制作項(xiàng)目就完成,可以進(jìn)入個(gè)大市場,投放使用。市場推廣也是比較關(guān)鍵的一步,在各大市場中,開發(fā)者就要通過各種方式推廣自己的APP產(chǎn)品,力求APP在市場上獲得更多的下載量,吸引更多的用戶。
6、營銷推廣手機(jī)APP軟件
專注在一些關(guān)鍵領(lǐng)域有效的推廣你的APP軟件,讓你的客戶能夠發(fā)現(xiàn)它,并且下載它。APP應(yīng)用軟件的一些基本要素將會(huì)成為營銷機(jī)會(huì),那也是獲得成功的關(guān)鍵。你的工作,就是要為用戶從發(fā)現(xiàn)APP應(yīng)用圖標(biāo)到點(diǎn)擊下載按鍵,創(chuàng)造出一條無縫業(yè)務(wù)流。
如何制作一個(gè)簡單的 iOS app?
如今,不少企業(yè)都想擁有屬于自己企業(yè)或產(chǎn)品的手機(jī)APP,但其中最困擾企業(yè)主的問題就是:開發(fā)一款手機(jī)APP到底需要多少錢?
簡單點(diǎn)來說,要視手機(jī)APP的需求及質(zhì)量而言,價(jià)位一般在幾千到十幾萬左右,更高端的價(jià)格更高。
今天,我們就來詳細(xì)分析一下這個(gè)問題,請(qǐng)繼續(xù)往下看吧?!?/p>
一、APP開發(fā)款式分為固定款和定制款,兩者的價(jià)格均不相同
固定款:是指直接套用已有的、現(xiàn)成的APP固定模板,報(bào)價(jià)是固定的,所需要的功能也是固定的,缺點(diǎn)就是客戶拿不到源代碼,也不能根據(jù)企業(yè)需求進(jìn)行定制,由于源代碼是封裝的,如果企業(yè)以后想進(jìn)行功能升級(jí)或系統(tǒng)維護(hù)的話,也不能夠?qū)崿F(xiàn),只能重新開發(fā)一個(gè)新的軟件。
固定款的APP開發(fā)時(shí)間短,約2~3日的時(shí)間即可完成,費(fèi)用大約在幾千到幾萬之間。
定制款:定制款是指APP的功能全部重新開發(fā),過程比較繁瑣,需要美工、策劃、APP開發(fā)(前臺(tái)/客戶端/手機(jī)端)、后臺(tái)程序員等工種協(xié)同完成,大型的、功能復(fù)雜的APP甚至需要數(shù)十人的團(tuán)隊(duì)。
由于APP的功能和設(shè)計(jì)都是定制的,因此價(jià)格會(huì)高些。定制款的開發(fā)時(shí)間與開發(fā)價(jià)格是成正比的,開發(fā)時(shí)間長,大約在兩三個(gè)月甚至不定的周期里才能完成,而費(fèi)用大概在幾萬甚至十幾萬左右。
因此,想要知道開發(fā)一款手機(jī)APP需要花費(fèi)多少錢,企業(yè)主首先必須把APP的詳細(xì)需求和功能告知APP開發(fā)公司,開發(fā)公司才能報(bào)出一個(gè)合理的價(jià)格。
二、手機(jī)APP平臺(tái)不同,制作成本也不一樣
現(xiàn)在市面上流行的手機(jī)APP制作平臺(tái)主要有兩種一般包括兩種系統(tǒng):安卓系統(tǒng)(Android)和蘋果系統(tǒng)(IOS)。
一般來說,制作蘋果系統(tǒng)的手機(jī)APP軟件費(fèi)用要比安卓平臺(tái)的貴一些,因?yàn)樘O果公司對(duì)蘋果平臺(tái)的封閉性和手機(jī)APP開發(fā)語言O(shè)bjective-C的難度,都讓APP開發(fā)者加大了蘋果系統(tǒng)手機(jī)APP開發(fā)的難度。
三、APP制作成本包含參與人員的工資
通常情況下,開發(fā)一款A(yù)PP需要產(chǎn)品經(jīng)理、客戶端工程師、后端工程師和UI設(shè)計(jì)師各一名,這已經(jīng)是制作手機(jī)APP應(yīng)用軟件比較精簡的配置了,所以這些參與人員的工資也是包含在APP制作成本當(dāng)中的。這些工作人員的月薪加起來可能都會(huì)超過4、5萬元。
四、APP開發(fā)公司的所在地
需要注意的是,同樣實(shí)力的APP開發(fā)公司,在不同的城市也會(huì)導(dǎo)致APP的成本費(fèi)用高一些
APP得 開發(fā)的詳細(xì)步驟
APP需求調(diào)研
需求調(diào)研指的是軟件開發(fā)方與需求方的獨(dú)特探討,在需求調(diào)研階段,我們會(huì)與客戶進(jìn)行溝通討論,獲取客戶軟件項(xiàng)目的需求,并做整理。
APP設(shè)計(jì)
從功能設(shè)計(jì)到界面設(shè)計(jì),我們每一步都做到更好
(1)UI 設(shè)計(jì)師會(huì)進(jìn)行UI界面相關(guān)的配色設(shè)計(jì)、功能具象化處理、交互設(shè)計(jì)、以及各種機(jī)型、系統(tǒng)的適配。
(2)后臺(tái) UI : 絕大部分 APP 項(xiàng)目都會(huì)有相應(yīng)的管理后臺(tái),雖然后臺(tái)是用戶無法接觸到的,但是與 APP
側(cè)的功能是意義對(duì)照的,合理的設(shè)計(jì)能讓后臺(tái)管理人員快速上手。
APP開發(fā)
經(jīng)過以上幾個(gè)過程之后,會(huì)正式進(jìn)入到開發(fā)階段,一個(gè)完整的 APP 項(xiàng)目一般包含以下幾個(gè)板塊:
(1)服務(wù)器端:編寫接口協(xié)議文檔,服務(wù)器環(huán)境架設(shè),設(shè)計(jì)數(shù)據(jù)庫和編寫API接口。
(2)APP 端:根據(jù)UI設(shè)計(jì)圖進(jìn)行界面開發(fā),UI 開發(fā)完成則進(jìn)入和服務(wù)端接口對(duì)接,通過服務(wù)端的接口獲取數(shù)據(jù),編寫功能上的邏輯代碼。
(3) Web 管理端: 根據(jù)前端的業(yè)務(wù)邏輯,后臺(tái)會(huì)有相應(yīng)的功能與之匹配,同樣需要編寫功能上的邏輯代碼。
APP測試發(fā)布
這一步由我們的測試人員進(jìn)行app各項(xiàng)功能測試。
測試的內(nèi)容包括:
1、 界面測試;
2、 功能測試;
3、 兼容性測試;
4、 安全測試。
一系列測試完成后,APP開發(fā)完成,正式上線運(yùn)行。
參考文章:
iOS使用Workspace來管理多項(xiàng)目
Xcode中的 workspace, project, target, scheme
workspace是Xcode的一種文件,用來管理工程和里面的文件,一個(gè)workspace可以包含若干個(gè)工程,甚至可以添加任何你想添加的文件。workspace提供了工程和工程里面的target之間隱式和顯式依賴
關(guān)系,用來管理和組織工程里面的所有文件。
1、用來管理同一個(gè)項(xiàng)目中的不同模塊
可以把在項(xiàng)目中把一些工具類或模塊等放在另一個(gè) 動(dòng)態(tài)庫工程 中,然后在主工程中來使用里面的類和方法。
其中一個(gè)重要的步驟就是在主項(xiàng)目的Build Settings 里找到Header Search Paths,添加一項(xiàng)$(SRCROOT)/../BookObtain,并且設(shè)置為recursive。$(SRCROOT)是當(dāng)前的工程路徑,..是返回上一層,然后到BookObtain文件夾。使用了相對(duì)路徑,為了是項(xiàng)目移動(dòng)不會(huì)影響這個(gè)配置,只要主工程和其他工程的相對(duì)位置不變,這里的相對(duì)位置是固定在同一個(gè)文件夾
recursive的意思是預(yù)先的意思,即這個(gè)動(dòng)態(tài)庫項(xiàng)目要先編譯,然后再編譯主項(xiàng)目。
使用方法可以參照:
iOS使用Workspace來管理多項(xiàng)目