README.md in snapshot-0.1.0 vs README.md in snapshot-0.2.1.beta1
- old
+ new
@@ -4,20 +4,32 @@
Snapshot - Create hundreds of iOS app screenshots
============
[![Twitter: @KauseFx](https://img.shields.io/badge/contact-@KrauseFx-blue.svg?style=flat)](https://twitter.com/KrauseFx)
-<!-- [![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/KrauseFx/deliver/blob/develop/LICENSE)
-[![Gem](https://img.shields.io/gem/v/deliver.svg?style=flat)](http://rubygems.org/gems/deliver)
-[![Build Status](https://img.shields.io/travis/KrauseFx/deliver/master.svg?style=flat)](https://travis-ci.org/KrauseFx/deliver) -->
+[![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/KrauseFx/snapshot/blob/master/LICENSE)
+[![Gem](https://img.shields.io/gem/v/snapshot.svg?style=flat)](http://rubygems.org/gems/snapshot)
-Taking perfect iOS screenshots is difficult. You usually want them to look the same in **all languages** on **all devices**.
+You have an iPhone app. You support 20 languages. You updated the design. You want to release the update to the App Store.
+*What's missing? *
-This easily results in over **300 screenshots** you have to create.
+**New Screenshots**
-Uploading them is really easy, using [```deliver```](https://github.com/KrauseFx/deliver).
+You want them to look **perfect** and **gorgeous**. They should show the same screens on all devices in all languages.
+You have to manually create 20 (languages) x 4 (devices) x 5 (screenshots) = **400 screenshots**.
+
+It's hard to get everything right!
+
+- New screenshots with every (design) update
+- No loading indicators
+- Same content / screens
+- [Clean Status Bar](#use-a-clean-status-bar)
+- Uploading screenshots ([```deliver```](https://github.com/KrauseFx/deliver) is your friend)
+
+This gem solves all those problems. It will run completely in the background - you can do something else, while your computer takes the screenshots for you.
+
Follow the developer on Twitter: [@KrauseFx](https://twitter.com/KrauseFx)
-------
[Features](#features) •
@@ -39,15 +51,24 @@
- ```Snapshot``` automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots)
## Why?
This gem automatically switches the language and device type and runs the automation script to take all screenshots.
-**Why use ```snapshot``` instead of....**
+### Why should I automate this process?
+- It takes **hours** to take screenshots
+- It is an integration test: You can test for UI elements and other things inside your scripts
+- Be so nice, and provide new screenshots with every App Store update. Your customers deserve it
+- You realise, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script.
+- You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times
+###Why use ```snapshot``` instead of....
+
+I've been using many other solutions out there. Unfortunately none of them were perfect. The biggest issue was random timeouts of ```Instruments``` when starting the script. This problem is solved with ```snapshot```
+
- **UI Automation in Instruments**: Instruments can only run your app on one device in one language. You have to manually switch it.
-- **[ui-screen-shooter](https://github.com/jonathanpenn/ui-screen-shooter)**: This ist the best alternative out there right now. It's based on AppleScript, you can not update it properly and there are quite some hacks in there. ```Snapshot``` uses a very similar technique - just in a clean and maintainable Ruby gem.
-- **[Subliminal](https://github.com/inkling/Subliminal)**: A good approach to write the interaction code in Objective C. Unfortunately it has a lot of open issues with the latest release of Xcode.
+- **[ui-screen-shooter](https://github.com/jonathanpenn/ui-screen-shooter)**: This is the best alternative out there right now. It's based on AppleScript, you can not update it properly and there are quite some hacks in there. ```Snapshot``` uses a very similar technique - just in a clean and maintainable Ruby gem.
+- **[Subliminal](https://github.com/inkling/Subliminal)**: A good approach to write the interaction code in Objective C. Unfortunately it has a lot of open issues with the latest release of Xcode. Also, it requires modifications of your Xcode project and schemes, which might break some other things.
# Installation
Install the gem
@@ -66,26 +87,24 @@
- [Apple's official documentation](https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/UsingtheAutomationInstrument/UsingtheAutomationInstrument.html)
- [UI Automation: An Introduction (cocoamanifest.net)](http://cocoamanifest.net/articles/2011/05/uiautomation-an-introduction.html)
- [Functional Testing UI Automation (mattmccomb.com)](http://www.mattmccomb.com/blog/2013/06/02/ios-functional-testing-with-uiautomation/)
+# Quick Start
+
## Record your first script
-Profile your app (CMD + I), choose ```Automation``` and click the Record button on the bottom of the window.
-This will get you started. Save the generated file with the extension ```js``` into your project root.
+- Profile your app (CMD + I), choose ```Automation``` and click the Record button on the bottom of the window.
+- This will get you started. Save the generated file with the extension ```js``` into your project root.
+- Copy the ```SnapshotHelper.js``` file from the example folder to your project.
+- Add ```#import "SnapshotHelper.js"``` on the top of your newly created JS file.
+- Now you can use ```captureLocalizedScreenshot('0-name')``` to take a snapshot.
-Add ```#import "SnapshotHelper.js"``` on the top of your file.
-
-Now you can use ```captureLocalizedScreenshot('0-name')``` to take a snapshot.
-
You can take a look at the example project to play around with it.
-# Quick Start
+## Start ```snapshot```
-
-The guide will create all the necessary files for you, using the existing app metadata from iTunes Connect.
-
- ```cd [your_project_folder]```
- ```snapshot```
Your screenshots will be stored in ```./screenshots/``` by default.
@@ -146,9 +165,15 @@
### Project Path
By default, ```snapshot``` will look for your project in the current directory. If it is located somewhere else, pass your custom path:
```ruby
project_path "./my_project/Project.xcworkspace"
+```
+
+### HTML Report Path
+After all screenshots were created, a HTML file will be generated, to quickly get an overview of all screens on all devices. You can set a custom export path, to easily integrate the HTML report as ```Jenkins``` test result page.
+```ruby
+html_path "~/Desktop/screens.html"
```
### iOS Version
I'll try to keep the script up to date. If you need to change the iOS version, you can do it like this: