第0天:技術(shù)選型、環(huán)境配置
1. 寫在開始之前
大家好蹬挤,我是 Airing 思瘟。有近一年沒有寫過教程了,因?yàn)榭佳械确N種原因闻伶,也許久沒有寫過博文滨攻。不過這段時(shí)間組建了一個(gè)興趣開發(fā)團(tuán)隊(duì) (Oh~Bear! 零熊:https://oh-bear.github.io),也開發(fā)并上架了一些 APP 產(chǎn)品蓝翰。所以就想到了為社會(huì)服務(wù)光绕,能不能編寫一個(gè)教程,教會(huì)零基礎(chǔ)的童鞋用最短的時(shí)間和最少的精力去學(xué)會(huì)開發(fā)一款 APP畜份,用專業(yè)的開發(fā)流程和簡(jiǎn)單的技術(shù)诞帐,全棧去開發(fā)一款完整的 APP。
其實(shí)爆雹,APP 開發(fā)很簡(jiǎn)單停蕉,只是技術(shù)繽紛讓人眼花繚亂,而且沒有一個(gè)系統(tǒng)的教程钙态,所以才會(huì)使人產(chǎn)生 APP 開發(fā)很困難的假象慧起。未來可能會(huì)出配套的視頻教程吧~
本教程將從零開始,設(shè)計(jì)一個(gè)簡(jiǎn)單的 APP册倒,然后走一個(gè)完成的開發(fā)流程蚓挤,從后端到前端,完整地開發(fā)一款可上架的 Android 與 iOS 雙平臺(tái) APP。雖然這個(gè) APP 很簡(jiǎn)單灿意,但是具備了通常服務(wù)端的需要的增刪改查的完整功能估灿,也用到了最常見的前端開發(fā)控件,作為教學(xué)而言缤剧,實(shí)用性不可估量馅袁。
既然這篇教程將會(huì)持續(xù)十天,那么荒辕,這款 APP 就叫十日吧司顿。
注:本項(xiàng)目在 GitHub 上開源(https://github.com/airingursb/10days)
2. 基本要求
本教程雖說是零基礎(chǔ),但必須至少有 JavaScript 編程語言基礎(chǔ)兄纺,否則繼續(xù)跟進(jìn)教程只能是單純地照葫蘆畫瓢大溜,學(xué)不到東西。如果沒有 JavaScript 基礎(chǔ)的童鞋估脆,可以看看我之前寫的一本教程《Before Coding》(電子書地址:https://www.gitbook.com/book/airingursb/before-coding/details)钦奋。
因此學(xué)習(xí)本教程的必備知識(shí)有:
- 熟悉 JavaScript
- 使用過 HTML + CSS
- 了解 HTTP 的基本原理
除此之外你最好還要有:
- 知道 Linux 的基本命令
- 了解過 ORM 框架
- 了解 Git 的使用
- 至少體驗(yàn)過一次完成的開發(fā)流程
- 一臺(tái)MacBook(iOS開發(fā)與上架必須)
3. 技術(shù)選型
正如書名所示,前端將使用當(dāng)下最火的移動(dòng)端開發(fā)框架 React Native疙赠,后端將使用當(dāng)下大行其道的 NodeJs 技術(shù)付材,具體后端框架將使用其中最簡(jiǎn)單的 Express + Sequelize。所有的開發(fā)將使用 JavaScript 語言圃阳,況且 js 本身就屬于比較簡(jiǎn)單的語言厌衔,所以童鞋們不必有畏難情緒,開發(fā)流程會(huì)意想不到的順利和簡(jiǎn)單捍岳。
注:前提是請(qǐng)鎖定教程中使用的庫的版本號(hào)富寿。
4. 環(huán)境配置
本書使用過的軟件有(按出現(xiàn)先后順序):
- OmniPlan:需求與任務(wù)規(guī)劃
- Balsamiq Mockups:原型設(shè)計(jì)
- Sketch:UI設(shè)計(jì)
- Sublime Text:JavaScript 代碼編輯器
- Chrome:瀏覽器
- Paw:接口調(diào)試
- Sequel Pro:MySQL 數(shù)據(jù)庫 GUI 工具
以上軟件中,沒有必須強(qiáng)制安裝的锣夹,如果你沒有自己的編輯器页徐,推薦使用 Sublime Text 或 WebStorm 來寫 JavaScript。另外银萍,如果你是 Windows 系統(tǒng)变勇,Paw 請(qǐng)使用 Postman 代替(那就必須下載 Chrome 了),Sequel Pro 請(qǐng)使用 Navicat for MySQL 代替贴唇。如果你還不知道這些軟件具體怎樣使用搀绣,沒有關(guān)系,等后續(xù)教程用到再安裝研究也不遲戳气。
本教程中涉及的環(huán)境如下:
- 開發(fā)環(huán)境:MacOS + Nodejs + MySQL
- 生產(chǎn)環(huán)境:Ubuntu14.04 + Nodejs + Nginx + MySQL(阿里云平臺(tái))
所以必須安裝的環(huán)境有:
- Nodejs:直接去官網(wǎng)安裝即可链患。
- MySQL:Windows 系統(tǒng)直接下載 msi 文件安裝即可,Linux 系統(tǒng)使用對(duì)應(yīng)的包管理工具直接安裝即可物咳。
另外锣险,如果你使用 Windows 系統(tǒng)蹄皱,推薦安裝 GitBash 使用 linux 命令行操作览闰,這樣才能緊貼教程芯肤。如果你是 Windows 系統(tǒng),且不想購買阿里云的服務(wù)器進(jìn)行線上部署压鉴,又想體驗(yàn)完整的教程崖咨,那么推薦你使用 Virtual Box + Vagrant + GitBash。至于 Vagrant 的安裝教程油吭,可以參考我以前的一篇博文:http://www.reibang.com/p/3c3f35436c05
注:GitBash 是 Git 的附屬工具之一击蹲,你可以百度搜索 Git,下載安裝即可使用婉宰。
綜上歌豺,必須安裝的只有 Nodejs 與 MySQL,安裝過程相對(duì)來說很簡(jiǎn)單心包,這里就不再給出安裝教程了类咧,安裝過程中如果遇到問題請(qǐng)積極問度娘。未來出了視頻教程蟹腾,會(huì)在視頻中演示如何安裝痕惋。另,在教程的最后娃殖,也會(huì)給予大家一個(gè)配好了所有環(huán)境并部署了代碼的 Linux 虛擬機(jī)值戳,若有需要自行下載即可。
5. 開發(fā)進(jìn)度安排
既然說了零基礎(chǔ)10天開發(fā)炉爆,那么就得有一個(gè)恰當(dāng)?shù)拈_發(fā)計(jì)劃堕虹。完整的最小開發(fā)團(tuán)隊(duì)里,需要有產(chǎn)品經(jīng)理芬首、UI設(shè)計(jì)師鲫凶、前端開發(fā)工程師、后端開發(fā)工程師衩辟,而本教程里螟炫,我們將一個(gè)人頂四個(gè)人用,并且為了教學(xué)的方便艺晴,所以前后端串行開發(fā)昼钻,先進(jìn)行后端開發(fā),后進(jìn)行前端開發(fā)(實(shí)際開發(fā)中封寞,前后端可并行開發(fā))然评。
- 產(chǎn)品經(jīng)理需要進(jìn)行原型設(shè)計(jì),并提供給團(tuán)隊(duì)需求文檔狈究,給 UI 設(shè)計(jì)師原型稿碗淌。
- UI 設(shè)計(jì)師需要進(jìn)行 UI 設(shè)計(jì),提供前端工程師標(biāo)注圖和素材。
- 后端開發(fā)工程師需要進(jìn)行后端開發(fā)與線上部署亿眠,提供給前端工程師接口文檔碎罚。
- 前端開發(fā)工程師需要進(jìn)行前端開發(fā)與產(chǎn)品上架。
看看纳像,我們10天里荆烈,將會(huì)1個(gè)人去做一個(gè)完整團(tuán)隊(duì)里4個(gè)的工作,開發(fā)一個(gè)完整的 APP 并上架竟趾,是不是很有成就感呢憔购?
注:在實(shí)際開發(fā)過程中,團(tuán)隊(duì)里的 Soyeah 同學(xué)擔(dān)當(dāng)了 UI 設(shè)計(jì)的工作岔帽,提供了本產(chǎn)品的 UI 設(shè)計(jì)玫鸟、切圖與標(biāo)注。
綜上犀勒,大體上分為這七個(gè)流程進(jìn)行屎飘,前端需要一半的周期,后端需要30%账蓉。具體開發(fā)計(jì)劃如下:
- 第0天:技術(shù)選型枚碗、環(huán)境配置
- 第1天:需求分析、原型設(shè)計(jì)铸本、UI設(shè)計(jì)
- 第2天:接口設(shè)計(jì)與簡(jiǎn)單的 demo
- 第3天:登錄與注冊(cè)接口開發(fā)及其深度探討
- 第4天:服務(wù)端的實(shí)現(xiàn)
- 第5天:React Native 初體驗(yàn)
- 第6天:登錄注冊(cè)頁面開發(fā)(UI 實(shí)現(xiàn)肮雨、邏輯處理與接口對(duì)接)
- 第7天:主頁開發(fā)(state 與 props 的使用)
- 第8天:列表頁開發(fā)(ListView 的數(shù)據(jù)綁定與使用)
- 第9天:編輯頁開發(fā)(圖片上傳與七牛云存儲(chǔ))
- 第10天:服務(wù)端部署與 App 上架
大家加油加油!