Post on 27-Jan-2021
W CZYM NAPISAĆSTRONĘ INTERNETOWĄ?
Dominik Kossiński
19.04.2020
Popularne technologie
JavaScript
React
Angular
Vue.js
HTML5
CSS
Popularne technologie
JavaScript
React
Angular
Vue.js
HTML5
CSS
Popularne technologie
JavaScript
React
Angular
Vue.js
HTML5
CSS
Popularne technologie
JavaScript
React
Angular
Vue.js
HTML5
CSS
Popularne technologie
JavaScript
React
Angular
Vue.js
HTML5
CSS
Popularne technologie
JavaScript
React
Angular
Vue.js
HTML5
CSS
Popularne technologie
JavaScript
React
Angular
Vue.js
HTML5
CSS
JavaScript
JavaScript
Czy JavaScript to konieczność?
Kotlin
Kotlin
JetBrains
I 2011 - rok powstaniaI 2017 - oficjalnie wspierany przez Google’aI 2019 - uznany jako preferowany język dla aplikacji na Androida
Kotlin
JetBrains
I 2011 - rok powstaniaI 2017 - oficjalnie wspierany przez Google’aI 2019 - uznany jako preferowany język dla aplikacji na Androida
Kotlin
JetBrains
I 2011 - rok powstania
I 2017 - oficjalnie wspierany przez Google’aI 2019 - uznany jako preferowany język dla aplikacji na Androida
Kotlin
JetBrains
I 2011 - rok powstaniaI 2017 - oficjalnie wspierany przez Google’a
I 2019 - uznany jako preferowany język dla aplikacji na Androida
Kotlin
JetBrains
I 2011 - rok powstaniaI 2017 - oficjalnie wspierany przez Google’aI 2019 - uznany jako preferowany język dla aplikacji na Androida
Dlaczego zyskał taką popularność?
Zalety
I Język statycznie typowanyI Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null SafetyI Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
Zalety
I Język statycznie typowany
I Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null SafetyI Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
Zalety
I Język statycznie typowanyI Brak średników i typów prostych
I Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null SafetyI Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
Zalety
I Język statycznie typowanyI Brak średników i typów prostych
class Example {
fun add(a: Int, b:Int): Int {val temp = a + b + 2.0f.toInt()return temp
}}
I Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null SafetyI Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
Zalety
I Język statycznie typowanyI Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’
I Null SafetyI Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
ZaletyI Język statycznie typowanyI Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’
data class Movie(var Title: String,var Year: String,var imdbID: String,var Type: String,var Poster: String
)
val movie = Movie(...)movie.title = "Star Wars"
I Null SafetyI Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
Zalety
I Język statycznie typowanyI Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null Safety
I Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
Zalety
I Język statycznie typowanyI Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null Safety
var nullable_movie: Movie? = null
val title = nullable_movie?.title?: "Star Wars"val title = nullable_movie!!.title
var movie: Movie = Movie(...)
I Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
Zalety
I Język statycznie typowanyI Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null SafetyI Skrypty do budowania w Gradle’u w Kotlinie
I Kompilacja do języków Java i JavaScriptI Kotlin Extensions
Zalety
I Język statycznie typowanyI Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null SafetyI Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScript
I Kotlin Extensions
Zalety
I Język statycznie typowanyI Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null SafetyI Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
Zalety
I Język statycznie typowanyI Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null SafetyI Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
fun Date.toHourAndMinFormat(): String {return SimpleDateFormat("HH:mm").format(this)
}
Date().toHourAndMinFormat()
Zalety
I Język statycznie typowanyI Brak średników i typów prostychI Brak konieczności pisania getter’ów i seter’ów oraz ’new’I Null SafetyI Skrypty do budowania w Gradle’u w KotlinieI Kompilacja do języków Java i JavaScriptI Kotlin Extensions
public static String toHourAndMinFormat(Date date) {return new SimpleDateFormat("HH:mm")
.format(date)}
Wady
I Konieczność doracowania Null SafetyI Lekko zaburzona czytelność koduI Wyjątki Unchecked
I JavaI Kotlin
Wady
I Konieczność doracowania Null Safety
I Lekko zaburzona czytelność koduI Wyjątki Unchecked
I JavaI Kotlin
Wady
I Konieczność doracowania Null Safety
fun nullPointerException(): Int {return null!!
}
I Lekko zaburzona czytelność koduI Wyjątki Unchecked
I JavaI Kotlin
Wady
I Konieczność doracowania Null SafetyI Lekko zaburzona czytelność kodu
I Wyjątki Unchecked
I JavaI Kotlin
Wady
I Konieczność doracowania Null SafetyI Lekko zaburzona czytelność kodu
val which_type = movie.poster
I Wyjątki Unchecked
I JavaI Kotlin
Wady
I Konieczność doracowania Null SafetyI Lekko zaburzona czytelność koduI Wyjątki Unchecked
I Javatry {File myObj = new File("filename.txt");...
} catch (FileNotFoundException e) {e.printStackTrace();
}I KotlinFile("filename.txt").forEachLine { println(it) }
Strona w Kotlinie
I Tylko w Kotlinie (kod + skrypt budujący)I Przy użyciu biblioteki ReactI Skompilowana do JavaScriptu
Strona w Kotlinie
I Tylko w Kotlinie (kod + skrypt budujący)
I Przy użyciu biblioteki ReactI Skompilowana do JavaScriptu
Strona w Kotlinie
I Tylko w Kotlinie (kod + skrypt budujący)I Przy użyciu biblioteki React
I Skompilowana do JavaScriptu
Strona w Kotlinie
I Tylko w Kotlinie (kod + skrypt budujący)I Przy użyciu biblioteki ReactI Skompilowana do JavaScriptu
React: JavaScript vs Kotlin
I Brak konieczności pisania bind
React: JavaScript vs KotlinI Brak konieczności pisania bindclass Foo extends Component {constructor(props) {super(props);this.handleClick =this.handleClick.bind(this);
}
handleClick() {console.log('Click happened');
}render() {return
Click Me
;}
}
React: JavaScript vs Kotlin
I Brak konieczności pisania bind
class Foo : RComponent( {
fun handleClick() {console.log("Click happened");
}
override fun RBuilder.render() {button {attrs.onClickFunction = {handleOnclick()
}}
}}
React: JavaScript vs Kotlin
I Stylowanie
React: JavaScript vs Kotlin
I Stylowanie
const divStyle = {color: 'blue',margin: '16px'};
object Styles: StyleSheet("foo", true) {val divStyle = css {color = Color.bluemargin = 16.px
}}
React: JavaScript vs Kotlin
I Atrybuty
React: JavaScript vs KotlinI Atrybuty
class Foo extends Component {...func() {props.Zgadnij_nazwę_pola
}}
interface MyProps: RProps() {var a: A
}class Foo: Rcomponent(){...fun func() {props.a
}}
React: JavaScript vs Kotlin
I Stan
React: JavaScript vs KotlinI Stan
class Foo extends React.Component {constructor(props) {super(props);this.state = {obj: props.obj}; }...
}
class State: RState {var movie: Movie
}class Foo: Rcomponent(){...fun func() {state.movie
}}
Trochę statystyk
Rysunek: Najbardziej popularne języki programowania wśródankietowanych.
Trochę statystyk
Rysunek: Najbardziej lubiane języki programowania.
Gdzie jeszcze jest Kotlin?
Android
Flutter
Spring
Firebase Function
Jupyter Notebook
Gdzie jeszcze jest Kotlin?
Android
Flutter
Spring
Firebase Function
Jupyter Notebook
Gdzie jeszcze jest Kotlin?
Android
Flutter
Spring
Firebase Function
Jupyter Notebook
Gdzie jeszcze jest Kotlin?
Android
Flutter
Spring
Firebase Function
Jupyter Notebook
Gdzie jeszcze jest Kotlin?
Android
Flutter
Spring
Firebase Function
Jupyter Notebook
Gdzie jeszcze jest Kotlin?
Android
Flutter
Spring
Firebase Function
Jupyter Notebook
DZIĘKUJĘ ZA UWAGĘ
Pytania? Napisz na adresdominik.kossinski@student.put.poznan.pl
Źródła
I https://en.wikipedia.org/wiki/Kotlin_(programming_language)
I https://play.kotlinlang.org/hands-on/Building%20Web%20Applications%20with%20React%20and%20Kotlin%20JS/01_Introduction
I https://reactjs.org/docs/getting-started.html
I https://play.kotlinlang.org/hands-on/overview
I https://insights.stackoverflow.com/survey/2019#most-popular-technologies
https://en.wikipedia.org/wiki/Kotlin_(programming_language)https://en.wikipedia.org/wiki/Kotlin_(programming_language)https://play.kotlinlang.org/hands-on/Building%20Web%20Applications%20with%20React%20and%20Kotlin%20JS/01_Introductionhttps://play.kotlinlang.org/hands-on/Building%20Web%20Applications%20with%20React%20and%20Kotlin%20JS/01_Introductionhttps://play.kotlinlang.org/hands-on/Building%20Web%20Applications%20with%20React%20and%20Kotlin%20JS/01_Introductionhttps://reactjs.org/docs/getting-started.htmlhttps://play.kotlinlang.org/hands-on/overviewhttps://insights.stackoverflow.com/survey/2019##most-popular-technologieshttps://insights.stackoverflow.com/survey/2019##most-popular-technologies