Skip to content

Glossary ​

The words this site uses, in alphabetical order, with the page that owns each.

TermMeaningOwner page
actionA method of a screen handle: what a person can do on that screen (like(), openComments()).Work with screens
app layer (AndroidApp)The Instagram Android app as an Effect Layer, for a program that runs the package's effects itself. One build is one app process.Compose the app layer yourself
app processThe simulated app between its start and its close. One entry call is one app process.The app process
challenge (IgCheckpointError)An interruption Instagram raises: a code to enter, a captcha, a notice to confirm. Instagram, and the error class, call it a "checkpoint"; this site says challenge so it is not confused with a checkpoint of your own session.Challenges
checkpoint (ScreenCheckpoint)The stored form of a running process at one screen: the session plus the screens you have open. A secret.Keep a session
cursorA feed's saved position, the input for its next page (feed.checkpoint in code).Lists
defectA mistake in your own program (an invalid option, acting on a covered screen). It is not a typed error and no program reacts to it.Errors
edgeAn action that opens another screen and returns its handle.Work with screens
EffectThe library the code is written with: a step that can fail in named ways, composed with Effect.gen and yield*.How the Simulator works
entry (install, launch, resume…)One of the calls of AndroidIgpapi that starts an app process and runs your main on it.Ways to start the app
exhaustiveness checkA line at the end of an example that fails to compile when an effect gains an error the example does not answer.A complete session
handleYour program's hold on one open screen: its data, its raw answers and its actions.Work with screens
launchStarting the app again for a stored account, after it was closed (a cold start). Also: what the app sends first. AndroidIgpapi.launch is the entry.The app process
login screen (LoginHomepageScreen)The first screen of a fresh install. The entries type it AndroidAppLaunchLoginScreen; it is the same screen.Login
mainYour program: a function from the first screen to an Effect, passed to an entry.Ways to start the app
otherwiseThe branches that describe, once, what your program does about each challenge screen. Every entry applies them.Challenges: answer them once
resumeContinuing a checkpointed process on the checkpoint's own screen (resumeSilently, resumeFromBackground, resumeByReentering).Ways to start the app
screenWhat a person sees in the app, with the actions they can take there.Screens
screen in focusThe screen on top. Only it can act; acting on a covered screen is a defect.Work with screens
seedA string that names the virtual phone: the same string, the same phone.How the Simulator works
sessionThe account's signed-in state on a phone (its authorization and cookies). Kept by storing a checkpoint.Keep a session
snapshotThe session, the phone and the app profile without the open screens, exported by ExportSnapshot or built by hand. A launch accepts it.Bring an account from another system
the start-up's background requestsThe requests the app keeps sending after the first screen is shown. The Simulator waits for them before it closes.The app process
swipeable feedA list where one item is in front and a swipe brings the next: the home feed, the Reels viewer.Work with screens
typed errorAn error whose tag is its class name and that your program can react to, because Instagram or the state of the world decided it.Errors
virtual phoneThe simulated Android device an account runs on.How the Simulator works

Names that look alike ​

  • PostOpenedFromLinkScreen is the post screen that a feed post opens (item.open()), not a screen reached from a link.
  • openSearchTab() opens ExploreScreen: the bottom bar's search tab, which the app calls Explore.
  • The first screen of a launch has several names: AndroidAppLaunchFirstScreen is every screen a launch of a stored value can hand main (the feed, or the login screen), StoredSessionFirstScreen is the feed a stored session starts on, CheckpointFirstScreen is the first screen a given checkpoint's type leads to, and AppFirstScreen is the feed a login or a registration leaves on top. Prefer naming the screen you expect with screen:.
  • LoginHomepageScreen and AndroidAppLaunchLoginScreen are the same login screen.
  • ChallengeStepNotModelledError is raised when a challenge asks for a step the Simulator cannot answer.
  • A story's share() answers { mediaId, code? }; a post's and a Reel's answer { id, status, mediaIds, code? } (Publishing).
  • A screen's data carries Instagram's own fields where the screen shows them unchanged, so some are in snake_case (thread_title, is_group) and some are camelCase (mediaId).

The pages of this site are the README files of the repository. The API reference is generated from the source.