Kotlin入坑(二)先写个小项目

上一篇 Kotlin入坑(一) 中搜集了一些现在网上的kotlin的学习资料,因为感觉kotlin跟java基本的编程思路都是一样的,只是语法上面的不同,于是将上面的资料大体看完就开始着手写个小项目练练手。

小项目地址 https://github.com/chsmy/DouBanKotlin

项目进行的过程中又一次印证了编程世界里,要想写好程序,一定得多敲多练。很多东西看一遍是看懂了,但是真的去写的时候,脑中还是一片空白。遇到问题也是一脸懵逼,还得去查文档。虽然做个简单的小项目也可以起到练习的目的。但是毕竟是小项目,只能涵盖部分的知识点。所以,下面的计划还得将其文档捋一遍,练习一遍。

这篇先记录一下小项目开发中的小知识点

(1)
使用kotlin开发android项目,首先你发现的一个简便的地方就是在也不用写findViewById了。只要我们在xml中给一个控件定义了一个id,就可以在activity或者fragment中直接使用那个id来操作了

比如xml中定义一个RelativeLayout搜索框

<RelativeLayout
        android:id="@+id/relative_search"
        android:layout_width="match_parent"
        android:layout_height="36dp"
        android:background="@drawable/search_background"
        android:gravity="center_vertical"
        android:layout_marginLeft="@dimen/dp_10"
        android:layout_marginRight="@dimen/dp_10"
        >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:drawablePadding="10dp"
            android:drawableStart="@drawable/ic_search"
            android:gravity="center"
            android:text="@string/search_hint"/>
    </RelativeLayout>

那么activity或者fragment中我们就可以直接这么写

 relative_search.setOnClickListener{
            val intent = Intent(context, SearchActivity::class.java)
            context.startActivity(intent)
        }

不用findViewById 直接使用id操作就可以,是不是简洁呢。

不过我们平时写xml的时候,经常会把一些能够复用的布局提出来,然后使用include标签来引入,这个时候如果你使用引入的布局中的id来操作发现无法使用。
其实当我们使用id直接操作的时候。IDE自动帮我们引入了一个包

“import kotlinx.android.synthetic.main.find_fragment.*”

语句中最后的find_fragment就是我们的fragment或者activity所对应的布局。如果我们想找到include标签引入的布局中的id也要把这个布局引入比如

“import kotlinx.android.synthetic.main.search_bar_text.*”

search_bar_text就是我们include引入的布局这样我们又可以愉快的使用id来操作了

(2)
我们平时开发一个andorid工程各种点击事件是经常要写的。比如setOnClickListener,以前我们使用的时候,

 relative_search.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

到了kotlin中没有new关键词了,那匿名内部类怎么写呢kotlin中的匿名内部类使用object关键词。

 relative_search.setOnClickListener(object : View.OnClickListener{
            override fun onClick(v: View?) {

            }
        })

kotlin对Lambda表达式支持的很好。可以直接如下写

 relative_search.setOnClickListener{

        }

是不是很简单。

上面的监听方法中只有一个参数,如果是多个参数

  mAdapter!!.setOnItemClickListener(object : BaseQuickAdapter.OnItemClickListener{
            override fun onItemClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {
            }

        })
mAdapter!!.setOnItemClickListener { adapter, view, position ->

            }
        }

这样写我们的代码是不是很清晰啊。

上面这两点都是kotlin中的最基础的知识点,所以说在学习一个新的语言的时候,学会练熟它的基础很重要。就比如我们知道这个地方需要写一个匿名内部类,但是这个语言的匿名内部类 怎么写呢我知道,还得去查文档。当遇到另外的问题的时候,还不知道,还得去查文档。虽然差文档或者百度可以解决问题,但是这样做项目的时候断断续续无疑会很影响心情。

(3)
服务器返回的json数据转化成实体类无疑是个很费时并且没啥技术的苦力活,以前都是使用studio插件GsonFormat来自动生成。一开始我是先建一个java工程,然后使用GsonFormat生成实体类,在复制道kotlin的实体类对象中。使用IDE翻译。但是这样翻译过来的并不是最佳的,有很多的冗余。后来一想,kotlin中应该也有插件啊,然后一搜索果然有它就是JsonToKotlinClass,又可以愉快地开发了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kotlin是一种现代化的静态类型编程语言,它可以用于开发各种类型的应用程序,包括电商项目。下面是一个简单的介绍,如何使用Kotlin来编写电商项目: 1. 数据库设计:首先,你需要设计一个适合电商项目的数据库模型。你可以使用关系型数据库(如MySQL)或非关系型数据库(如MongoDB)来存储商品信息、用户信息、订单信息等。 2. 后端开发:使用Kotlin编写后端代码,可以选择使用Spring Boot框架来构建RESTful API。你可以定义商品、用户、订单等实体类,并编写相应的控制器和服务类来处理业务逻辑。通过API接口,前端可以与后端进行数据交互。 3. 前端开发:使用Kotlin编写前端代码,可以选择使用Kotlin/JS或Kotlin/React框架来构建用户界面。你可以设计商品列表、购物车、用户登录注册等页面,并通过API接口与后端进行数据交互。 4. 身份验证和授权:在电商项目中,用户身份验证和授权是非常重要的。你可以使用JWT(JSON Web Token)来实现用户登录和访问控制,确保只有经过身份验证的用户才能访问特定的资源。 5. 支付集成:电商项目通常需要与第三方支付平台进行集成,以实现在线支付功能。你可以选择集成支付宝、微信支付等常用的支付平台,通过调用相应的API来处理支付请求和回调。 6. 订单管理:电商项目需要实现订单管理功能,包括创建订单、查看订单、取消订单等操作。你可以设计相应的数据库表和API接口,以及编写相应的业务逻辑来处理订单相关的操作。 7. 安全性和性能优化:在开发电商项目时,需要考虑安全性和性能优化。你可以使用HTTPS来保护数据传输的安全性,使用缓存技术来提高系统性能,使用负载均衡和分布式架构来提高系统的可扩展性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值