kotlin搭建安卓应用

Kotlin开发安卓应用

  • Kotlin基本语法
  • Kotlin搭建安卓项目的项目清单
  • Kotlin调用UIFramework
  • Kotlin网络层
  • Kotlin开发中注意点
  • Kotlin开发中现存在疑问点

Kotlin基本语法

语言都是相同的,kotlin需要学习的语法知识点:

  • 高阶函数
  • map ,flapMap
  • lambda表达式
  • ?:三目运算符
  • when表达式,另外格式的条件语句
  • step 循环语句的步数
  • until 循环的条件
  • down to 循环倒序
  • 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调用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网络层

GJson一个框架解析json
目前只看过一个网络层的例子,还不是那么清楚实现原理
异步请求api -> uiThread 主线程刷新

async()
        {
            val url: String = "https://www.baidu.com/"
            //在子线程请求网络数据

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

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

请求实现

class Request(val url: String)
{
    //https://www.baidu.com/
    //网络请求运行在子线程中
    public fun run():String
    {
        val jsonString: String = URL(url).readText()
        Log.i("Request",jsonString)

        return jsonString
    }
}

Kotlin开发中注意点

1.CustomView.frame 处处使用Layout.id作为取View的标识,相当于UIView.tag或者identification,要保证Layout.id的唯一性

2.CustomView部分属性访问需要在Gradle添加依赖库,否则会爆红

3.CustomView添加监听点击手势不同于Java,可直接访问id,不需要findViewByID,但是需要确保VC可以访问到Layout文件,保证包内访问

4.委托代理使用关键词BY,要与lazy的by关键词分开

Kotlin开发中现存在疑问点

1.Gradle如何正确添加依赖库,获知更多依赖库提供功能简介

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

3.网络层开发再深一步

4.使用了Java语言,但是自动转换为KotLin导致报错情况下该如何处理

5.kotlin通知模式???

你可能感兴趣的:(kotlin搭建安卓应用)