Mobile App Development 2022W Lecture 12

From Soma-notes

Video

Video from the lecture given on February 18, 2022 is now available:

Video is also available through Brightspace (Resources->Zoom Meetings (Recordings, etc.)->Cloud Recordings tab). Note that here you'll also see chat messages.

Notes

Lecture 12
----------

Assignment 2
 - Official due date will be moved to midnight on Feb 28th
 - will be accepted until March 2nd 11:30 AM
 - BUT, if you want your A2 graded before the midterm, you should submit by midnight on February 23rd (roughly), will be grading on the 24th.

(Will adjust brightspace after class.)

Midterm review on March 2nd
Midterm on March 4th
 - in class
 - short answer
 - same format as assignments
   - submit a text file
   - just will be made available at 11:30 and you'll need to submit by 1:30
     - which is long, will try to make it more of an 80 minute test
 - after midterm is graded, there will be randomized interviews
    - you can request an interview
    - in interview, we'll review the marking of your midterm
    - if you think a question deserved more points, schedule an interview

Midterm is based on Assignments 1 & 2
 - so if you understand those well, you should be fine
 - NOTE, getting code to work != understanding the material!
 - test is open book/open note, but you won't have time to look up much stuff
    - should have a good mental model going into class

Note that Tutorial 5 isn't in Assignment 1 or 2
 - but it is worth spending some time on it before the midterm, as
   understanding it will help you understand SwiftUI

Interviews will be scheduled through an excel sign-up sheet on Teams

A1 marks will come out over the break

If you are asked to do an interview, it is mandatory
 - but I won't interview everyone


Note how updates to the text entry field vary from SwiftUI, Storyboard, and Android
 - SwiftUI: mostly implicit through state variables
 - Storyboard: explicit, but directed from the Storyboard through "Send Events"
               and @IBOutlet/@IBAction

 - Android: explicit, directed from Kotlin code
    - look up references to UI widgets
    - add a TextListener class so we can see changes
    - call updateAnalysis when things change

Note that you don't have direct control over screen updates in SwiftUI
 - you don't hand optimize, it does it for you
 - less control, but less code, more checking, and fewer bugs

SwiftUI essentially forces "best practices" architecture in terms of coordinating application state and what's on the screen
 - you can follow similar patterns in Storyboard and Android,
   but you have to be very careful to avoid making mistakes and
   nothing in the dev environment will prevent the mistakes,
   just your debugging