November 1, 2016

Homework 5

Your homework this week is to pick an app that you want to build toward over the rest of the quarter. If you can’t think of one, you can instead follow along with me as I work to build some sort of Github client. I also posted a few examples at the end of the slides. Some of these are harder than others. Feel free to come by office hours or email me to set up an appointment to discuss an idea if you think something would work but you aren’t sure. ... Read more

November 1, 2016

Week 5

Recap and Slides Today we talked about designing an app. Here are the slides: Lecture 5: Designing an App One of the questions that came up was how does Mockito do its magic. The specific point was in an example like this one: Random mockRandom = mock(Random.class); int nextInt = 5; when(mockRandom.nextInt()).thenReturn(nextInt); How does Mockito take an int and apply thenReturn() successfully? In other words, say that you break down the above example to the following. ... Read more

October 25, 2016

Homework 4

tl;dr Implement your own RecyclerView to match the images shown below. Pressing the Floating Action Button (FAB) adds an item. Pressing the trashcan deletes the item. Adds and deletes are animated. tl; but will still r As we talked about today, RecyclerView is a class that facilitates displaying lists of items, and it does so efficiently. To accomplish this it enforces the ViewHolder design pattern in order to minimize the number of findViewbyId() calls, as these calls traverse the view hierarchy and can be very expensive. ... Read more

October 19, 2016

Week 4

Recap and Slides Today we talked mostly about ListView, Adapters, and RecyclerView. Plus a bit on Fragments. This felt like the most boring lecture to date to me. Too much stepping through too much code, seemed to be the consensus. Here are the code-heavy slides. Here are the slides: Lecture 4: Advanced UI Links General links: Creating Lists and Cards Mastering Coordinator Layout: A good overview, with gifs, about Coordinator Layout. ... Read more

October 18, 2016

Homework 3

tl;dr Check out the branch failing-tests-1 from the mdr-original project you built for Homework 1. Many tests should fail. Fix both the tests in the android and androidTests configurations. Some rules: DO NOT CHANGE THE TESTS: You should not have to edit any test code to get these to pass. All changes should be made in non-test Java files and in xml files. If you think you found a reason you need to change test code, and you REALLY REALLY REALLY think you’re right, email me and ask. ... Read more

October 18, 2016

Week 3

Recap and Slides This week we talked about Building a UI. Slides: Lecture 3: Building a UI A lot of people were gone for the career fair. Email me or come to office hours if anything is confusing.

October 12, 2016

Homework 2

Homework 2 is to choose an open source Android project and build it locally. I’ve started a discussion board for the course and started a thread where I’d like people to post the projects that they choose. Homework 2 (assigned on 2016-10-11) is to find an open source Android Project, build it locally, and run it on your device/emulator. Some will be easier than others. Some may be really hard. When you’ve chosen and built a project, post it on the Homework 2 thread on the message board. ... Read more

October 12, 2016

Week 2: The Lifecycle

Recap and Slides This week we talked about the Android lifecycle. Here is a link to the slides: Lecture 2: Android Lifecycle I’ve created a repo called cse390-android-playground that I’ll keep updating over the course of the quarter to demonstrate small, bite-sized pieces of code outside of a coherent app context. As the README there indicates, it is organized by branches. This week check out intent-basics and lifecycle-logs and mess around with the code. ... Read more

October 7, 2016

Office Hours Mondays 4-5

Based on the Doodle poll, office hours will be Mondays, 4-5. All the rooms are booked, so for now we’ll just meet in CSE 214. Note that the office hours were formerly in the third floor breakout, but the location has moved.

October 6, 2016

Room Change: GUG 218

To try and better accommodate overloads, we have moved rooms to Guggenheim 218. It has windows and lacks a giant pillar in the middle of the room, so that is a win. My inbox has been relatively quiet, given how finicky Android Studio can be. If you get stuck, let me know.