Dear All, Welcome to the CS65/165 mailing list. Your email address on this list comes from the Registrar's records; let me know if you'd rather have me use a different email address. You will be receiving emails with pointers to class notes and announcements after each class. When in doubt whether you missed any emails, look in the course directory, http://www.cs.dartmouth.edu/~sergey/cs65/ Mailings to the class list will be in mails/ . In class, we started discussing some basic features of the Android ecosystem: XML for layout and manifests, Java for classes and callbacks, the Gradle build system, and the up-and-coming Java alternative, the Kotlin language. The best way to get used to this complex system is by looking at examples and tweaking them, which we will do on Friday. NOTE: The next lecture will be on Friday! I will be away on Wednesday for a medical emergency. Between now and Friday, please install Android Studio, and work through a few simple examples (see below). If you already have experience with Android Studio, consider doing the same examples in Kotlin, and see how much nicer the code becomes. Android Studio will also offer you stylistic suggestions on how to make the code shorter (look to the light bulb icons appearing to the left of code as you place your cursor on a line). Suggested transformations can be done automatically, and you can always undo them. 1. Download and install Android Studio 3.0 (Beta): https://developer.android.com/studio/preview/index.html 2. Walk through the steps of creating a "Hello World" application. All three textbooks start with explanations of the Studio, the creation of emulators, and code examples. You can also look at these notes from a past class: http://www.cs.dartmouth.edu/~campbell/cs65/lecture01/lecture01.html Note: I suggest creating a new Android Studio project for code examples rather than trying to import projects as a whole. Older projects may cause Gradle to download tons of SDK software that you don't really need, to accommodate an older API level that you will not be using. Instead, create a new project (which gives you an up-to-date Gradle configuration), and edit AndroidManifest.xml, res/layout_main.xml, java/../ActivityMain.java, and others as necessary. 3. We will be using Piazza. Sign up at http://piazza.com/dartmouth/fall2017/cs65165 We may also use Slack for class discussions. Look out for further announcements. 4. Skim https://developer.android.com/reference/android/app/Activity.html We will discuss it in depth on Friday. Read more carefully if you attempt (5). Note: Android manuals may be terse. Textbook examples tend to be more readable, at least when you are new to Android. Add Log.d() logging to each callback of the activity lifecycle to Hello World, and observe what happens when you flip the phone, press the Android's bottom bar "back" button, press the "home" button, etc. 5. Optional: write an application that starts with an Activity with a Button, opens another Activity with a TextEdit, which then returns the edited text to the first Activity for display. We will pick through such an app on Friday. Details here: http://www.cs.dartmouth.edu/~sergey/cs65/optional1.txt 6. Optional, if you already know Android Studio: get started with Kotlin, https://developer.android.com/kotlin/get-started.html Today we saw some diagrams of Android classes from http://landenlabs.com/android/classtree/classtree.html (http://landenlabs.com/android/classtree/wid21-view-dot.png) Android manuals for various classes can be found in https://developer.android.com/reference/classes.html).