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 […]
Parametric Puzzle
Check out these these parametric equations: $$\begin{array}{rll}x &=& \cos v \cdot \cos u \\y &=& \sin v \\z &=& \cos v \cdot \sin u\end{array}$$ Do you know what they do? They are most assuredly not magic. Here, let’s rename the variables, and you can try again: $$\begin{array}{rll}x &=& \cos \textit{latitude} \cdot \cos \textit{longitude} \\y &=& […]
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, […]
Intervals in Deltaphone
For a few years now, schools and industry have been telling kids that they can code. They say the jobs are plentiful, and the salary is enviable—the workforce is waiting. The nobler agents of educational reform will also tell our kids that programming is a creative exercise that will make them better thinkers in other […]
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 […]
Funeral of Trite Ideas
The art teacher at my son’s elementary school once held a special ceremony called the Funeral of Trite Ideas. My son and his classmates said goodbye to some friends that they had known for years in their drawings: stick figures, flat outlines of cars, suns with smiling faces. I am considering holding my own Funeral […]
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 […]