Slide 1

Slide 1 text

September 15, 2014 Contents 1 First things first: what is Clojure? 2 2 Clojure Syntax 4 3 Dynamic Develoment 4 4 Functional Programming 4 5 Example 4 6 Example Cont. 5 7 Example Cont. 5 1

Slide 2

Slide 2 text

8 Example Cont. 5 9 Hosted on the JVM 5 10 Macros in Clojure 6 11 Clj-webdriver 6 12 calabash-clj 6 13 appium-clj 7 14 Demo 8 15 Any Questions? 9 1 First things first: what is Clojure? • Invented in 2007 by 2

Slide 3

Slide 3 text

Rich Hickey • Dynamic, functional programming language • Lisp for JVM 3

Slide 4

Slide 4 text

2 Clojure Syntax 3 Dynamic Develoment 4 Functional Programming • Functions as first-class objects • Feedback loop is fast 5 Example 4

Slide 5

Slide 5 text

6 Example Cont. 7 Example Cont. 8 Example Cont. 9 Hosted on the JVM • Designed to be hosted (JVM, V8, CLR, Python, LLVM, etc) • Great java library consumer • Java invocation syntax is clean and simple Ex.: 5

Slide 6

Slide 6 text

-> (. Classname-symbol method-symbol args*) -> (.instanceMember Classname args*) 10 Macros in Clojure • Macros gives clojure great power. • Difference between functions and macros • Writing control flow macro 11 Clj-webdriver • Clojure API for selenium webdriver • https://github.com/semperos/clj-webdriver • Clojars https://clojars.org/me.kapilreddy/clj-webdriver • Features • Demo link: https://www.youtube.com/watch?v=Zje19PkLbYk&feature= youtu.be 12 calabash-clj • Clojure API for Android • https://github.com/kapilreddy/calabash-clj 6

Slide 7

Slide 7 text

Kapil Reddy [Helpshift] • Demo link: https://www.youtube.com/watch?v=NY6aQh0lf8M&feature= youtu.be 13 appium-clj • Clojure API for appium-java-client • https://github.com/helpshift/appium-clj 7

Slide 8

Slide 8 text

Mayur Jadhav • Demo link: https://www.youtube.com/watch?v=eGcEWKZEZ9c&feature= youtu.be 14 Demo • Demo link: https://www.youtube.com/watch?v=mO-vAMy0Ack&feature= youtu.be 8

Slide 9

Slide 9 text

15 Any Questions? 9