kotlin搭建安卓應用

Kotlin開發(fā)安卓應用

Kotlin基本語法

語言都是相同的,kotlin需要學習的語法知識點:

  • 高階函數(shù)
  • map ,flapMap
  • lambda表達式
  • ?:三目運算符
  • when表達式,另外格式的條件語句
  • step 循環(huán)語句的步數(shù)
  • until 循環(huán)的條件
  • down to 循環(huán)倒序
  • delegate -> by XXDelagete
  • 單例
  • 判空 -- swift很像
  • 智能? ! -- swift很像

Kotlin搭建安卓項目的項目清單

app

  • manifests
  • 項目信息,包名,icon ,名稱,類似AppDelegate+plist
  • java && kotlin
  • Activity -- UIViewController
  • class -- Object,Model
  • res
  • drawable
  • layout -- customView.frame
  • menu
  • mipmap -- asset.image
  • values -- Stuct,ColorManager ,StringManager ,StylesManager -- 主題配置

Gradle Scripts

  • build.gradle 類似iOS Import.File,導入以來庫,文件

Kotlin調(diào)用UIframework

  • Button UIButton
    • ImageButton
    • FloatingActionButton
    • ToolBar
  • checkBox 復選框
  • ImageView UIImageView
  • VideoView 視頻播放
  • DatePicker UIPicker
  • TimePicker UIPicker
  • RadioButton 單選框
  • CheckedTextView UILabel
    • TextClock
  • Spinner 下拉框,用于篩選位置
  • ProgressBar 圓形進度條
  • ProgressBar(Hor) 水平進度條
  • SeekBar 水平拖拽條 UIProgress
  • SeekBar(Discrete) 水平拖拽條但指示在上方
  • RatingBar 星形狀Bar按鈕
  • Switch UISwitch
  • Space 適配使用,類似iOS中彈簧控件,但iOS中彈簧控件只用于底部toolBar
  • QuickContactBadge 應該是快速訪問通訊的一個組件,沒使用了解
  • TextView UITextView
  • Plain ,Password ,Password(Numberic) ,E-mail ,Phone ..etc..TextView分類,為那種類型的輸入條件限制
  • RadioGroup 單選框組
  • ListView UITableView
  • GridView UICollectionView
  • ScrollView 豎直方向滾動
  • ScrollView(Hor) 水平方向滑動 UIScrollView
  • TabHost 頂部Tab欄
  • SearchView UISearchVC
  • WebView UIWebView
  • ViewPager 應該是分頁控制器類似ChildVC,沒試驗

Kotlin網(wǎng)絡(luò)層

GJson一個框架解析json
目前只看過一個網(wǎng)絡(luò)層的例子,還不是那么清楚實現(xiàn)原理
異步請求api -> uiThread 主線程刷新

async()
        {
            val url: String = "https://www.baidu.com/"
            //在子線程請求網(wǎng)絡(luò)數(shù)據(jù)

            val result: String = Request(url).run()

            //在主線程中更新ui
            uiThread{
                Log.i("MainActivity",result)
            }
        }

請求實現(xiàn)

class Request(val url: String)
{
    //https://www.baidu.com/
    //網(wǎng)絡(luò)請求運行在子線程中
    public fun run():String
    {
        val jsonString: String = URL(url).readText()
        Log.i("Request",jsonString)

        return jsonString
    }
}

Kotlin開發(fā)中注意點

1.CustomView.frame 處處使用Layout.id作為取View的標識,相當于UIView.tag或者identification,要保證Layout.id的唯一性

2.CustomView部分屬性訪問需要在Gradle添加依賴庫,否則會爆紅

3.CustomView添加監(jiān)聽點擊手勢不同于Java,可直接訪問id,不需要findViewByID,但是需要確保VC可以訪問到Layout文件,保證包內(nèi)訪問

4.委托代理使用關(guān)鍵詞BY,要與lazy的by關(guān)鍵詞分開

Kotlin開發(fā)中現(xiàn)存在疑問點

1.Gradle如何正確添加依賴庫,獲知更多依賴庫提供功能簡介

2.對于第三方的添加和使用

3.網(wǎng)絡(luò)層開發(fā)再深一步

4.使用了Java語言,但是自動轉(zhuǎn)換為KotLin導致報錯情況下該如何處理

5.kotlin通知模式???

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,745評論 25 709
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,835評論 2 45
  • 聽韓國人說英語,中國人就找到自信了。世界人民都了解,比聽中國人說英語更恐怖的是韓國人學英語。不過,韓國人可比咱們更...
    Qme閱讀 776評論 0 1
  • 一切可以妥當?shù)囊欢〞桩?,準備迎接奇跡! 今天的感覺真好 我將關(guān)著的心打開了,我迎接著宇宙的豐盛。 咖啡冥想 今天...
    belivePossible閱讀 162評論 0 2
  • ouch
    Miferly閱讀 160評論 0 1

友情鏈接更多精彩內(nèi)容