Appearance
Glossary
The words this site uses, in alphabetical order, with the page that owns each.
| Term | Meaning | Owner page |
|---|---|---|
| action | A 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 process | The 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 |
| cursor | A feed's saved position, the input for its next page (feed.checkpoint in code). | Lists |
| defect | A 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 |
| edge | An action that opens another screen and returns its handle. | Work with screens |
| Effect | The 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 check | A 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 |
| handle | Your program's hold on one open screen: its data, its raw answers and its actions. | Work with screens |
| launch | Starting 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 |
main | Your program: a function from the first screen to an Effect, passed to an entry. | Ways to start the app |
otherwise | The branches that describe, once, what your program does about each challenge screen. Every entry applies them. | Challenges: answer them once |
| resume | Continuing a checkpointed process on the checkpoint's own screen (resumeSilently, resumeFromBackground, resumeByReentering). | Ways to start the app |
| screen | What a person sees in the app, with the actions they can take there. | Screens |
| screen in focus | The screen on top. Only it can act; acting on a covered screen is a defect. | Work with screens |
seed | A string that names the virtual phone: the same string, the same phone. | How the Simulator works |
| session | The account's signed-in state on a phone (its authorization and cookies). Kept by storing a checkpoint. | Keep a session |
| snapshot | The 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 requests | The requests the app keeps sending after the first screen is shown. The Simulator waits for them before it closes. | The app process |
| swipeable feed | A list where one item is in front and a swipe brings the next: the home feed, the Reels viewer. | Work with screens |
| typed error | An 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 phone | The simulated Android device an account runs on. | How the Simulator works |
Names that look alike
PostOpenedFromLinkScreenis the post screen that a feed post opens (item.open()), not a screen reached from a link.openSearchTab()opensExploreScreen: the bottom bar's search tab, which the app calls Explore.- The first screen of a launch has several names:
AndroidAppLaunchFirstScreenis every screen a launch of a stored value can handmain(the feed, or the login screen),StoredSessionFirstScreenis the feed a stored session starts on,CheckpointFirstScreenis the first screen a given checkpoint's type leads to, andAppFirstScreenis the feed a login or a registration leaves on top. Prefer naming the screen you expect withscreen:. LoginHomepageScreenandAndroidAppLaunchLoginScreenare the same login screen.ChallengeStepNotModelledErroris 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
datacarries 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).