GithubHelp home page GithubHelp logo

artsy / eidolon Goto Github PK

View Code? Open in Web Editor NEW
2.7K 131.0 357.0 157.67 MB

The Artsy Auction Kiosk App.

Home Page: http://artsy.github.io/blog/2014/11/13/eidolon-retrospective/

License: MIT License

Swift 98.22% Objective-C 0.53% Ruby 1.24% Shell 0.02%
swift artsy auction-kiosk frp

eidolon's Introduction

Eidolon

โš ๏ธ This project is retired

The Artsy Auction Kiosk App.

Note: Current development is done on the xcode-9 branch using Xcode 9 (available for download on Apple's developer portal). You can see this issue for more details.

Project Status

Featured in Vogue. Physical enclosure made by Visibility.

Meta

  • State: retired Jan 2022
  • Point People: not applicable. See product-mobile-platform Slack channel.
  • CI : CircleCI

This is a core Artsy Mobile OSS project, along with Eigen, Energy, Emission and Emergence.

Don't know what Artsy is? Check this overview, or read our objc.io on team culture.

Want to know more about Eigen? Read the mobile blog posts, or eidolon's specifically.

Downloading the Code

(Note: if you're an Artsy employee, you'll need to follow these directions instead.)

You'll need a few things before we get started. Make sure you have Xcode installed from the App Store or wherever. Then run the following two commands to install Xcode's command line tools and bundler, if you don't have that yet.

[sudo] gem install bundler
xcode-select --install

The following commands will set up Eidolon with the expectation that you don't have API access and will use blanks for API keys.

git clone https://github.com/artsy/eidolon.git
cd eidolon
bundle install
bundle exec fastlane oss

Alrighty! We're ready to go!

Getting Started

Now that we have the code downloaded, we can run the app using Xcode 9. Make sure to open the Kiosk.xcworkspace workspace, and not the Kiosk.xcodeproj project.

Artsy has licensed fonts for use in this app, but due to the terms of that license, they are not available for open source distribution. This has required us to use private pods. The Podfile deals with the differences transparently.

The Artsy API is private, making it difficult for open source developers to run the app. If you don't have access to the private Artsy fonts pod, then Eidolon infers that it should use stubbed data instead of hitting the live API.

Questions

If you have questions about any aspect of this project, please feel free to open an issue. We'd love to hear from you!

Contributing

This project is being developed by Artsy primarily for its use as Artsy's auction kiosk app, and we are not expecting to have significant community contributions back to it. We are developing this project in the open because it is not part of our core IP, and open source is part of our job. However, if you notice something that is wrong or could be improved, don't hesitate to send us a pull request.

License

MIT License. See LICENSE.

eidolon's People

Contributors

acjay avatar admmasters avatar alloy avatar andrewsb avatar ashfurrow avatar aucl avatar dependabot[bot] avatar dkhamsing avatar dylanfareed avatar ergunkocak avatar erikdstock avatar ewg777 avatar jawwad avatar jdhealy avatar joeyaghion avatar jonallured avatar jorystiefel avatar krausefx avatar natecook1000 avatar orta avatar patoroco avatar pedrovereza avatar pietbrauer avatar sarahscott avatar seanoshea avatar segiddins avatar shingt avatar svachmic avatar sweir27 avatar tomassliz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eidolon's Issues

De-ugly the snapshots syntax

It'd be better if we could write snapshots like this: expect(view) == snapshot("full")

I took a stab at this but it won't seem to let me call haveValidSnapshotwhich is a tad confusing.

import Nimble

struct Snapshot {
    let name: String

    init(name: String) {
        self.name = name
    }
}

func snapshot(name: String) -> Snapshot {
    return Snapshot(name: name)
}

func == <Snapshotable: Comparable> (lhs: Expectation<Snapshotable>, rhs: Snapshot) -> Bool {
    lhs.to( haveValidSnapshot(named: rhs.name) )
}

Bootstrapping fails on pod install command

The current bootstrapping does not work because a pod install (with current cocoapods version 0.34.0.rc2) gives a [!] Unable to find the file system source named: 'artsy'.
Any advice on how to workaround this issue or did i miss anything? Commenting out source 'artsy' gives a e.g. [!] Unable to find a specification for 'Artsy+UIColors (= 1.0.0)' depended upon by Podfile.

Thanks in advance

bid keypad does bad math

Not sure where the mistake is happening. I already made some changes to our logic to try to protect ourselves from some things, but somethig else is going wrong. Here is the result of repeatedly hitting the "8" button and loggint what self.bid should become:
screen shot 2014-09-30 at 6 46 38 pm

Set up second_curtain

We should create a new artsy-oss-snapshots s3 bucket for things like this and Artsy+UIFonts./ Colours.

Help button has edge issues

The background colour of the button (black or purple, depending on its state) is slightly visible behind the white border.

screen shot 2014-10-13 at 5 40 58 pm

What happens if you're in the bid flow and the minimum next bid increases?

Say you enter some bid, which is validated against the current minimumNextBidCents, and then you enter the login/signup flow while someone else finalizes a bid, rendering your bid no longer valid (as opposed to a higher maximum bid having already been placed, which results in a "you've been outbid" message). Does any other client handle this? is this a legit concern?

Get Jenkins Setup

Can't use TravisCI with Swift projects. Need to get our Jenkins up to date.

  • master
  • prs
  • dailys

Table style columns can get broken layout

This happens occasionally on ici but is much easier to do on two-x-two-2014

screen shot 2014-10-18 at 11 44 56 am

    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSLayoutConstraint:0x1782967b0 V:[UIImageView:0x1701f8900(56)]>",
    "<NSLayoutConstraint:0x178297020 H:[UIView:0x17819a750(184)]>",
    "<NSLayoutConstraint:0x17829ba30 H:[ARSerifLabel:0x12dd46640'Current bid: \U00a31,750'(304)]>",
    "<NSLayoutConstraint:0x178293f10 H:[Kiosk.ActionButton:0x12dd78d10'BID'(127)]>",
    "<NSLayoutConstraint:0x178485d20 H:[UIView:0x178197010(0)]>",
    "<NSLayoutConstraint:0x17829a6d0 UIImageView:0x1701f8900.width == UIImageView:0x1701f8900.height>",
    "<NSLayoutConstraint:0x17829a130 H:|-(0)-[UIImageView:0x1701f8900]   (Names: '|':UIView:0x178197010 )>",
    "<NSLayoutConstraint:0x17829a450 H:[UIImageView:0x1701f8900]-(28)-[UIView:0x17819a750](LTR)>",
    "<NSLayoutConstraint:0x17829bad0 H:[UIView:0x17819a750]-(33)-[ARSerifLabel:0x12dd46640'Current bid: \U00a31,750'](LTR)>",
    "<NSLayoutConstraint:0x178293a10 H:[ARSerifLabel:0x12dd46640'Current bid: \U00a31,750']-(33)-[ARSerifLabel:0x12dd798a0'1 bid placed'](LTR)>",
    "<NSLayoutConstraint:0x17829a360 ARSerifLabel:0x12dd798a0'1 bid placed'.right == Kiosk.ActionButton:0x12dd78d10'BID'.left - 33>",
    "<NSLayoutConstraint:0x178292f70 Kiosk.ActionButton:0x12dd78d10'BID'.trailing == UIView:0x178197010.trailing>"
)

Networking Overview

This was discussed in an artsy hangout, but I wanted to get it into something actionable, Our NetworkingAPI should:

  • Make it easy to run offline
  • Make it possible to run network requests synchronously
  • Treat stubs as a first class citizen
  • Allow tests to state only networking request X is allowed during this test run
  • Allow iterating through all potential API requests at runtime for API sanity checks
  • Keep track of current requests and don't support dupes

Think this is best done by having the request generation & the networking API client separate. A lot like how we have it in existing apps. Not assigning someone, but they should get ticked off as it happens, definitely better to do it earlier.

Set up Betas

Whilst related to #3 we need to cover getting the enterprise certs set up for internal release, and for the makefile to have a one command deploy.

Also related to #2 in terms of daily.

Adjustment to end of Bid Flow/Registration Flow

A slight adjustment3 (mostly use of animation) at the end of the bid flow/registration flow. Because users were blowing past the screen that both confirms that their bid was placed AND gives them their bidder details I am trying to space these two pieces of information out a bit more.
Current Screen
image

Suggested adjustments
http://cl.ly/image/280Q2G281j3G

Let me know if you have questions, trying to put together an animation so that the transition is more clear.

Bootstrap Error

Problem in the Makefile? Got this error after entering in all the keys.

if [ ! -f ~/.cocoapods/artsy ]; then
/bin/sh: -c: line 1: syntax error: unexpected end of file
make: *** [bootstrap] Error 2

adjust bidding flow

place bid > mobile number > enter email > ...check in the database ... = 1. User does not exist, enter registration flow 2. User does exist send them to login with artsy login details

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.