让你的代码量减少3倍!使用kotlin开发Android(一)
让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程
本文同步自博主的私人博客:wing的地方酒馆
写在前面
使用kotlin开发android已经两周多了。得到的好处太多,敲代码简直是爽的飞起。kotlin简单,易用,代码量少。这么爽的东西,不敢私藏,所以写出来与大家分享。
可能标题说减少3倍你不信,但事实上并不夸张。通过学习本系列文章,你会发现,代码。真的少了很多。
本系列文章将会使用kotlin从无到有撸一个android小应用程序(不是微信小程序= =!),而并非传统的学习语言方式(如:《21天精通kotlin》、《kotlin从入门到精通》)。在创作的过程中学习语法,我认为单纯的学语法没什么意义,学了也会忘。因为本身不是为了学而学,而是为了用而学。用得多了,也就记住了。
至于Kotlin是什么,简单的说就是跑在jvm上的新语言,他的特点就是短小 快,至于有什么好处,那就说不完啊,挑特点来说。
- 无缝对接java,可以java代码和kotlin代码互相调用
- 一键java转kotlin,如果你有遗留的java代码,可以一键转换
- 函数扩展功能,再也不知道啥叫继承
创建第一个kotlin应用!
首先打开你的AS,像往常一样,创建一个Android应用。
然后在Setting里找到Plugin选项,搜索kotlin插件。从官方仓库下载安卓即可。
在app的gradle下加入如下代码
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
- 在project的gradle下加入如下代码(注意你自己配置的时候,改成最新版本)
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.4"
- 接下来切换到MainActivity 同时按下cmd + alt + shift + k (mac下),即可把java代码转换成kotlin代码。
分析转换的代码
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
转换后
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
将两断代码做一个比较,可以看到的语法变化有:
- extends 变成了 :
- 函数定义关键字变为了fun
- 分号不见了
- 变量名称写在了类型前面
这些是语法的变化,到后面还会有一些,用得多了,也就记住了。后面再遇到语法变化还会继续总结。
将Hello World编为Hello Kotlin
首先给xml文件里的textView加一个id
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
/>
在以往的java代码中,想要改变textview的文本,需要先findviewbyid()之后再setText(),控件多了就很臃肿。是时候试试kotlin了!
下面用kotlin实现同样的功能,代码如下:
textView.text = "hello kotlin"
纳尼????就一句话??? 卧槽??? 什么鬼????
额。。你冷静一下,我知道你内心很卧槽。但确实是这样,如你看到的,findviewbyid不见了,取而代之的是直接写id。kotlin可以直接根据id找到控件,而避免findviewbyid,这时候你需要注意一下import头,导入这个东西才可以
import kotlinx.android.synthetic.main.activity_main.*
另外,setText也不见了。这是kotlin的一个特性,所有getter和setter可以省略,直接变为 .text
感觉如何?代码量是不是减少了许多,实际上这只是凤毛麟角而已啦。
本文这就结束了(嫌文字太短?不要急啦,你先去动手创建个工程咯。。系列文章,既然挖了坑,就不会拖更的(吧..))
本项目使用的代码地址
如果你是Android开发者,那么你还可以来 wing的酒馆: 425983695 来分享你的开发经验哦
让你的代码量减少3倍!使用kotlin开发Android(一)的更多相关文章
- 让你的代码量减少3倍!使用kotlin开发Android(二) --秘笈!扩展函数
本文承接上一篇文章:让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客wing的地方酒馆 上一节说到,kotlin可以省去getter,se ...
- 让你的代码量减少3倍!使用kotlin开发Android(四) kotlin bean背后的秘密
上一篇我们介绍了缩短五倍的java bean,不知道你在看的时候有没有一种疑问捏? 本文同步自博主的私人博客wing的地方酒馆 再来回顾一下,两种代码的对比 public class User { p ...
- 让你的代码量减少3倍!使用kotlin开发Android(三) 缩短五倍的Java Bean
回顾一下 哈,没想到你已经坚持不懈看到第三篇了,不错哈~坚持就是胜利. 本文同步自博主的私人博客wing的地方酒馆 在上一篇文章中,我们介绍了扩展函数,这里对上一篇进行一点小小的补充. 还记得text ...
- 让你的代码减少三倍!使用kotlin开发Android(五) 监听器
本文同步自 博主的私人博客wing的地方酒馆 在前面的博客中,有一个栗子,是点击按钮转跳的监听器. button.setOnClickListener { val user = User(" ...
- 让你的代码量减少3倍!使用kotlin开发Android
(一) 创建Kotlin工程 (二) –秘笈!扩展函数 (三) 缩短五倍的Java Bean 本项目使用的代码地址
- Guava中这些Map的骚操作,让我的代码量减少了50%
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合.缓存.并发.I/O等多个方面.使用这些API一方面 ...
- 前端程序员的蜕变——JS的 event 对象属性、使用实例、兼容性处理(极大提高代码效率、减少代码量)
下面讨论一下 js 中的 Event 对象,主要从以下三个方面详细的描述(点击标题可跳转到对应部分): 1.什么是event 2.怎么用event,用他该注意什么,几个简单实际应用 3.event在不 ...
- WPF INotifyPropertyChanged 通过特性减少代码量
在很多地方需要用上INotifyPropertyChanged的接口,MVVM模式,List等集合都会用到. 通常我们使用 protected void OnChange(PropertyChange ...
- 想减少代码量,快设置一个有感知的 Aware Spring Bean
摘要:正常情况下,Spring 中的 Bean 对 Spring 是无感知的,Spring 框架提供了这种扩展能力,能让一个 bean 成为有感知的. 本文分享自华为云社区<有感知的 Aware ...
随机推荐
- [转]pycharm常用快捷键及设置
PyCharm3.0默认快捷键(翻译的) PyCharm Default Keymap 1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt ...
- Shell自学之运算符和echo(W3C)
上面理论知识,最下面有我做的测试的例子: 10.Shell运算符 expr是一款表达式计算工具,使用它能完成表达式的求值操作 例:val=`expr 2 + 2`;echo "${val}& ...
- java制作验证码(java验证码小程序)
手动制作java的验证码 Web应用验证码的组成: (1)输入框 (2)显示验证码的图片 验证码的制作流程: 生成验证码的容器使用 j2ee的servlet 生成图片需要的类: (1) Buffere ...
- [Luogu 2090]数字对
Description 对于一个数字对(a, b),我们可以通过一次操作将其变为新数字对(a+b, b)或(a, a+b). 给定一正整数n,问最少需要多少次操作可将数字对(1, 1)变为一个数字对, ...
- [HNOI 2004]宠物收养场
Description 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的 ...
- POJ1743 Musical Theme(二分+后缀数组)
题目大概是给n个数组成的串,求是否有多个“相似”且不重叠的子串的长度大于等于5,两个子串相似当且仅当长度相等且每一位的数字差都相等. 这题是传说中楼教主男人八题之一,虽然已经是用后缀数组解决不可重叠最 ...
- MVC简单随笔
MVC的具体含义是:model+view+controller,即模型+视图+控制它们各自处理自己的任务: (1)模型(model):模型持有所有的数据.状态和程序逻辑.模型独立于视图和控制器.(2) ...
- Linux下修改主机IP地址、DNS、主机名的三种方法
使用root用户登录进入linux,打开进去终端 在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 (最后的eth0是网卡名,我的是Auto_et ...
- windows的常用快捷键(实用篇)
整理一下windows的常用快捷键,有些快捷键老不用都忘记了,这里整理一下方便自己以后忘记时翻阅. 一.Fn键的使用 1.F1帮助 2.F2重命名 3.F3打开搜索 4.F4打开地址栏常用地址 5.F ...
- AMD,CMD,UMD,CommonJS
http://www.jianshu.com/p/bd4585b737d7 http://www.jianshu.com/p/09ffac7a3b2c