Mobile App Development 2022W Lecture 16

From Soma-notes
Revision as of 17:55, 16 March 2022 by Soma (talk | contribs) (Created page with "==Video== Video from the lecture given on March 16, 2022 is now available: * [https://homeostasis.scs.carleton.ca/~soma/mad-2022w/lectures/comp1601-2022w-lec16-20220316.m4v video] * [https://homeostasis.scs.carleton.ca/~soma/mad-2022w/lectures/comp1601-2022w-lec16-20220316.cc.vtt auto-generated captions] Video is also available through Brightspace (Resources->Zoom Meetings (Recordings, etc.)->Cloud Recordings tab). Note that here you'll also see chat messages. ==Notes...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Video

Video from the lecture given on March 16, 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 16
----------

In SwiftUI, the location of a view is its center

In Android, the location is its top left corner

Android manifest
 - gives Android key metadata about the app
 - in particular, tells Android OS how to invoke the app

Android intents is a mechanism for sending messages between Android apps
 - built on a special kernel-level inter-process communication mechanism,
   Binder
 - *very* efficient

Every activity in an app specifies the intents it is willing to receive
with an "intent filter"

The standard intent filter on the main activity says that it will listen to launcher apps and allow them to tell it to run its main activity

Another common thing is to have an app launch a web browser
 - here, the web browser listens to the "open a URL" intent
   and other apps can send this intent

 - so when you change the default actions/apps in android,
   you're configuring how intents are sent
    - an app requests "somebody, open this URL"
    - the defaults determine which app gets the open URL intent

Intents are Android-specific, iOS has other mechanisms
 - much more ad-hoc, because iOS sandboxes apps much more
   - much less support for general communication between applications

That's why when you "jailbreak" an iOS device you can do things you can't do otherwise
 - the "jails" are a mechanism to keep apps from talking to each other
 - no jails on Android, just elaborate permissions

Between apps:
 iOS: communication for specific purposes
 Android: general communication, controlled through elaborate permissions
 Windows/MacOS: general communication, minimal permissions