現(xiàn)在的MVP模式越來(lái)越流行。就默認(rèn)采用了。
如果項(xiàng)目比較小的話:
app——Application Activity Fragment Presenter等的頂級(jí)父類
config——API,常量表等
model——數(shù)據(jù)層
entities——數(shù)據(jù)模型
presenter——MVP的P
service——服務(wù)
ui——MVP的V
utils——工具類集合
widget——各個(gè)可復(fù)用View集合
如果項(xiàng)目比較大,上面的方式一定會(huì)造成presenter和view里近百個(gè)文件。看瞎眼系列。推薦下列方式:
app
config
model
entities
module——將界面層以功能模塊分配包。
launch
main
account
news
music
……
utils
widget
對(duì)于不遵守Material Design的項(xiàng)目無(wú)視這一步。
1.先在color.xml中寫(xiě)好需要的顏色:
<resources> <color name="Orange">#ff5722</color> <color name="DeepPurple">#673AB7</color> <color name="DeepPurple900">#311B92</color> <color name="White">#fff</color> <color name="Gray">#888888</color> <color name="Gray100">#dddddd</color> <color name="Gray600">#999999</color> </resources>
注意color.xml是配色表。應(yīng)該是描述顏色而不是對(duì)字體顏色,背景顏色等的定義。這樣能防止相近的顏色重復(fù)定義。而導(dǎo)致界面顏色不統(tǒng)一。
2.在style.xml里定義主題:
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/DeepPurple</item> <item name="colorPrimaryDark">@color/DeepPurple900</item> <item name="colorAccent">@color/Orange</item> </style> <style name="AppTheme" parent="AppTheme.Base"> </style>
在res目錄下,創(chuàng)建一個(gè)values-v21目錄,再創(chuàng)建一個(gè)style.xml:
<style name="AppTheme" parent="AppTheme.Base"> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">?colorPrimaryDark</item> </style>
然后在AndroidManifest.xml文件中修改application的theme屬性為上面定義的AppTheme.即可實(shí)現(xiàn)沉浸式狀態(tài)欄。
然后關(guān)于Theme與Toolbar的詳細(xì)設(shè)置參考我另兩篇博客:
http://www.cnblogs.com/Jude95/p/4369816.html
http://www.cnblogs.com/Jude95/p/4370176.html
必選的庫(kù):
gradle-retrolambda——Android的lambda表達(dá)式插件
fresco——Android最屌圖片加載庫(kù)
material-dialogs ——Material Dialog向下兼容庫(kù)
material-ripple——Ripple向下兼容庫(kù)
fastjson——最快JSON解析
butterknife——View注解庫(kù)和配套插件android-butterknife-zelezny
ActiveAndroid——數(shù)據(jù)庫(kù)注解庫(kù)。
RxAndroid——Rx函數(shù)響應(yīng)式編程中文文檔
retrofit,okhttp,sqlbrite,okio——Square家的精品多啊
compile 'com.android.support:design:23.0.1'——谷歌Material Design控件庫(kù)
下面安利幾個(gè)自己寫(xiě)的庫(kù),如果有什么建議歡迎交流:
Utils——Android各種小功能集合
RollViewPager——自動(dòng)輪播使用方便的ViewPager
EasyRecyclerView——支持下拉上拉刷新等功能全面的RecyclerView
SwipeBackHelper——Activity滑動(dòng)關(guān)閉支持庫(kù),能達(dá)到微信效果
嘗試了很多,這幾個(gè)是現(xiàn)在常用的。
Bmob——做后臺(tái)不求人
Bmob——短信驗(yàn)證0.01/條
融云——即時(shí)通訊
友盟——數(shù)據(jù)統(tǒng)計(jì),推送,意見(jiàn)反饋,自動(dòng)更新,第三方分享及登錄,社區(qū)
七牛——云存儲(chǔ)
依賴這一大堆庫(kù)和SDK以后。建議在合適的時(shí)機(jī)初始化他們,而不是全堆在Application的onCreate()里面。這樣會(huì)導(dǎo)致啟動(dòng)時(shí)間過(guò)長(zhǎng)。啟動(dòng)后也會(huì)較卡。雖然是不會(huì)影響功能正常使用。
某些SDK運(yùn)行時(shí)需要檢查簽名是否正確。所以在debug模式時(shí)也必須用正式KEY簽名。而把簽名放進(jìn)版本控制不是明智的做法。所以推薦下面的做法:
在app的gradle加入下面代碼
Properties props = new Properties() props.load(new FileInputStream(file("signing.properties"))) android { signingConfigs { release{ keyAlias props['KEY_ALIAS'] keyPassword props['KEY_PASSWORD'] storeFile file(props['KEYSTORE_FILE']) storePassword props['KEYSTORE_PASSWORD'] } } buildTypes { release { signingConfig signingConfigs.release } debug { signingConfig signingConfigs.release } } }
在app的gradle文件同級(jí)目錄新建signing.properties文件,里面填入你的key的相應(yīng)信息
KEYSTORE_FILE = C:\\Users\\Mr.Jude\\Documents\\Android\\HelloWorld.jks KEYSTORE_PASSWORD = xxxxxx KEY_ALIAS = xxxxxx KEY_PASSWORD = xxxxxx
將signing.properties添加進(jìn)忽略目錄。
其他人pull下來(lái)代碼后。自己新建signing.properties填入相應(yīng)信息后即可編譯成功。
為了避免合作開(kāi)發(fā)寫(xiě)的代碼風(fēng)格迥異?;蜃龀隽硕嗵组_(kāi)發(fā)模式。下面是個(gè)例子。畢竟是為了高效開(kāi)發(fā)而制定的。適合自己項(xiàng)目的才是最好。
所有Activity繼承BaseActivity
所有Fragment繼承BaseFragment
所有Presenter繼承BasePresenter
這樣利于生命周期管理。也可以方便的全局修改。
命名,例
AccountFragment
UserDetailActivity
layout命名,例
activity_collection
fragment_account
item_person
include_toolbar
view_progress
不過(guò)對(duì)于龐大項(xiàng)目的開(kāi)發(fā)。近百個(gè)activity開(kāi)頭的layout列表還是會(huì)眼瞎。所以那種情況會(huì)在前面加上模塊名。
id命名,例
btn_send
tv_name
list_persons
et_password
然后用butterknife的插件生成變量會(huì)自動(dòng)將下劃線變成駝峰命名
變量命名:以m開(kāi)頭。例mAdapter使用時(shí)按一個(gè)m全都出來(lái)了
方法命名:與其寫(xiě)好名字不如寫(xiě)好注釋。= =。
TextView使用官方標(biāo)準(zhǔn)字體
TextView.png
Button使用Material Design標(biāo)準(zhǔn)樣式
Button.png
定好網(wǎng)絡(luò)請(qǐng)求寫(xiě)法。文件存儲(chǔ)方式與位置。寫(xiě)好項(xiàng)目所使用的類庫(kù)框架用法。
文/Jude95(簡(jiǎn)書(shū)作者)
原文鏈接:http://www.jianshu.com/p/d9e4ddd1c530
著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),并標(biāo)注“簡(jiǎn)書(shū)作者”。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前標(biāo)題:一個(gè)優(yōu)秀的Android應(yīng)用從建項(xiàng)目開(kāi)始-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://www.rwnh.cn/article14/epide.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、手機(jī)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、面包屑導(dǎo)航、企業(yè)網(wǎng)站制作、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
營(yíng)銷型網(wǎng)站建設(shè)知識(shí)