我們的團隊項目是U-Help快遞代領app,前期一直在做調研和計劃,直到5月才開始寫具體的代碼。五月我們主要完成的是登入和注冊界面的編寫,萬事開頭難,登入和注冊都涉及到界面設計、事件響應、界面切換以及前後端通信,看似簡單的一張界面以及涉及到了本項目中大部分技術架構,是以這部分的工作對于技術架構的學習與掌握有極大的收獲。
界面設計方面我們一開始采用的方法是人工寫xml檔案的方式,後來發現遠不如拖動控件的自動設計方式高效,但拖動控件生成的界面在虛拟機上運作時會亂成一團,後來發現需要把constraint layout改為relative layout才行。事件響應和界面切換都使用的是安卓原生功能,真正複雜的是前後端通信。
為了實作注冊、登入功能,需要在使用伺服器上的資料庫,于是我在伺服器上安裝了mysql server,并将伺服器端腳本确定為python flask架構。flask架構十分簡潔,能夠将用戶端請求配置設定至不同路由,即根據不同用戶端請求執行相應函數,登陸注冊界面需要分别編寫login和register函數。需要注意的是,flask設定的host和port參數分别是指監聽的ip範圍和自己的服務端口,是以host應該設為0.0.0.0以監聽所有ip位址。
為了操縱資料庫,使用了mysql.connector架構,這是python通路mysql資料庫的一種常用架構,使用方法簡潔,通過sql語句字元串作為參數提供給相應函數,對應的指令便會執行。在做插入操作的時候,sql語句需要其他參數,這時需要在sql字元串中用'%s'來表示參數(‘ ’不可省略),然後在字元串後用%(參數)來傳參。其中還有一些坑,最好的解決方式是遵守http協定和看别人的部落格。
最後是安卓端通路伺服器的架構,采用了okhttp3,并與伺服器端約定使用json傳遞資料(post方式),将使用者登入或注冊的資訊存為json格式并發送給伺服器端,然後在安卓端使用異步處理方式定義響應函數,由此完成前後端互動。okhttp3的坑很多,很容易出現各種問題,有時到了最後互動時沒有任何問題但就是連不上伺服器,很可能是okhttp3的兩個依賴關系不比對,此時看看别人部落格裡添加的兩個依賴關系的版本都是什麼,不要從不同的部落格裡分别選取包的版本。
以上是技術架構上的收獲,這為團隊項目的開展奠定了基礎。而在代碼管理方面,我花了不少時間徹底掌握了github的使用方式,大家統一使用git來個管理代碼(github上添加了ssh),每個人在github上都有各自的分支防止污染代碼,并定下了合并代碼的準則以減少合并沖突。
至于團隊合作方面,由于大二的同學忙于考試,大三的同學忙于暑研準備,時間安排上很難一緻,是以容易出現一方進度拉下的情況,如何協調大家的時間使得寫代碼的效率很高是一個需要解決的問題。
轉載于:https://www.cnblogs.com/tilmto-Jerry/p/9119923.html