关闭

你与高薪仅差一本Kotlin

标签: androidkotlin
921人阅读 评论(0) 收藏 举报
分类:

 谷歌在17年举行的I/O开发者大会上宣布,将Kotlin语言作为安卓开发的一级编程语言。于此同时,Kotlin语言一出就上了各大IT门户网站的头条,百度搜索达到300万条,招聘公司已经开始高薪找人,今天小编带你了解一下Kotlin,并推荐一本Kotlin入门书《Kotlin程序开发入门精要》




Kotlin是什么?

      可能很多读者看到Kotlin这个单词会感到很陌生,这很正常。就和2007年以前一样,在苹果公司推出iPhone以及相应的开发工具之前,Objective-C就鲜为人知,至少在国内是这样的。上面提到的Objective-C是一种编程语言,而本书的主题是Kotlin,那么首先要回答的是,Kotlin到底是什么呢?没错,Kotlin和Objective-C一样,是一种编程语言。

      Kotlin是由JetBrains创建的基于JVM的编程语言,那么JetBrains又是什么呢?我相信很多Java程序员使用过IntelliJ IDEA,这个非常棒的Java IDE(集成开发环境)就是JetBrains的杰作。如果你没听过或没用过IntelliJ IDE,那么也没有太大关系。相信阅读本书的读者或多或少都了解一些Android的知识,Android官方推荐的IDE是Android Studio,简称AS。这个IDE就是基于IntelliJ IDEA社区版开发的。JetBrains旗下不只有IntelliJ IDEA一款产品,Kotlin也是JetBrains旗下的一款产品,一种编程语言。这种编程语言运行在JVM上,也就是Kotlin编译器会将Kotlin源代码编译成Java Byte Code(Java字节码),可以直接运行在JVM上。从这一点看出,在技术层面,Java和Kotlin是同一个级别的,都以Java Byte Code形式运行在JVM上。当然,Kotlin编译器还可以将Kotlin源代码编译生成JavaScript代码,以便在没有JVM的情况下运行。在未来,Kotlin编译器还可以将Kotlin源代码编译生成本地代码,完全脱离任何虚拟机运行,也就是说,Kotlin相对Java的优势之一是多目标编译语言,而Java只能编译生成Java Byte Code(.class文件)。

为什么Kotlin突然成为热门?

      尽管Kotlin已经推出有很长一段时间了,但并不怎么出名,可能是因为JetBrains对它的推广力度不够,加之现在的编程语言实在太多了,所以Kotlin就像一块石头扔进了大海,不见了踪影。

      那么为什么现在Kotlin突然成为热门了呢?原因也很简单,Kotlin可以开发Android App,而且被Google公司选为开发Android App的一级语言,即在Android Studio 3.0及以上版本中会支持利用Kotlin语言开发Android App。这也就意味着,到目前为止,开发Android 本地App可以使用Java和Kotlin两种编程语言。这就很像开发iOS App的场景了,可以使用Objective-C和Swift两种语言开发iOS App。因此,很多人把Kotlin比作Android世界的Swift。而且Kotlin和Swift的确都是很棒的编程语言,都加入了很多“语法糖”,可以大幅提高程序开发的效率。

Kotlin相对于Java有哪些优势?

      可能很多读者会问,既然有了Java,为什么Google公司还要选择Kotlin来开发Android App呢?Kotlin相比Java有哪些优势呢?

      在这一节我们来简单了解一下Kotlin的特点,通过这些介绍,我们可以体会到Kotlin的优势所在。

  • 更容易学习:Kotlin是一门包含很多函数式编程思想的面向对象编程语言,而且相比Scala语言更容易学习。

  • 轻量级:相比其他编程语言,Kotlin函数库更小。由于Android存在65K方法数限制,使得这一点显得更为重要。虽然使用ProGuard或者打包成多个dex能够解决这个问题,但是所有这些解决方案都会提高复杂性,并增加调试的时间。Kotlin函数库方法数小于7000个,相当于support-v4(Android 1.6)的大小。

  • 高度可互操作性:Kotlin可以和其他Java类库友好且简单地进行互操作。Kotlin团队在开发这门新语言时正是秉承了这个中心思想。他们希望可以使用Kotlin继续开发现有的使用Java语言编写的工程,而不是重写所有代码。因此,Kotlin需要能够和Java很好地进行互操作。

  • 非常好地集成Android Studio及Gradle:Kotlin有一个专门用于Android Studio的插件,以及另一个专门用于Gradle的插件。而且即将推出的Android Studio 3.0已经集成了Kotlin,因此在Android工程中开始使用Kotlin并不困难。

      当然,Kotlin还有很多语法层面的特性,如数据模型类、空类型安全、扩展函数等,这些技术将会在后面的章节介绍中展开。

Kotlin能做什么?

      从前面的内容可以知道,Kotlin可以用来开发Android App,那么除了Android App,Kotlin还可以做什么呢?在本节我们就来一窥究竟。

1.服务端开发

      既然Kotlin是基于JVM的编程语言,那么自然而然就可以使用所有基于JVM的服务端框架。下面是几个Kotlin官方文档推荐的框架。

  • Spring:一种开源框架,是为了解决企业应用程序开发复杂性问题而创建的。从Spring 5开始,Spring就已经支持Kotlin的新特性了,并可以使用Spring在线生成器(https://start.spring.io)生成基于Kotlin的工程。

  • Vert.x:用于建立基于JVM的响应式Web应用的框架。

  • Ktor:由JetBrains发布的一款基于Kotlin的本地Web框架

  • kotlinx.html:是一种DSL(领域专用语言),用于在Web应用中生成HTML。Kotlin服务端框架和kotlinx.html的关系就像JSP和FreeMarker的关系一样,FreeMarker是基于Java的模板引擎。使用FreeMarker,可以不依赖于HTML或其他技术,可以根据需要生成HTML或其他东西,也就是一种与具体渲染技术无关的技术。

2.以JavaScript方式运行

     Kotlin提供了生成JavaScript源代码的能力,也就是将Kotlin代码直接转换为JavaScript代码。目前,支持ECMAScript 5.1标准,未来会支持ECMAScript 6。

      注意,如果将Kotlin代码转换为JavaScript代码,在Kotlin代码中只能包含Kotlin标准库,不能包含任何JDK API以及任何第三方的Java Library API,任何不属于Kotlin本身(Kotlin语句和标准库)的部分在转换的过程中将被忽略。

3.开发Android App

       这一部分在上文提到过,Kotlin和Java一样,都可以开发Android App,而且Kotlin和Java源代码文件可以在同一个工程中,可以联合进行调试。

      尽管Kotlin能做很多事(Java能做的,Kotlin都能做),但本书的主要关注点是开发Android App,因此,在本书后续部分将着重介绍如何利用Kotlin开发Android App。

Kotlin入门,怎么学?

一本全程视频陪伴贴心跟踪初学者学习效果的Kotlin开发书

《Kotlin程序开发入门精要》


点击图片查看详情)

编辑推荐

1基于最新的Kotlin版本

2本书分为三部分:Kotlin基础、Android开发和项目实战,读者通过对本书的学习,不仅可以掌握Kotlin的知识,还可以将Kotlin用于项目实战。

3赠送近70小时视频课程,包括Kotlin和Android,供初学者学习使用

4通过极客题库提供大量的测试题以及过关斩将系统,读者可以用通关的方式更有效地学习书中的知识

5随书赠送价值300元优惠卡,可以用于购买李宁老师其他视频课程以及现在及未来提供的其他服务

6有问题的学员可以通过欧瑞科技(创始人是李宁)的问答社区区(https://geekori.com提问,会有专人回答读者提出的问题,以及通过博客系统总结书中学到的知识,同时,提出问题、回答问题以及撰写的博客越多,就会增加读者的积分,以后学习李宁老师其他的课程和获取其他资源,会有更大的优惠。

仅仅一本书怎么行?海量视频、海量习题快速入门





更多Android类好书,扫码查看




2
0
查看评论

Kotlin是如何做的 之单例

Kotlin是如何实现的之 单例
  • haoyifen
  • haoyifen
  • 2017-02-16 17:12
  • 2061

什么是kotlin?

什么是Kotlin? Kotlin,如前面所说,它是JetBrains开发的基于JVM的语言。JetBrains因为创造了一个强大的Java开发IDE被大家所熟知。Android Studio,官方的Android IDE,就是基于Intellij,作为一个该平台的插件。 Kotli...
  • qq_23381995
  • qq_23381995
  • 2017-05-21 16:22
  • 536

使用Kotlin做一个简单的HTML构造器

最近在学习Kotlin,看到了Kotlin Koans上面有一个HTML构造器的例子很有趣。今天来为大家介绍一下。最后实现的效果类似Groovy 标记模板或者Gradle脚本,就像下面(这是一个Groovy标记模板)这样的。html(lang:'en') {
  • u011054333
  • u011054333
  • 2017-03-02 20:57
  • 911

用 Kotlin 开发 Android 项目是一种什么样的感受?

从初学 Kotlin,到尝试性的写一点体验代码,再到实验性的做一些封装工作,到最后摸爬滚打着写了一个项目。不得不说过程中还是遇上了不少的问题,尽管有不少坑是源于我自己的选择,比如使用了 anko 布局放弃了 xml,但是总体来说,这门语言带给我的惊喜是完全足以让我忽略路上的坎坷。这篇文章仅仅是想整理...
  • neverwoods
  • neverwoods
  • 2017-03-31 17:02
  • 4515

Android开发:为什么要使用Kotlin?

在使用Kotlin进行了一段时间的Android开发之后,我深深地体验到了它的美好,觉得是时候把它拿出来安利一下了。
  • barryhappy
  • barryhappy
  • 2016-10-20 21:36
  • 2785

准备起航,了解Kotlin

“近一百多年来,总有一些公司很幸运地、有意识或无意识地站在技术革命的浪尖之上。一旦出在了那个位置,即使不做任何事,也可以随着波浪顺顺当当地向前飘个十年甚至更长时间。在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。” —— 吴军 《浪潮之巅》 正如作者吴军所言,“在工业史上,一种...
  • u013651026
  • u013651026
  • 2018-01-27 22:51
  • 48

java程序员如何面试成功拿高薪(一)

前言:该文章主要针对即将找工作或正在找工作但能力
  • jiangnan8710
  • jiangnan8710
  • 2014-10-30 10:24
  • 2435

Java 计算两个日期直接相差多少天

public static int getBetweenDay(Date date1, Date date2) { Calendar d1 = new GregorianCalendar(); d1.setTime(date1); Calendar d...
  • wu996489865
  • wu996489865
  • 2016-03-28 17:49
  • 412

Kotlin 学习笔记(二)—— 基础语法

Kotlin 学习笔记(二)—— 基础语法 Kotlin学习笔记系列教程 Kotlin 学习笔记(一)—— 概述、学习曲线、开发工具、参考资料 1. 基础语法 定义包 包的声明应该处于源文件顶部: package hard.uistudy.dai.uifina...
  • dazhaoDai
  • dazhaoDai
  • 2018-02-08 20:54
  • 79

用Kotlin写Android Gradle脚本

Android应用开发中,离不开Gradle脚本的构建。大部分Android开发同学忽视了脚本的力量,甚至有很大一部分同学不知道Gradle脚本是什么,用什么语言编写的;当然,也有相当一部分同学知道Gradle脚本是使用Groovy语言编写的,但对于Groovy语言却一窍不通,只是勉强可以看懂Gra...
  • apple337008
  • apple337008
  • 2018-01-26 13:20
  • 132
    每周大咖书



    重磅推荐-火热预售中
    《Kotlin程序开发入门精要》
    基于新版Kotlin撰写的全视频教学Kotlin入门书
    70小时超长视频 涵盖Kotlin和Android开发 学习Kotlin一本就够
    活动预告
    CSDN专家问答-邀请嘉宾 《奔跑吧Linux内核》作者张天飞活动时间:8月21日-8月28日提问地址:http://ask.csdn.net/subjects/35
    个人资料
    • 访问:292185次
    • 积分:2658
    • 等级:
    • 排名:第16150名
    • 原创:85篇
    • 转载:6篇
    • 译文:0篇
    • 评论:574条
    最新评论