Hi,

Background: ScreenGraph.swift is a tiny library [1] to model any app as a
graph [2]. It's primary case is to make UI tests easier to read and write
[3], but has found uses in generating L10n and marketing screenshots. It
uses vanilla swift and GameplayKit.

[1]:
https://github.com/mozilla-mobile/firefox-ios/blob/master/XCUITests/ScreenGraph.swift
[2]:
https://github.com/mozilla-mobile/firefox-ios/blob/master/XCUITests/FxScreenGraph.swift
[3]: e.g.
https://github.com/mozilla-mobile/firefox-ios/blob/master/XCUITests/TopTabsTest.swift

I've started to think about moving `ScreenGraph.swift` to a dynamic
framework, so Carthage (and thence other projects) can use it.

I'm definitely not happy with a bunch of naming decisions around it. Before
breaking it out to a different git repo, I'd like to start a discussion
about it.

If you're not interested in naming, then this might not be for you.

The first, the project name, the necessities
* Should I use an obj-c prefix? MOZ or Moz? Fx or FX?
* Should I use something Graphy? AppScreenGraph on its own doesn't really
do it for me, even though that's what it (kinda) is.
* Should I emphasize the GameplayKit-ness of it: e.g. NPCTester / TestAgent
?

For project names, I'm looking for memorability and descriptiveness. I'm
trying to avoid opaque identifiers that are difficult to tie back to the
actual project.

The second, the data structure that app developers build: what is it?
 * It's a graph of screens around the app. (the edges are actions to get
from one screen to another)…
 * screens aren't always distinct screens: e.g. an open menu would count as
a different node to the screen on which the menu is displayed. I started
thinking in terms of Scenes, but a Scene graph is a distinct data structure.

Thanks for your help.

– James
_______________________________________________
mobile-firefox-dev mailing list
mobile-firefox-dev@mozilla.org
https://mail.mozilla.org/listinfo/mobile-firefox-dev

Reply via email to