美文网首页
kotlin搭建安卓应用

kotlin搭建安卓应用

作者: Panco_Lee | 来源:发表于2017-11-07 12:43 被阅读0次

    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搭建安卓应用

          本文链接:https://www.haomeiwen.com/subject/ryzdmxtx.html