W CZYM NAPISAĆ STRONĘ INTERNETOWĄ? · 2020. 5. 8. · funadd(a: Int, b:Int): Int {valtemp = a +...
Transcript of W CZYM NAPISAĆ STRONĘ INTERNETOWĄ? · 2020. 5. 8. · funadd(a: Int, b:Int): Int {valtemp = a +...
-
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 [email protected]
-
Ź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