不必寫程式也能做APP - Google APP Maker

也許您的需求並不需要尋找承包商.

 

試試看Google APP Maker

 

 

Google APP Maker

 

 

 

 

Android另一種原生語言 - Kotlin

好的軟體公司要不斷鼓勵與獎勵學習新技術

來源 : https://kymjs.com/code/2017/02/03/01/

 

Kotlin Primer·第一章·启程

 

写在前面

本文开源实验室原创,转载请以链接形式注明地址:https://kymjs.com/code/2017/02/03/01

题外话:全书的目录以及主要内容已经公开,可在我公众号【技术实验室】的历史推送文章查看

第一部分——快速上手
第一章·启程 
第二章·基本语法
第三章·Kotlin 与 Java 混编 
第二部分——开始学习 Kotlin
第四章·Kotlin 的类特性(上)
第四章·Kotlin 的类特性(下)
第五章·函数与闭包

欢迎阅读本书!Kotlin 语言是一种新的静态类型编程语言,可运行于 JVM 环境同时也能用来开发 Android 应用。本章为学习和使用这一新兴的语言做准备,并讨论在一些常见开发环境中运行 Kotlin 程序的方法。

1.1 Kotlin语言介绍

Kotlin 是 JetBrains 在 2010 年推出的基于 JVM 的新编程语言。开发者称,设计它的目的是避免 Java 语言编程中的一些难题。比如:在 Kotlin 中类型系统控制了空指针引用,可以有效避免 Java 中常见的NullPointException。 
作为一个跨平台的语言,Kotlin 可以工作于任何 Java 的工作环境:服务器端的应用,移动应用(Android版),桌面应用程序。

1.2 Kotlin的优势

相比于 Java,Kotlin 有着更好的语法结构,安全性和开发工具支持。
Kotlin 中没有基础类型,数组是定长的,泛型是安全的,即便运行时也是安全的。此外,该语言支持闭包,还可通过内联进行优化。不过,它不支持检查异常(Checked Exceptions),许多语言设计者认为这是它的瑕疵。不论如何,重要的是 Java 和 Kotlin 之间的互操作性:Kotlin 可以调用 Java,反之亦可。

1.3 准备工作

Intellij IDEA 是 JetBrains 提供的继承开发环境,可以用来开发 Kotlin 应用程序。
如果你是一名 Android 开发者,你也可以使用 Android Studio 来开发 Kotlin 程序。如你所知,Android Studio 其实就是 Intellij IDEA 的插件扩展,Intellij IDEA 是由 JetBrains 所开发,而 Kotlin 同样是由 JetBrains 创造的,其中的兼容性自然不用多说。
在安装好 Intellij IDEA 后,还需要安装 Kotlin 插件。
说明:从 Intellij 15 开始,已经自带了 Kotlin 插件,无需再次下载,而 Android Studio 却没有。不过还是建议你运行一下下面的步骤,检查一下插件是否为最新版。

首先启动你的 IDE,按下快捷键 Ctrl+, (Mac 下为 command+,) 打开Preference 界面。
点击左侧 Plugin 栏,打开插件界面。 
点击 Browse repositories(如图1-3-1)。

图1-3-1:kotlin安装

在弹出的窗口上方,搜索 “Kotlin”,选中 Kotlin 和 Kotlin Extension For Android(1.1以后两个插件已经合并为一个)。
点击右侧的 Install。
安装完成后按钮会变成 Restart,再次点击重启 IDE。
刚刚安装的这两个插件分别为 Kotlin 语言支持包,和我们稍后会用到的Android 开发的扩展包。

一点小技巧:也许由于网络环境原因,会造成下载失败。可以根据弹出窗口中提示的(或直接在 JetBrains 插件市场搜索)下载链接,使用国内网盘的离线下载功能,下载到网盘后再从网盘下载到本地。

1.4 Hello Kotlin

1.4.1 第一个Kotlin程序

首先我们打开 Intellij 选中 Create a new project 选项后可以看到如下界面。
在 Additional Libraries and Frameworks 选项框中,如果你已经成功安装 Kotlin 插件,可以直接勾选 Kotlin(Java) 选项。
再点击下方的 Create 按钮,在弹出的 Create Kotlin Java Runtime Library 选项框中,我们选择 Use library from plugin 并确定(如图1-4-1)。

图1-4-1

点击 Next,填写工程名和路径,这里我们创建一个名为 Hello 的工程,并点击 Finish 完成创建(如图1-4-2)。

图1-4-2

首次创建工程需要等待一段时间,编译器这个时候正在帮助我们下载一些必要的依赖项。
工程构建完成后,右键工程目录的 src 图标,选择 New -> Kotlin File,这里我们新建一个名为 Hello 的 Kotlin 源码文件(如图1-4-3)。

图1-4-3

看一下左侧的工程目录,src 文件夹中存放的是源码,可以在这里新建包或类;Hello.iml 文件声明了一些项目所需的环境依赖,我们不用关心。
于是,终于可以开始激动人心的编码了。

图1-4-4

Kotlin 程序非常简单,简单到只需要三行代码,相比起 Java 连包名都不是必须的。

fun main(args: Array<String>) {
    print("hello kotlin!")
}

按下 Ctrl+R 快捷键,或者右上角绿色三角形,运行写好的程序(如图1-4-5)

图1-4-5

同 Java 语言一样,Kotlin 程序主入口也是 main() 函数。但是作为函数是一等公民的语言,它不需要像 Java 那样必须声明一个类。
在 Kotlin 中,函数的声明用 fun 表示,变量也与 Java 不同,是变量名在前,变量类型在后,中间用冒号隔开。
同时你也一定发现了,Kotlin 程序非常简洁,连分号也不需要写,当然如果你是刚从 Java 过渡来的,改不掉或不想改掉这个习惯,写上了也不会有错,因为它是可选的。 
同时,我们还可以发现,在左侧的工程目录多了一个红色名为 out 的目录,它是用来存放 .class 文件的。

1.4.2 面向对象的Kotlin程序

下面我们将 Hello 程序改一改,为它加入一些面向对象的特性。
我们创建一个包,并在包下新建名为Person的类。

package com.kymjs.kotlin.helloobj

class Person(val name: String) {
    fun printName() {
        println(name)
    }
}

再回到Hello.kt文件中,修改 main() 函数

import com.kymjs.kotlin.helloobj.Person

fun main(args: Array<String>) {
    println("hello kotlin!")
    Person("Zhang Tao").printName()
}

再次按下 Ctrl+R 快捷键,或者右上角绿色三角形,运行写好的程序(如图1-4-6)

图1-4-6

细心查看代码,Kotlin 创建对象的时候并不需要new关键字,而是像调用普通方法一样直接调用构造方法就可以了。
同时,由于两个文件不在同一个包下,需要导入Person类所在的包才能找到,当然,编译器已经帮我们解决了繁杂的导包过程。

1.5 编码风格

有关编码风格的一点建议,同 Java 类似,使用驼峰命名法,类名首字母大写,每个单词的首字母大写;方法和属性变量首字母小写;采用四个空格缩进。
值得一提的是,官方文档中建议在 Kotlin 语言中不要给属性前面加前缀,例如通常我们习惯加上一个小写m或者下划线等。
冒号,在分隔两个类型的时候,应该在左右都有空格,在实例和类型之间,应该紧靠实例变量,例如:

interface Foo<out T : Any> : Bar {
    fun foo(a: Int): T
}

Lambdas表达式,如果是简单的只用一行就可以表示的 lambda,应当遵循在大括号的两侧、箭头的两侧、参数的两侧都使用空格隔开,例如:

list.filter { it > 10 }.map { element -> element * 2 }

1.6 小结

在本章中,你已经编写了两个 Kotlin 程序,相信你也已经对 Kotlin 产生了兴趣。希望你也能像我一样,沉醉于使用 Kotlin 开发。
继续学习下一章的内容吧,我们将进入 Kotlin 的语法世界。

PTT創始人 杜奕瑾:人工智慧時代的世界觀

 

PTT創始人杜奕瑾先生對於未來人工智慧發展與台灣在AI上的機會的看法.

PTT早在十幾年前就已經有推跟噓的功能, Facebook則落後了PTT十餘年,

勇於做夢勇於實作, 不以即時利益(老二文化)作為第一考量.

機器學習:使用Python

鼓勵技術研究才是好的創新公司

 

出處 : https://machine-learning-python.kspax.io/

 

這份文件的目的是要提供Python 之機器學習套件 scikit-learn (http://scikit-learn.org/) 的中文使用說明。一開始的主要目標是詳細說明scikit-learn套件中的範例程式的使用流程以及相關函式的使用方法。目前使用版本為 scikit-learn version 0.17 以上

本書原始資料在 Github 上公開,歡迎大家共同參與維護: https://github.com/htygithub/machine-learning-python

本文件主要的版本發展

  • 0.0: 2015/12/21
    • 開始本文件「機器學習:使用Python」的撰寫
    • 初期以scikit-learn套件的範例介紹為主軸
  • 0.1: 2016/4/15
    • 「機器學習:使用Python」文件
    • Contributor: 陳巧寧、曾裕勝、黃騰毅 、蔡奕甫
    • 新增章節: Classification, Clustering, cross_decomposition, Datasets, feature_selection, general_examples
    • 新增 introduction: 說明簡易的Anaconda安裝,以及利用數字辨識範例來入門機器學習的方法
    • 第 10,000個 pageview 達成 
  • 0.2: 2016/8/30
    • 新增應用章節,Contributor: 吳尚真
    • 增修章節: Classification, Datasets, feature_selection, general_examples
  • 0.3: 2017/2/16
    • 新增應用章節,Contributor: 楊采玲、歐育年
    • 增修章節: Neural_Network, Decision tree
    • 2016年,使用者約四萬人次,頁面流量約15萬次。 

      Scikit-learn 套件

Scikit-learn (http://scikit-learn.org/) 是一個機器學習領域的開源套件。整個專案起始於 2007年由David Cournapeau所執行的Google Summer of Code 計畫。而2010年之後,則由法國國家資訊暨自動化研究院(INRIA, http://www.inria.fr) 繼續主導及後續的支援及開發。近幾年(2013-2015)則由 INRIA 支持 Olivier Grisel (http://ogrisel.com) 全職負責該套件的維護工作。以開發者的角度來觀察,會發現Scikit-learn的整套使用邏輯設計的極其簡單。往往能將繁雜的機器學習理論簡化到一個步驟完成。Python的機器學習相關套件相當多,為何Scikit-learn會是首選之一呢?其實一個開源套件的選擇,最簡易的指標就是其contributor: 貢獻者 、 commits:版本數量 以及最新的更新日期。下圖是2016/1/3 經過了美好的跨年夜後,筆者於官方開源程式碼網站(https://github.com/scikit-learn/scikit-learn) 所擷取的畫面。我們可以發現最新commit是四小時前,且contributorcommit數量分別為531人及 20,331個。由此可知,至少在2016年,這個專案乃然非常積極的在運作。在眾多機器學習套件中,不論是貢獻者及版本數量皆是最龐大的。也因此是本文件介紹機器學習的切入點。未來,我們希望能介紹更多的機器學習套件以及理論,也歡迎有志之士共同參與維護。