Reading List
These resources are not required, but may be useful.
Originally designed by JetBrains, Kotlin is a general purpose programming language explicitly designed as a drop-in Java replacement. It’s the “official” language for Android development, and includes many modern and useful features for application development.
- Bruce Eckel & Svetlana Isakova. 2020. Atomic Kotlin. Leanpub. https://leanpub.com/AtomicKotlin
- John Guthrie ed. 2021. Exploring Kotlin Functional Programming. Manning Publications. ISBN 978-1617297090.
- Venkat Subramaniam. 2019. Programming Kotlin. Pragmatic Bookshelf. ISBN 978-1680506358.
- Various. Kotlin Documentation & Tutorials: https://kotlinlang.org
- Various. Kotlin Koans. https://play.kotlinlang.org/koans/overview
- Various. KotlinConf2023 Talks. https://www.youtube.com/playlist?list=PLlFc5cFwUnmwcJ7ZXyMmS70A9QFyUu1HI
- Steve Yegge. “Why Kotlin is better than whatever dumb language you’re using”. http://steve-yegge.blogspot.com/2017/05/why-kotlin-is-better-than-whatever-dumb.html
JavaFX is a desktop UI toolkit: a set of libraries that provide graphics capabilities, windowing, event handling, widgets and so on. It was originally targeted at Java, but also works well with Kotlin.
- JavaFX Documentation: Working with the Canvas shows how to draw and work with 2D graphics.
- JavaFX Documentation Project is a community project to expand JFX documentation.
- JavaFX Main Page includes downloads, documentation. Make sure to install the version that matches your JDK version (above).
- Carl Dea et al. 2017. JavaFX 9 by Example. ISBN 978-1484219607. Students can freely download from Springer Link through the UW library.
- Cary Horstman. 2020. Core Java. Unpublished chapter on JavaFX. ISBN 978-0135166307.
The main resource for Android developers is the Android Developer Site, which includes links to download Android Studio, design guides, documentation and sample code. Kotlin and Java can both be used to build Android applications (though we’ll focus on Kotlin).
- Android API Reference is the complete documentation.
- Android Samples covers all aspects of the platform. Look here first for samples.
- How to pinch, zoom and pan in the emulator
- Android SDK: handling multitouch gestures
- Setting up Android Emulator in M1 Mac
Git is standard version control software, commonly used in industry and open source projects.
- GitLab Documentation for our hosted instance.
- Chacon & Straub, Pro Git, 2nd Edition (2014) is the standard reference.
- Learn Version Control with Git
Gradle is a replacement for GNU Make that handles large projects. In particular, it is the default build system for Android projects.
- Gradle home page includes reference information, download links.
- Gradle User Manual is comprehensive and up-to-date.
- Course: Gradle for Android and Java
- Donald A. Norman. 1988, 2002. The Design of Everyday Things. Norman explores the design of everyday things – light switches, doors, telephones, cars, and some computers.
- Jef Raskin. 2000. The Humane Interface: New Directions for Designing Interactive Systems. Jef was the chief designer of the Apple Macintosh and ushered in the current desktop metaphor.
- Dan R. Olsen Jr. 2010. Building Interactive Systems. Course Technology.
- Jeff Johnson. 2013. Designing with the Mind in Mind: Simple Guide to Understanding User Interface Design Guidelines. Morgan Kaufmann.
- Video (15:10) Alan Kay on Sutherland and Englebart
- Video (3:46) Similar to the above but a different setting and with better sound quality.
- Video (6:51) Demo of Sketchpad from MIT
- Video (10:35) Newscast about Sketchpad