SENG 440: Lecture 9 – RecyclerView
Dear students, On Friday afternoon, I left my office to go pick up my children from school. They went into lockdown right as I arrived. We weren’t sure what to do, so most of us milled about awkwardly for three hours. It didn’t seem like a good idea to congregrate outside the school gates, but […]
SENG 440: Lecture 8 – AsyncTask
Dear students, Today we explore how to fetch JSON data from a web service, which we will eventually show in a list. Our app, which we’ll call Lately, will grab headlines from News API. In this lecture, we’ll be grabbing headlines from the BBC. Helping us today is Android’s AsyncTask. We’ll continue this example in […]
SENG 440: Lecture 7 – Persisting with Files and JSON
Dear students, We’ve now written four little apps together. We’ve used buttons, text labels, text boxes, and lists to form their user interfaces. We’ve used ConstraintLayout to arrange the widgets. We’ve seen how to handle events with lambdas and schedule events with Handler. We’ve seen how to jump from screen to screen or from one […]
SENG 440: Lecture 6 – Explicit Intents
Dear students, Last time we got our apps to invoke other apps indirectly through an Intent. Our requests were implicit; we only described the service we needed performed. The OS then offered us a list of all the apps that could do the job. Today, we look at invoking specific Activitys through explicit Intents. We […]
SENG 440: Lecture 5 – List Activity and Implicit Intents
Dear students, A major theme of mobile development (and the web) is services. Our apps tend not to be monolithic beasts that do everything themselves. Rather, they offload some of their work to other apps that have intentionally exposed as service providers. Today we’ll see Android’s Intent model for invoking services from other apps. We’ll […]
SENG 440: Lecture 4 – Task Scheduling and Activity Lifecycle
Dear students, Last time we saw how activities and layouts get married and make the screens of our apps. Today, we extend our discussion of both of these big ideas as write an app that shows the time in two different places on Earth. We’ll look at ConstraintLayout, updating the user interface without user interaction, […]
SENG 440: Lecture 3 – Activities and Layouts
Dear students, Now that we’ve examined Kotlin as a standalone language, it’s time to write our first Android apps. We will write a few today: one to emit Morse code’s dots and dashes and one to show the time in two different timezones. Before we forget, here’s your TODO list for next time: Work through […]
SENG 440: Lecture 2 – Conditionals, Functions, and Classes
Dear students, Last time we introduced Kotlin as our tool for developing Android apps this semester. This time we continue that discussion but raise the complexity a couple of notches. We’ll look at conditional statements to choose between values and code, functions and classes to manage complexity, and lambdas to pass code around to other […]
SENG 440: Lecture 1 – Mobility and Kotlin
Dear students, Welcome to SENG 440! I’m visiting the University of Canterbury thanks to Erskine Fellowship Program. When I’m not in Christchurch, I live and work in the north central part of the United States in a state called Wisconsin. I’m glad to be here and to be teaching this course in particular. I’ve taught […]
CS 330: Lecture 39 – Exit(0)
Dear students, Today we close out our formal exploration of the stuff of programming languages. This is what we said we’d look into in the syllabus: Recognize and exploit the strengths of three major programming paradigms: imperative, functional, and object-oriented. Reason about the strengths and weaknesses of various type systems. Weigh the costs and benefits […]