咱們的產品是安卓端app,因此目前主要就是用Android Studio來進行代碼開發。前端
Android Studio的項目的結構仍是比較清晰的,以下圖,主要就是java文件夾內的代碼部分(.java)以及res文件夾內的佈局部分 (.xml)。java
1、Java部分數據庫
(一)數據庫部分app
這一部分主要是數據庫方提供給UI小組的一系列須要用到並存儲到數據庫中的類。佈局
UI小組能夠無論數據庫的內部邏輯,直接構造對象並用其中的方法,以下圖。spa
(二)UI部分3d
這一部分主要就是前端UI的一些邏輯(主要是各個Activity)以及另外須要用到的其餘一些類(如Adapter等),以下圖。xml
能夠看到,雖然咱們的app比較簡單,可是實際上實現起來代碼量確實不小。其中比較難及複雜的部分在後面部分會介紹。對象
2、佈局部分blog
這部分基本上是和UI部分的代碼對應,每個界面以及其中的一些部件都須要佈局文件,以下圖。
(一)圖片素材
圖片主要是在drawable文件夾內,主要就是一些菜單以及按鈕上要用到的小圖標,還有一些背景圖片。
(二)xml文件
包括layout文件夾以及menu文件夾裏的文件,以下圖。
3、技術難點(部分)
說是技術難點其實就是開發過程當中的一些感悟。
實際進行安裝開發後,纔會發現,那些看起來比較簡單的功能,實現起來卻並不簡單,這裏主要就選一兩個來隨便講一講。
首先,最複雜的一部分就是DiaryWriteActivity,從代碼量(java部分目前1600行)上也能看出。
根據美工的建議,咱們把這個界面改爲了app的主界面。這樣就帶來了一系列比較麻煩的問題。
由於這個界面既要展現日記,還要能編輯日記、新建日記。不一樣的狀況就會致使不一樣的佈局設置,就須要在代碼中對頁面佈局進行動態設置。
再就是從不一樣界面都能進入這個界面,如搜索結果、時間軸、日曆等等,這些界面進入雖然本質上沒有什麼區別,可是一個問題就是若是咱們要查看先後日記,個人理解應該就是好比搜索結果進入,查看的先後日記的那個list應該就是搜索結果的那個範圍,這就須要根據進入的來源去進行一些相應的判斷。
還有好比咱們把先後按鈕改爲滑動,這個滑動看起來簡單,實現起來也不是幾行代碼的事情,另外還要考慮到某些狀況應該要禁止滑動相應等等。
還有就是一個返回的問題,從不一樣界面返回的話結果應該也不是徹底同樣,這就須要在onRestart()裏再作一些處理。
其實上面說的這些也不是什麼真正的「難點」,就是須要注意的地方很是多,一個地方少了個條件判斷,就容易出現動不動閃退的結果,給用戶帶來很差的體驗。
還有一個比較難的地方就是富文本,這個也是一直困擾咱們小組同窗的地方。一方面是存儲上的問題,還有就是圖片上的一些問題。好比出現來插入圖片在有的手機上會閃退的狀況。
除了上面說的這個DiaryWriteActivity,還有一些難的地方就是想實現的一些效果很難作到或者說良心的教程很難找到。好比如今日記界面滑動切換先後日記,只是相應滑動事件改變日記內容,但若是我是真正想實現卡片式有滑動的效果就不知從何下手。這也只是舉個例子,還有就是好比我前兩天才發現安卓自帶圓形約束佈局,我以前還傻傻地純靠本身調間距來實現。
確實像咱們這樣從零開始接觸安卓開發確實會遇到各類問題,時不時還掉進各類坑,感受若是想真正說andriod開發有必定了解還任重而道遠。