• Stars
    star
    8,233
  • Rank 4,496 (Top 0.09 %)
  • Language
    Swift
  • License
    Apache License 2.0
  • Created almost 8 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Kickstarter for iOS. Bring new ideas to life, anywhere.

Kickstarter for iOS

Circle CI codecov

Welcome to Kickstarter’s open source iOS app! Come on in, take your shoes off, stay a while—explore how Kickstarter’s native squad has built and continues to build the app.

We’ve also open sourced our Android app, and read more about our journey to open source here.

Getting Started

  1. Install Xcode. We currently support XCode 14.3 Swift 5.8.
  2. Clone this repository.

* To provide a mock version that serves up hard-coded data immediately, set KsApi.Secrets.isOSS = true.

Some fun things to explore

If you’re just looking for a quick glance at a few things we’re particularly proud of, look no further:

  • The snapshots directory in each feature folder of Kickstarter-Framework-iOS together holds nearly 600 screenshots of various screens in every language, device and edge-case state that we like to make sure stays true. For example, a backer viewing a project in Japanese here , or a creator looking at their dashboard in German and on an iPad here.

  • We use view models as a lightweight way to isolate side effects and embrace a functional core. We write these as a pure mapping of input signals to output signals, and test them heavily, including tests for localization, accessibility and event tracking.

Testing the project

  • Run all tests from the command line by running make test-all.
  • Run an individual scheme's tests by selecting that scheme in Xcode and hitting CMD+U.

Documentation

While we’re at it, why not share our docs? Check out the native docs we have written so far for more documentation.

Dependencies

We make heavy use of the following projects, and so it can be helpful to be familiar with them:

1st party

  • Circle CI Prelude: Foundation of types and functions we feel are missing from the Swift standard library.

  • Circle CI ReactiveExtensions: A collection of operators we like to add to ReactiveCocoa. Built on top of ReactiveSwift.

3rd party

Notices for 3rd party libraries in this repository are contained in NOTICE.md.

Contributing

We intend for this project to be an educational resource: we are excited to share our wins, mistakes, and methodology of iOS development as we work in the open. Our primary focus is to continue improving the app for our users in line with our roadmap.

The best way to submit feedback and report bugs is to open a GitHub issue. Please be sure to include your operating system, device, version number, and steps to reproduce reported bugs. Keep in mind that all participants will be expected to follow our code of conduct.

Code of Conduct

We aim to share our knowledge and findings as we work daily to improve our product, for our community, in a safe and open space. We work as we live, as kind and considerate human beings who learn and grow from giving and receiving positive, constructive feedback. We reserve the right to delete or ban any behavior violating this base foundation of respect.

Find this interesting?

We do too, and we’re hiring!

License

Copyright 2021 Kickstarter, PBC.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

More Repositories

1

android-oss

Kickstarter for Android. Bring new ideas to life, anywhere.
Kotlin
5,723
star
2

kickstarter-autodesk-3d

Kickstarter Autodesk 3D Printer Evaluation
901
star
3

Kickstarter-Prelude

A collection of useful Swift tools that are used in the Kickstarter apps.
Swift
483
star
4

Kickstarter-ReactiveExtensions

A collection of extensions to the ReactiveSwift framework.
Swift
196
star
5

cfn-flow

A practical workflow for AWS CloudFormation
Ruby
170
star
6

ipcat-ruby

Ruby port of client9/ipcat
Ruby
139
star
7

event-sourcing-rails-todo-app-demo

A demo app to illustrate Kickstarter's Event Sourcing experiment
Ruby
83
star
8

native-docs

Documentation for native application development at Kickstarter.
76
star
9

laptop

A shell script which turns your OS X laptop into an awesome web development machine
Shell
67
star
10

build-ubuntu-ami

Create custom Ubuntu AMIs the hard (secure) way
Ruby
66
star
11

amazon_flex_pay

API for Amazon's Flexible Payments Service
Ruby
50
star
12

kumquat

Kumquat is a Rails Engine for rendering RMarkdown files.
Ruby
43
star
13

fullscreen_slideshow

A generic version of the code that runs Kickstarter's 2013 Year In Review: https://www.kickstarter.com/year/2013
JavaScript
41
star
14

ruby-homograph-detector

🕵️‍♀️🕵️‍♂️ Ruby gem for determining whether a given URL is considered an IDN homograph attack
Ruby
28
star
15

replica_pools

A leader/replica setup with separate replica pools, originally forked from schoefmax/multi_db
Ruby
24
star
16

mail-x_smtpapi

Adds SendGrid X-SMTPAPI header support to Mail
Ruby
22
star
17

telekinesis

⚡ A JRuby Kinesis Client ⚡
Ruby
20
star
18

caption_crunch

Parsers for WebVTT and other subtitle files
Ruby
19
star
19

serverless-approle-manager

A lambda triggered at resource creation by a CloudFormation template that manages approle auth in Vault.
JavaScript
18
star
20

configs

Ruby library for managing YAML config
Ruby
17
star
21

dropwizard-influxdb-reporter

Dropwizard Integrations for InfluxDB.
Java
16
star
22

docker-s3-sync

Docker container to sync SSH authorized keys from S3
Ruby
16
star
23

egads

Extensible Git Archive Deploy Strategy
Ruby
11
star
24

ruby-maybe

A Ruby implementation of the Maybe type
Ruby
10
star
25

TCI-chrome-extension

A new tab Chrome extension that pulls quotes from The Creative Independent
HTML
10
star
26

geokit-geoip

Our GeoKit module for using a local (proprietary) Maxmind GeoIP database
Ruby
8
star
27

cog-consul-oss

HashiCorp Consul KV read/write bundle for Cog.
Ruby
7
star
28

jquery-clipster

JavaScript
7
star
29

ember-documentary

An ambitious documentation generator for ember-cli apps.
JavaScript
6
star
30

ios-ksapi

Moved! Incorporated into https://github.com/kickstarter/ios-oss
Swift
3
star
31

capistrano-hivequeen

Capistrano extensions for interacting with hivequeen
Ruby
2
star
32

hash_deep_reject

Microgem for a ruby Hash#deep_reject method
Ruby
2
star
33

homebrew-repo

Homebrew formulas
Ruby
1
star