screenshotbot-oss VS paparazzi

Compare screenshotbot-oss vs paparazzi and see what are their differences.

paparazzi

Render your Android screens without a physical device or emulator (by cashapp)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
screenshotbot-oss paparazzi
19 12
185 2,168
1.6% 0.9%
9.9 9.5
3 days ago 5 days ago
Common Lisp Kotlin
Mozilla Public License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

screenshotbot-oss

Posts with mentions or reviews of screenshotbot-oss. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-12.
  • We need to talk about parentheses
    6 projects | news.ycombinator.com | 12 Feb 2024
    Examples (for Common Lisp, so not citing Emacs): reddit v1, Google's ITA Software that powers airfare search engines (Kayak, Orbitz…), Postgres' pgloader (http://pgloader.io/), which was re-written from Python to Common Lisp, Opus Modus for music composition, the Maxima CAS, PTC 3D designer CAD software (used by big brands worldwide), Grammarly, Mirai, the 3D editor that designed Gollum's face, the ScoreCloud app that lets you whistle or play an instrument and get the music score,

    but also the ACL2 theorem prover, used in the industry since the 90s, NASA's PVS provers and SPIKE scheduler used for Hubble and JWT, many companies in Quantum Computing, companies like SISCOG, who plans the transportation systems of european metropolis' underground since the 80s, Ravenpack who's into big-data analysis for financial services (they might be hiring), Keepit (https://www.keepit.com/), Pocket Change (Japan, https://www.pocket-change.jp/en/), the new Feetr in trading (https://feetr.io/, you can search HN), Airbus, Alstom, Planisware (https://planisware.com),

    or also the open-source screenshotbot (https://screenshotbot.io), the Kandria game (https://kandria.com/),

    and the companies in https://github.com/azzamsa/awesome-lisp-companies and on LispWorks and Allegro's Success Stories.

    https://github.com/tamurashingo/reddit1.0/

    http://opusmodus.com/

    https://www.ptc.com/en/products/cad/3d-design

    http://www.izware.com/mirai

    https://apps.apple.com/us/app/scorecloud-express/id566535238

  • Common Lisp Implementations in 2023
    10 projects | news.ycombinator.com | 23 Feb 2023
    This LispWorks comment on reddit is very interesting:

    ---

    [cite]

    As a Lispworks user, yes it is super pricey, but it does make sense for certain people. Arguably, Lispworks provides features that aren't available in any other programming language, Lisp or not.

    * Support for just about every platform I can imagine. Yes it's expensive, but if I want to port to a new platform I can pay Lispworks, and get it over with. It'll mostly work without too much changes. It works on Android, iOS, Windows, Linux, Mac, and some really obscure systems.

    * Application delivery with tree shaking. May be there are other languages that do this, but I haven't worked with something like this before in my career. (Maybe proguard for Java, but that's very rudimentary compared to LW's delivery). The tool I work on delivers a binary that people need to download during the CI jobs for every run, so having it be 100MB is way too big. After compression, my LW delivered binaries come to around 9MB.

    * You mention support being expensive. Actually, for simple support questions LW does a pretty good job of responding back to you. I've asked tonnes of questions over the years, and have not paid for a separate support contract apart from the yearly maintenance contract. I suspect they like people asking questions, because then they fix those bugs and it becomes even more rock solid.

    * The documentation is glorious. And in the off-chance that I need to know something that's not documented, I just mail them and they'll respond usually by the next working day.

    * Very stable Java support (although the API could be better), let's me use the entire Java ecosystem of libraries when I need it.

    * The platform itself is rock-solid. Now SBCL is fantastic, but when I ran my servers on SBCL, I would have a crash every now and then. With LW, I can have my server running weeks (current uptime is a month) with reloading code multiple times a day, and everything is still super stable.

    There's more, but I think the rest is more negotiable. For instance, the FLI is a lot more polished than using CFFI, which makes a huge difference in productivity when writing native code. Or the fact that its remote-debugger facility can be used as a very stable protocol to programmatically control a remote LW process. I don't use the IDE btw, so I'm not even considering that. I don't use CAPI either, but I mean to someday.

    2023, Arnold @tdrhq of Screenshotbot (https://github.com/screenshotbot/screenshotbot-oss) on reddit: https://www.reddit.com/r/Common_Lisp/comments/11979q4/common...

    [/cite]

  • Paparazzi 1.2 is out
    3 projects | /r/androiddev | 18 Jan 2023
    You can avoid having to do the step of recording screenshots if you use a tool like Screenshotbot (https://github.com/screenshotbot/screenshotbot-oss) or Vizzy (https://github.com/workday/vizzy)
  • I want to pursue this web app project - advice using CL?
    10 projects | /r/Common_Lisp | 4 Jan 2023
    Oh yeah, github.com/screenshotbot/screenshotbot-oss :)
  • How to do screenshot tests on android
    3 projects | /r/androiddev | 2 Dec 2022
    There are open source tools to achieve this workflow. I've personally built screenshotbot (https://screenshotbot.io / https://github.com/screenshotbot/screenshotbot-oss), I've also built the screenshot testing infrastructure at Facebook. Workday has open-sourced their own tool at https://github.com/workday/vizzy. AirBnb uses another commercial tool called Happo (https://happo.io). Use any of these services with Paparazzi.
  • Why go with Paparazzi? Our journey with Android Screenshot Testing
    2 projects | /r/androiddev | 23 Nov 2022
    There are a few open source tools to do this: there's a tool I built: https://github.com/screenshotbot/screenshotbot-oss similar to the infrastructure at Facebook, and there's another one built at Workday: https://github.com/workday/vizzy. These are screenshot-library agnostic services to notify you on Pull Requests when screenshots change.
  • How Screenshot Tests Elevate our Android Testing Strategy — Inside GetYourGuide
    1 project | /r/androiddev | 21 Oct 2022
    Screenshotbot is completely open-source by the way: https://github.com/screenshotbot/screenshotbot-oss
  • Building a Startup on Clojure
    11 projects | news.ycombinator.com | 4 Oct 2022
  • Fun with Macros: Do-File
    1 project | /r/Common_Lisp | 26 Aug 2022
    So, I'm in the process of defining something I'm calling an easy-macro. (You can see the code here, but I'm going to extract this into a quicklisp library once I'm happy with it: https://github.com/screenshotbot/screenshotbot-oss/blob/main/src/util/macros.lisp)
  • Help with automated website testing, please
    5 projects | /r/Common_Lisp | 16 Jun 2022
    I'm the author Screenshotbot (https://github.com/screenshotbot/screenshotbot-oss) , and I think this is exactly what you need. Although the README claims to not support browsers, it does actually support browsers, both in the open source and non open source version. I just need to update the docs.

paparazzi

Posts with mentions or reviews of paparazzi. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-26.
  • paparazzi 1.3.0 released
    1 project | /r/androiddev | 31 May 2023
  • Building Reddit’s design system for Android with Jetpack Compose
    1 project | /r/RedditEng | 22 May 2023
    Component API tests are written for all components in the library. These are Paparazzi snapshot tests that are parameterized to cover all the combinations of values for the properties in the API of a given component. Additionally, they include as parameters: color theme, layout direction, and optionally other properties that may be relevant to the component under test (e.g., font scale).
  • Compose & Paparazzi: Automatically find @Preview composables at runtime
    2 projects | /r/androiddev | 26 Mar 2023
    Looks really nice. Sadly, I wasn't able to test it because it doesn't support application module
  • Paparazzi 1.2 is out
    3 projects | /r/androiddev | 18 Jan 2023
  • How do you guys test the UI of your app?
    1 project | /r/androiddev | 7 Jan 2023
    Curious what you mean by hilt refuses to work and what you have tried? Usually though if I'm testing the UI of the app, I might use paparazzi for screenshot tests because it doesn't have to run the test on device. Then for a UI integration test for navigation and user flows, use espresso and replace the network data sources with mocks which in your case would be with hilt android test rule and test install in annotation .
  • Improving snapshot tests with Paparazzi
    3 projects | dev.to | 31 Jul 2022
    /** * Finds all files in the components module which have Compose previews * and generates Paparazzi screenshot tests for them. * * The generated tests can then be used to record screenshots with * ./gradlew components:recordPaparazziInternalDebug * * To verify that the current implementation matches the recorded screenshots * ./gradlew components:verifyPaparazziInternalDebug */ fun main() { val path = System.getProperty("user.dir") ?: error("Can't get user dir") // Paparazzi does not currently work in the app module: https://github.com/cashapp/paparazzi/issues/107 // For now this is hardcoded to only check files in the components module. // If we pull our compose files out of the app module to a separate module this code has to be updated. File(path).walk().filter { it.path.contains("/components/src/main/java") && it.extension == "kt" }.forEach { if (it.readText().contains("@Preview")) { processFileWithPreviews(it) } } } /** * Reads the given file, finds the names of all the functions annotated with @Preview * and uses them to generate a Paparazzi test file with one test for each preview. */ private fun processFileWithPreviews(file: File) { val lines = file.readLines() val previewNames = mutableListOf() var saveNextFunctionName = false var packageName = "" lines.forEachIndexed { i, line -> if (i == 0) { packageName = line.split(" ").last() } if (line.contains("@Preview")) { saveNextFunctionName = true } if (saveNextFunctionName && line.startsWith("fun ")) { previewNames += line.split(" ")[1].removeSuffix("()") saveNextFunctionName = false } } val pathString = file.path.replace("src/main", "src/test").split("java").first() + "java" val testFilePath = pathString.toPath() generatePaparazziTest(packageName, file.nameWithoutExtension + "PaparazziTest", testFilePath, previewNames) } fun generatePaparazziTest(packageName: String, fileName: String, path: Path, previewNames: List) { val classBuilder = TypeSpec.classBuilder(fileName) .superclass(PaparazziTest::class) .addAnnotation( AnnotationSpec.builder(Suppress::class) // KotlinPoet does not let us remove redundant public modifiers or Unit return types for the functions, // but we don't mind for generated code as long as the tests work .addMember("\"RedundantVisibilityModifier\", \"RedundantUnitReturnType\"") .build() ) previewNames.forEach { classBuilder.addFunction( FunSpec.builder(it.removeSuffix("Preview").usLocaleDecapitalize()) .addStatement("paparazziRule.snapshot { $it() }") .addAnnotation(Test::class) .build() ) } val testFile = FileSpec.builder(packageName, fileName) .addType(classBuilder.build()) .addFileComment("AUTO-GENERATED FILE by generate_paparazzi_tests.kt\nDO NOT MODIFY") .build() val nioPath = path.toNioPath() testFile.writeTo(nioPath) }
  • Do you do test-based capture & publish for QA? (Espresso, JUnit,..)
    3 projects | /r/androiddev | 9 Jul 2022
  • Paparazzi 1.0 is out
    1 project | /r/androiddev | 3 Jun 2022
  • Mockito and non-debuggable testBuildTypes
    2 projects | /r/androiddev | 2 Jun 2022
    The good thing is, Square got us covered once more, in regards to the flaky emulators, by providing a screenshot-testing library that does not require an emulator: https://cashapp.github.io/paparazzi/
  • Most Efficient Way of Testing Layouts on Various Aspect Ratios/Pixel Densities/Viewport/Resolutions
    1 project | /r/androiddev | 18 May 2022

What are some alternatives?

When comparing screenshotbot-oss and paparazzi you can also consider the following projects:

cl-webdriver-client - cl-webdriver-client is a client library for WebDriver (W3C specification).

ardupilot - ArduPlane, ArduCopter, ArduRover, ArduSub source

qvm - The high-performance and featureful Quil simulator.

PX4-Autopilot - PX4 Autopilot Software

quilc - The optimizing Quil compiler.

Shot - Screenshot testing library for Android

weblog - a weblog

Mockito - Most popular Mocking framework for unit tests written in Java

etaoin - Pure Clojure Webdriver protocol implementation

dropshots - Easy on-device screenshot testing for Android.

ergolib - A library designed to make programming in Common Lisp easier

ESP32 - DroneBridge for ESP32. A transparent short range wifi based telemetry (serial to WiFi) link. Support for MAVLink, MSP, LTM (iNAV) or any other protocol