SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
KOTLIN初體驗
andyang@TADSG
ABOUT ME
▸ Andy
▸ @ 停⾞車車⼤大聲公
▸ @ Android Developer 讀書會 (TADSG)
▸ @ Android Code Club (週三晚上)
有⼈人聽過
KOTLIN 嗎?
有⼈人⽤用過
KOTLIN 嗎?
⽂文字
HELLO KOTLIN
▸ JetBrains 開發的 JVM 語⾔言
▸ 包含很多 Effective Java 的思想在裡⾯面
▸ Java 開發者的夢幻語⾔言 ?!
⽂文字
WHY KOTLIN
▸ Short Code
▸ Null Safety
▸ Smart Cast
▸ Lambda (Functional Programing)
▸ Method Extension
▸ Hybrid with Java
▸ Default final
▸ Everything is Object
⽂文字
HOW KOTLIN
▸ Install Android Studio Plugin “Kotlin”
▸ cmd + shift + a -> Configure kotlin in Project
▸ classpth : “org.jetbrains.kotlin:lotlin-gradle-plugin:1.0.7”
▸ apply plugin: ‘kotlin-android’
▸ compile ‘org.jetbrains.kotlin:kotlin-stdlib:1.0.7’
⽂文字
JAVA TO KOTLIN
▸ 遇到不知道如何表達的 kotlin 語法可以先透過轉換觀察
▸ cmd + shift + a -> Convert Java File to Kotlin
▸ ⼀一鍵完成
⽂文字
KOTLIN FEATURE
▸ Multiple class in one file
▸ Data Class
▸ Properties val/var
▸ Null Safety
▸ Smart Cast
▸ Method Extension / infix
▸ Lambda
▸ Operator Overloading
▸ Companion object
▸ Delegate
▸ Dependency Injection
⽂文字
MULTIPLE CLASS IN ONE FILE
▸ Class 的整理理更更有彈性
▸ 同質性⾼高且簡易易的 Class 可以放到⼀一起
▸ 提⾼高閱讀,不易易中斷思考
⽂文字
DATA CLASS
▸ hashCode()
▸ toString()
▸ equals()
▸ with properties
⽂文字
PROPERTIES
▸ var(variable)
▸ var age (compile error)
▸ var age:Int (compile error)
▸ var age = 1 (ok)
▸ age = 2 (ok)
▸ age = null (ok)
▸ var myAge = age (ok)
⽂文字
PROPERTIES
▸ val(value)
▸ val age (compile error)
▸ val age:Int (compile error)
▸ val age = 18 (ok)
▸ age = 19 (compile error)
⽂文字
NULL SAFETY
▸ NullPointerException
▸ ? -> nullable, default non null
▸ var order : Order? = Order()
▸ order?.price (null safety if order is null)
▸ order.price (compile error)
⽂文字
SMART CASE
▸ ClassCastException
▸ Stupid Case
if(exception instanceOf HttpException) {
HttpException httpException = (HttpException) exception
int code = httpException.getStatusCode();
}
⽂文字
SMART CASE
▸ Smart Case
when(exception) {
is HttpException -> {
int code = exception.statusCode
}
default -> {
// do something else
}
}
⽂文字
METHOD EXTENSION / INFIX
▸ Method Extension
var name : String = null
val isNull = name.isNullOrEmpty()
▸ In Java
if(name == null || name.length == 0)
StringUtils.isNullOrEmpty(name)
⽂文字
METHOD EXTENSION / INFIX
▸ How
fun CharSequence?.isNullOrEmpty() : Boolean
= this == null || this.lenght == 0
⽂文字
METHOD EXTENSION / INFIX
▸ Infix
▸ val isLike = “ABC” like “123-ABC”
infix fun String.like(it: String) : Boolean =
this.toUpperCase.contains(it)
▸ “name” to “Andy”
mapOf(
Pair(“nickName”, “andyang”),
“name” to “Andy”
)
⽂文字
LAMBDA
▸ 不必再等 Java 8 到天荒地老
▸ 不⽤用 Retrolambda
▸ Kotlin 內建 lambda
⽂文字
LAMBDA
▸ setOnClickListener()
view.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
Toast.makeToast(…..).show()
}
})
⽂文字
LAMBDA
▸ setOnClickListener()
view.setOnClickListener({ view ->
Toast.makeToast(…..).show()
})
view.setOnClickListener({
Toast.makeToast(…..).show()
})
⽂文字
LAMBDA
▸ setOnClickListener()
view.setOnClickListener{ Toast.makeToast(…..).show()}
view.onClick{ Toast.makeToast(…..).show()}
⽂文字
LAMBDA
▸ Adapter OnItemClickListener
interface OnOrderItemClickListener{
onOrderItemClick(Order order);
}
OnOrderItemClickListener onOrderItemClickListener;
‣ interface, setter, init, invoke
⽂文字
LAMBDA
▸ Adapter OnItemClickListener in Kotlin
var onOrderItemClickListener : (order: Order) -> Unit
holder?.onClick{
onOrderItemClickListener.invoke(order)
}
holder?.onClick{
onOrderItemClickListener(order)
}
⽂文字
OPERATOR OVERLOADING
▸ a == b -> a.equals(b)
▸ a + b -> a.plus(b)
▸ a - b, a * b, a / b, a % b …..
▸ a..b -> a.rangeTo(b)
▸ a in b -> a.contains(b)
▸ a[i] -> a.get(i)
▸ a[i] = b -> a.set(i, b)
⽂文字
COMPANION OBJECT
class App : Application() {
companion object {
private var instance: Application? = null
fun instance() = instance
}
override fun onCreate() {
super.onCreate();
instance = this
}
}
⽂文字
PROPERTISE DELEGATE
class Delegate<T> : ReadWriteProperty<Any?, T> {
override fun getValue(thisRef: Any?, property : KPropety<*>) {
}
override fun setValue(thisRef: Any?, property : KPropety<*>, value: T) {
}
}
var name : String by Delegate()
⽂文字
PROPERTISE DELEGATE
‣ Demo Delegate SharedPreferences
⽂文字
DEPENDENCY INJECTION
‣ In MPV Pattern
‣ Presenter need inject Model
‣ Repository(NetworkService networkService,
LocalData localData)
‣ LocalData(Content context)
‣ Presenter(View view, Repository repository)
⽂文字
DEPENDENCY INJECTION
‣ new Presenter
‣ In Java
Presenter presenter = new Presenter(new
Repository(new NetworkService(), new
LocalData(context))); // so ugly
Presenter presenter = PresenterFactory.create();
⽂文字
DEPENDENCY INJECTION
‣ In kotlin
‣ Repository(networkService : NetworkService =
NetworkService(), localData : LocalData =
LocalData())
‣ LocalData(context : Content = App.instance())
‣ Presenter(view : View, repository : Repository =
Repository())
⽂文字
DEPENDENCY INJECTION
‣ In kotlin
‣ val presenter = Presenter(view)
‣ for testing
‣ val presenter = Presenter(view, mockRepository)
⽂文字
REFERENCE
▸ Kotlin official guide
▸ https://kotlinlang.org/docs/reference/
▸ Kotlin For Android Developer (e-book)
▸ https://antonioleiva.com/kotlin-android-developers-
book/
學習⼀一⾨門語⾔言最快的
⽅方式就是只能⽤用它!
andyang
⽂字
Q&A

Más contenido relacionado

La actualidad más candente

Grailsx@ロンドンへ行ってきた報告。
Grailsx@ロンドンへ行ってきた報告。Grailsx@ロンドンへ行ってきた報告。
Grailsx@ロンドンへ行ってきた報告。Tsuyoshi Yamamoto
 
Coscup x ruby conf tw 2021 google cloud buildpacks 剖析與實踐
Coscup x ruby conf tw 2021  google cloud buildpacks 剖析與實踐Coscup x ruby conf tw 2021  google cloud buildpacks 剖析與實踐
Coscup x ruby conf tw 2021 google cloud buildpacks 剖析與實踐KAI CHU CHUNG
 
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Rajmahendra Hegde
 
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...ZeroTurnaround
 
#MBLTdev: Разработка первоклассных SDK для Android (Twitter)
#MBLTdev: Разработка первоклассных SDK для Android (Twitter)#MBLTdev: Разработка первоклассных SDK для Android (Twitter)
#MBLTdev: Разработка первоклассных SDK для Android (Twitter)e-Legion
 
Using Monitoring & Configuration Management to restart services.
Using Monitoring & Configuration Management to restart services.Using Monitoring & Configuration Management to restart services.
Using Monitoring & Configuration Management to restart services.gregretkowski
 
Gradle - time for a new build
Gradle - time for a new buildGradle - time for a new build
Gradle - time for a new buildIgor Khotin
 
Using the Groovy Ecosystem for Rapid JVM Development
Using the Groovy Ecosystem for Rapid JVM DevelopmentUsing the Groovy Ecosystem for Rapid JVM Development
Using the Groovy Ecosystem for Rapid JVM DevelopmentSchalk Cronjé
 
Build microservice with gRPC in golang
Build microservice with gRPC in golangBuild microservice with gRPC in golang
Build microservice with gRPC in golangTing-Li Chou
 
用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構Bo-Yi Wu
 
Gdg cloud taipei ddt meetup #53 buildpack
Gdg cloud taipei ddt meetup #53 buildpackGdg cloud taipei ddt meetup #53 buildpack
Gdg cloud taipei ddt meetup #53 buildpackKAI CHU CHUNG
 

La actualidad más candente (11)

Grailsx@ロンドンへ行ってきた報告。
Grailsx@ロンドンへ行ってきた報告。Grailsx@ロンドンへ行ってきた報告。
Grailsx@ロンドンへ行ってきた報告。
 
Coscup x ruby conf tw 2021 google cloud buildpacks 剖析與實踐
Coscup x ruby conf tw 2021  google cloud buildpacks 剖析與實踐Coscup x ruby conf tw 2021  google cloud buildpacks 剖析與實踐
Coscup x ruby conf tw 2021 google cloud buildpacks 剖析與實踐
 
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
 
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
 
#MBLTdev: Разработка первоклассных SDK для Android (Twitter)
#MBLTdev: Разработка первоклассных SDK для Android (Twitter)#MBLTdev: Разработка первоклассных SDK для Android (Twitter)
#MBLTdev: Разработка первоклассных SDK для Android (Twitter)
 
Using Monitoring & Configuration Management to restart services.
Using Monitoring & Configuration Management to restart services.Using Monitoring & Configuration Management to restart services.
Using Monitoring & Configuration Management to restart services.
 
Gradle - time for a new build
Gradle - time for a new buildGradle - time for a new build
Gradle - time for a new build
 
Using the Groovy Ecosystem for Rapid JVM Development
Using the Groovy Ecosystem for Rapid JVM DevelopmentUsing the Groovy Ecosystem for Rapid JVM Development
Using the Groovy Ecosystem for Rapid JVM Development
 
Build microservice with gRPC in golang
Build microservice with gRPC in golangBuild microservice with gRPC in golang
Build microservice with gRPC in golang
 
用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構用 Go 語言打造多台機器 Scale 架構
用 Go 語言打造多台機器 Scale 架構
 
Gdg cloud taipei ddt meetup #53 buildpack
Gdg cloud taipei ddt meetup #53 buildpackGdg cloud taipei ddt meetup #53 buildpack
Gdg cloud taipei ddt meetup #53 buildpack
 

Destacado

Green Buildings Overview and Analysis of Energy Efficient Building
Green Buildings Overview and Analysis of Energy Efficient BuildingGreen Buildings Overview and Analysis of Energy Efficient Building
Green Buildings Overview and Analysis of Energy Efficient Buildingpaperpublications3
 
Sesion coeducacion
Sesion coeducacionSesion coeducacion
Sesion coeducacionShanaiss
 
Management of patients_with_venous_leg_ulcers_final_2016
Management of patients_with_venous_leg_ulcers_final_2016Management of patients_with_venous_leg_ulcers_final_2016
Management of patients_with_venous_leg_ulcers_final_2016GNEAUPP.
 
設計師合作經驗分享
設計師合作經驗分享設計師合作經驗分享
設計師合作經驗分享哲偉 楊
 
Безопасная дорога в школу
Безопасная дорога в школу Безопасная дорога в школу
Безопасная дорога в школу kendzi
 
Magnetic Levitation Time Machine
Magnetic Levitation Time MachineMagnetic Levitation Time Machine
Magnetic Levitation Time Machinepaperpublications3
 
Dossier inscription collège 2017
Dossier inscription collège 2017Dossier inscription collège 2017
Dossier inscription collège 2017rammt
 
Companies laws complete notes
Companies laws complete notesCompanies laws complete notes
Companies laws complete notesShahMuhammad55
 
открытый урок в 4 классе 4.03
открытый урок в 4 классе 4.03открытый урок в 4 классе 4.03
открытый урок в 4 классе 4.03oquzaman
 
JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4Ismael
 
Optimal Unit Commitment Based on Economic Dispatch Using Improved Particle Sw...
Optimal Unit Commitment Based on Economic Dispatch Using Improved Particle Sw...Optimal Unit Commitment Based on Economic Dispatch Using Improved Particle Sw...
Optimal Unit Commitment Based on Economic Dispatch Using Improved Particle Sw...paperpublications3
 
MOPCON-2016-網路與科技引爆新型態公共服務
MOPCON-2016-網路與科技引爆新型態公共服務MOPCON-2016-網路與科技引爆新型態公共服務
MOPCON-2016-網路與科技引爆新型態公共服務KNY. KUN CHU. 坤助 陳. CHEN
 
5 Steps To Clean Your Android Code
5 Steps To Clean Your Android Code5 Steps To Clean Your Android Code
5 Steps To Clean Your Android CodeFrankie Sardo
 
ANDROID TRAINING IN CHENNAI
ANDROID TRAINING IN CHENNAIANDROID TRAINING IN CHENNAI
ANDROID TRAINING IN CHENNAIJahan Murugassan
 
Android notifications. testing guideline
Android notifications. testing guidelineAndroid notifications. testing guideline
Android notifications. testing guidelineTechMagic
 
Clean code on Android (Droidcon Dubai 2015)
Clean code on Android (Droidcon Dubai 2015)Clean code on Android (Droidcon Dubai 2015)
Clean code on Android (Droidcon Dubai 2015)Danny Preussler
 
ORMLite Android
ORMLite AndroidORMLite Android
ORMLite Android哲偉 楊
 
RxJava With retrolambda
RxJava With retrolambdaRxJava With retrolambda
RxJava With retrolambda哲偉 楊
 

Destacado (20)

Green Buildings Overview and Analysis of Energy Efficient Building
Green Buildings Overview and Analysis of Energy Efficient BuildingGreen Buildings Overview and Analysis of Energy Efficient Building
Green Buildings Overview and Analysis of Energy Efficient Building
 
Sesion coeducacion
Sesion coeducacionSesion coeducacion
Sesion coeducacion
 
Management of patients_with_venous_leg_ulcers_final_2016
Management of patients_with_venous_leg_ulcers_final_2016Management of patients_with_venous_leg_ulcers_final_2016
Management of patients_with_venous_leg_ulcers_final_2016
 
設計師合作經驗分享
設計師合作經驗分享設計師合作經驗分享
設計師合作經驗分享
 
Безопасная дорога в школу
Безопасная дорога в школу Безопасная дорога в школу
Безопасная дорога в школу
 
Magnetic Levitation Time Machine
Magnetic Levitation Time MachineMagnetic Levitation Time Machine
Magnetic Levitation Time Machine
 
Tomorrow's day
Tomorrow's dayTomorrow's day
Tomorrow's day
 
Dossier inscription collège 2017
Dossier inscription collège 2017Dossier inscription collège 2017
Dossier inscription collège 2017
 
Companies laws complete notes
Companies laws complete notesCompanies laws complete notes
Companies laws complete notes
 
открытый урок в 4 классе 4.03
открытый урок в 4 классе 4.03открытый урок в 4 классе 4.03
открытый урок в 4 классе 4.03
 
JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4
 
Optimal Unit Commitment Based on Economic Dispatch Using Improved Particle Sw...
Optimal Unit Commitment Based on Economic Dispatch Using Improved Particle Sw...Optimal Unit Commitment Based on Economic Dispatch Using Improved Particle Sw...
Optimal Unit Commitment Based on Economic Dispatch Using Improved Particle Sw...
 
MOPCON-2016-網路與科技引爆新型態公共服務
MOPCON-2016-網路與科技引爆新型態公共服務MOPCON-2016-網路與科技引爆新型態公共服務
MOPCON-2016-網路與科技引爆新型態公共服務
 
5 Steps To Clean Your Android Code
5 Steps To Clean Your Android Code5 Steps To Clean Your Android Code
5 Steps To Clean Your Android Code
 
ANDROID TRAINING IN CHENNAI
ANDROID TRAINING IN CHENNAIANDROID TRAINING IN CHENNAI
ANDROID TRAINING IN CHENNAI
 
Android notifications. testing guideline
Android notifications. testing guidelineAndroid notifications. testing guideline
Android notifications. testing guideline
 
Device fragmentation vs clean code
Device fragmentation vs clean codeDevice fragmentation vs clean code
Device fragmentation vs clean code
 
Clean code on Android (Droidcon Dubai 2015)
Clean code on Android (Droidcon Dubai 2015)Clean code on Android (Droidcon Dubai 2015)
Clean code on Android (Droidcon Dubai 2015)
 
ORMLite Android
ORMLite AndroidORMLite Android
ORMLite Android
 
RxJava With retrolambda
RxJava With retrolambdaRxJava With retrolambda
RxJava With retrolambda
 

Similar a Kotlin 初體驗

Kotlin初體驗
Kotlin初體驗Kotlin初體驗
Kotlin初體驗哲偉 楊
 
Summer of Tech 2017 - Kotlin/Android bootcamp
Summer of Tech 2017 - Kotlin/Android bootcampSummer of Tech 2017 - Kotlin/Android bootcamp
Summer of Tech 2017 - Kotlin/Android bootcampKai Koenig
 
Android 101 - Building a simple app with Kotlin in 90 minutes
Android 101 - Building a simple app with Kotlin in 90 minutesAndroid 101 - Building a simple app with Kotlin in 90 minutes
Android 101 - Building a simple app with Kotlin in 90 minutesKai Koenig
 
Coding for Android on steroids with Kotlin
Coding for Android on steroids with KotlinCoding for Android on steroids with Kotlin
Coding for Android on steroids with KotlinKai Koenig
 
Functional programming with Immutable .JS
Functional programming with Immutable .JSFunctional programming with Immutable .JS
Functional programming with Immutable .JSLaura Steggles
 
Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?Kai Koenig
 
Herding types with Scala macros
Herding types with Scala macrosHerding types with Scala macros
Herding types with Scala macrosMarina Sigaeva
 
2017: Kotlin - now more than ever
2017: Kotlin - now more than ever2017: Kotlin - now more than ever
2017: Kotlin - now more than everKai Koenig
 
Introduction to Kotlin
Introduction to KotlinIntroduction to Kotlin
Introduction to KotlinPatrick Yin
 
Little Helpers for Android Development with Kotlin
Little Helpers for Android Development with KotlinLittle Helpers for Android Development with Kotlin
Little Helpers for Android Development with KotlinKai Koenig
 
Kotlin – the future of android
Kotlin – the future of androidKotlin – the future of android
Kotlin – the future of androidDJ Rausch
 
GR8Conf 2011: Effective Groovy
GR8Conf 2011: Effective GroovyGR8Conf 2011: Effective Groovy
GR8Conf 2011: Effective GroovyGR8Conf
 
Kotlin, smarter development for the jvm
Kotlin, smarter development for the jvmKotlin, smarter development for the jvm
Kotlin, smarter development for the jvmArnaud Giuliani
 
4Developers: Michał Szczepanik- Kotlin - Let’s ketchup it
4Developers: Michał Szczepanik- Kotlin - Let’s ketchup it4Developers: Michał Szczepanik- Kotlin - Let’s ketchup it
4Developers: Michał Szczepanik- Kotlin - Let’s ketchup itPROIDEA
 
The Ring programming language version 1.2 book - Part 79 of 84
The Ring programming language version 1.2 book - Part 79 of 84The Ring programming language version 1.2 book - Part 79 of 84
The Ring programming language version 1.2 book - Part 79 of 84Mahmoud Samir Fayed
 
Poniendo Kotlin en producción a palos (Kotlin in production, the hard way)
Poniendo Kotlin en producción a palos (Kotlin in production, the hard way)Poniendo Kotlin en producción a palos (Kotlin in production, the hard way)
Poniendo Kotlin en producción a palos (Kotlin in production, the hard way)Andrés Viedma Peláez
 

Similar a Kotlin 初體驗 (20)

Kotlin初體驗
Kotlin初體驗Kotlin初體驗
Kotlin初體驗
 
Summer of Tech 2017 - Kotlin/Android bootcamp
Summer of Tech 2017 - Kotlin/Android bootcampSummer of Tech 2017 - Kotlin/Android bootcamp
Summer of Tech 2017 - Kotlin/Android bootcamp
 
Android 101 - Building a simple app with Kotlin in 90 minutes
Android 101 - Building a simple app with Kotlin in 90 minutesAndroid 101 - Building a simple app with Kotlin in 90 minutes
Android 101 - Building a simple app with Kotlin in 90 minutes
 
Coding for Android on steroids with Kotlin
Coding for Android on steroids with KotlinCoding for Android on steroids with Kotlin
Coding for Android on steroids with Kotlin
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScript
 
Functional programming with Immutable .JS
Functional programming with Immutable .JSFunctional programming with Immutable .JS
Functional programming with Immutable .JS
 
Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?
 
Herding types with Scala macros
Herding types with Scala macrosHerding types with Scala macros
Herding types with Scala macros
 
2017: Kotlin - now more than ever
2017: Kotlin - now more than ever2017: Kotlin - now more than ever
2017: Kotlin - now more than ever
 
Introduction to Kotlin
Introduction to KotlinIntroduction to Kotlin
Introduction to Kotlin
 
Little Helpers for Android Development with Kotlin
Little Helpers for Android Development with KotlinLittle Helpers for Android Development with Kotlin
Little Helpers for Android Development with Kotlin
 
Kickstart Kotlin
Kickstart KotlinKickstart Kotlin
Kickstart Kotlin
 
Kotlin – the future of android
Kotlin – the future of androidKotlin – the future of android
Kotlin – the future of android
 
GR8Conf 2011: Effective Groovy
GR8Conf 2011: Effective GroovyGR8Conf 2011: Effective Groovy
GR8Conf 2011: Effective Groovy
 
Elixir talk
Elixir talkElixir talk
Elixir talk
 
Latinoware
LatinowareLatinoware
Latinoware
 
Kotlin, smarter development for the jvm
Kotlin, smarter development for the jvmKotlin, smarter development for the jvm
Kotlin, smarter development for the jvm
 
4Developers: Michał Szczepanik- Kotlin - Let’s ketchup it
4Developers: Michał Szczepanik- Kotlin - Let’s ketchup it4Developers: Michał Szczepanik- Kotlin - Let’s ketchup it
4Developers: Michał Szczepanik- Kotlin - Let’s ketchup it
 
The Ring programming language version 1.2 book - Part 79 of 84
The Ring programming language version 1.2 book - Part 79 of 84The Ring programming language version 1.2 book - Part 79 of 84
The Ring programming language version 1.2 book - Part 79 of 84
 
Poniendo Kotlin en producción a palos (Kotlin in production, the hard way)
Poniendo Kotlin en producción a palos (Kotlin in production, the hard way)Poniendo Kotlin en producción a palos (Kotlin in production, the hard way)
Poniendo Kotlin en producción a palos (Kotlin in production, the hard way)
 

Más de 哲偉 楊

Specification unit test by Spek
Specification unit test by SpekSpecification unit test by Spek
Specification unit test by Spek哲偉 楊
 
Code kata 的自我修煉
Code kata 的自我修煉Code kata 的自我修煉
Code kata 的自我修煉哲偉 楊
 
輕輕鬆鬆產生 changelog
輕輕鬆鬆產生 changelog輕輕鬆鬆產生 changelog
輕輕鬆鬆產生 changelog哲偉 楊
 
Speed up add custom marker on google map
Speed up add custom marker on google mapSpeed up add custom marker on google map
Speed up add custom marker on google map哲偉 楊
 
Jenkins for android developer at TWJUG
Jenkins for android developer at TWJUGJenkins for android developer at TWJUG
Jenkins for android developer at TWJUG哲偉 楊
 
自己的 Jenkins 自己來 for Android developer
自己的 Jenkins 自己來  for Android developer自己的 Jenkins 自己來  for Android developer
自己的 Jenkins 自己來 for Android developer哲偉 楊
 
從開發到上線的華麗大冒險
從開發到上線的華麗大冒險從開發到上線的華麗大冒險
從開發到上線的華麗大冒險哲偉 楊
 
Unit test and ui testing with cucumber
Unit test and ui testing with cucumberUnit test and ui testing with cucumber
Unit test and ui testing with cucumber哲偉 楊
 
Hybrid design with bootstrap
Hybrid design with bootstrapHybrid design with bootstrap
Hybrid design with bootstrap哲偉 楊
 

Más de 哲偉 楊 (13)

Specification unit test by Spek
Specification unit test by SpekSpecification unit test by Spek
Specification unit test by Spek
 
Code kata 的自我修煉
Code kata 的自我修煉Code kata 的自我修煉
Code kata 的自我修煉
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
輕輕鬆鬆產生 changelog
輕輕鬆鬆產生 changelog輕輕鬆鬆產生 changelog
輕輕鬆鬆產生 changelog
 
Speed up add custom marker on google map
Speed up add custom marker on google mapSpeed up add custom marker on google map
Speed up add custom marker on google map
 
Spek
SpekSpek
Spek
 
Jenkins for android developer at TWJUG
Jenkins for android developer at TWJUGJenkins for android developer at TWJUG
Jenkins for android developer at TWJUG
 
自己的 Jenkins 自己來 for Android developer
自己的 Jenkins 自己來  for Android developer自己的 Jenkins 自己來  for Android developer
自己的 Jenkins 自己來 for Android developer
 
從開發到上線的華麗大冒險
從開發到上線的華麗大冒險從開發到上線的華麗大冒險
從開發到上線的華麗大冒險
 
Unit test and ui testing with cucumber
Unit test and ui testing with cucumberUnit test and ui testing with cucumber
Unit test and ui testing with cucumber
 
Dog point
Dog pointDog point
Dog point
 
Gson
GsonGson
Gson
 
Hybrid design with bootstrap
Hybrid design with bootstrapHybrid design with bootstrap
Hybrid design with bootstrap
 

Último

(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 

Último (20)

(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 

Kotlin 初體驗