Kotlin 實踐項目(密碼本)

Google 推出 Kotlin 作爲 Android 的官方語言已經有一段時間,最近用工作上一些閒暇時間做了個項目,切身體驗下。

一、需求描述

一直以來對各個網站的密碼管理都比較頭疼,因爲擔心“撞庫”,所有網站密碼都不相同。註冊網站時都會隨便寫一個密碼,卻沒有一個好的密碼管理工具,下次登錄時基本都需要找回密碼,結果又忘記如此反覆。對於普通的網站重新找回一次並不算複雜,但是對於像 QQ、微信、支付寶 這樣有比較高安全驗證的網站找回起來並不容易,處理起來很繁瑣特別頭疼(承認我記憶力不好,突然想到自己好幾張銀行卡密碼也忘記了 ( ̄▽ ̄)~~~ ,不過也沒存款。。。。。。)

之前找過管理密碼的軟件,但不是太放心。軟件又沒開源,也不確定有沒有後門或漏洞,自己動手要踏實得多。

我的《密碼本》正是基於這一需求產生的,不但讓自己的密碼相對有一個保障,同時練練手學習新的技術。最後該項目作爲開源項目,希望也能幫助你解決同樣的煩惱。

二、項目截圖

GitHub: https://github.com/iOnesmile/PasswordNotebook

安裝包: 百度雲下載

筆記本 v1.00 預覽圖

三、待完善

  • 提升加密文件安全度,研究其它算法並檢驗安全性
  • 應用內安全驗證,如數據存儲、鎖屏、頁面超時、導出權限等
  • 優化交互體驗,簡化操作流程,和指紋解鎖等驗證機制
  • 其它平臺開發(iOS、Windows、MacOS),信息同步
  • 語言國際化
  • 其它……

如果有什麼好的想法和建議,或在使用中遇到什麼問題,歡迎反饋,我們一起完善吧!!!

四、使用 Kotlin 的坑或技術總結

  1. 在設置監聽時,提示錯誤 Expected a value of type Boolean
    原因:該監聽有一個返回值,類型是 Boolean
    例如:

    textView.onLongClick {
        // TODO
        return@onLongClick true
    }
  2. EditText 設置值時提示 Type mismatch. Required: Editable! Found: String
    原因:要給 EditText 設置 String 類型的值時,需要使用 setText() 方法
    例如:

    editText.setText("XXX")
  3. 函數式編程

    • map
      映射函數也是一個高階函數,將一個集合經過一個傳入的變換函數映射成另外一種集合

    • filter
      篩選函數將用戶給定的布爾邏輯作用於集合,返回由原集合中符合條件的元素組合的一個子集

    • reduce
      歸納函數將一個數據集合的所有元素通過傳入的操作函數實現數據集合的積累疊加效果

五、使用技術/庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章