├── .bundle
└── config
├── .gitignore
├── .travis.yml
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── README.md
├── _config.yml
├── _data
└── projects.yml
├── _includes
├── footer.html
├── head.html
├── header.html
├── icon-github.html
├── icon-github.svg
├── icon-twitter.html
├── icon-twitter.svg
└── project.html
├── _layouts
├── default.html
├── page.html
└── post.html
├── _sass
├── _base.scss
├── _layout.scss
└── _syntax-highlighting.scss
├── about.md
├── css
├── computer-icon.png
├── computer-icon@2x.png
├── main.scss
├── smartphone-icon.png
├── smartphone-icon@2x.png
├── wrench.png
└── wrench@2x.png
├── feed.xml
├── index.html
└── script
└── cibuild
/.bundle/config:
--------------------------------------------------------------------------------
1 | --- {}
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | _site/
2 | .sass-cache/
3 | .jekyll-metadata
4 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | # https://jekyllrb.com/docs/continuous-integration/
2 | language: ruby
3 | rvm:
4 | - 2.1
5 |
6 | script: ./script/cibuild
7 |
8 | env:
9 | global:
10 | - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
11 |
12 | sudo: false
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem 'jekyll', '~> 3.1', '>= 3.1.3'
4 | gem 'html-proofer', '~> 3.0', '>= 3.0.6'
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | activesupport (4.2.6)
5 | i18n (~> 0.7)
6 | json (~> 1.7, >= 1.7.7)
7 | minitest (~> 5.1)
8 | thread_safe (~> 0.3, >= 0.3.4)
9 | tzinfo (~> 1.1)
10 | addressable (2.4.0)
11 | colorator (0.1)
12 | colored (1.2)
13 | ethon (0.9.0)
14 | ffi (>= 1.3.0)
15 | ffi (1.9.10)
16 | html-proofer (3.0.6)
17 | activesupport (~> 4.2)
18 | addressable (~> 2.3)
19 | colored (~> 1.2)
20 | mercenary (~> 0.3.2)
21 | nokogiri (~> 1.5)
22 | parallel (~> 1.3)
23 | typhoeus (~> 0.7)
24 | yell (~> 2.0)
25 | i18n (0.7.0)
26 | jekyll (3.1.3)
27 | colorator (~> 0.1)
28 | jekyll-sass-converter (~> 1.0)
29 | jekyll-watch (~> 1.1)
30 | kramdown (~> 1.3)
31 | liquid (~> 3.0)
32 | mercenary (~> 0.3.3)
33 | rouge (~> 1.7)
34 | safe_yaml (~> 1.0)
35 | jekyll-sass-converter (1.4.0)
36 | sass (~> 3.4)
37 | jekyll-watch (1.4.0)
38 | listen (~> 3.0, < 3.1)
39 | json (1.8.3)
40 | kramdown (1.11.1)
41 | liquid (3.0.6)
42 | listen (3.0.8)
43 | rb-fsevent (~> 0.9, >= 0.9.4)
44 | rb-inotify (~> 0.9, >= 0.9.7)
45 | mercenary (0.3.6)
46 | mini_portile2 (2.0.0)
47 | minitest (5.9.0)
48 | nokogiri (1.6.7.2)
49 | mini_portile2 (~> 2.0.0.rc2)
50 | parallel (1.8.0)
51 | rb-fsevent (0.9.7)
52 | rb-inotify (0.9.7)
53 | ffi (>= 0.5.0)
54 | rouge (1.10.1)
55 | safe_yaml (1.0.4)
56 | sass (3.4.22)
57 | thread_safe (0.3.5)
58 | typhoeus (0.8.0)
59 | ethon (>= 0.8.0)
60 | tzinfo (1.2.2)
61 | thread_safe (~> 0.1)
62 | yell (2.0.6)
63 |
64 | PLATFORMS
65 | ruby
66 |
67 | DEPENDENCIES
68 | html-proofer (~> 3.0, >= 3.0.6)
69 | jekyll (~> 3.1, >= 3.1.3)
70 |
71 | BUNDLED WITH
72 | 1.12.1
73 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | CC0 1.0 Universal
2 |
3 | Statement of Purpose
4 |
5 | The laws of most jurisdictions throughout the world automatically confer
6 | exclusive Copyright and Related Rights (defined below) upon the creator and
7 | subsequent owner(s) (each and all, an "owner") of an original work of
8 | authorship and/or a database (each, a "Work").
9 |
10 | Certain owners wish to permanently relinquish those rights to a Work for the
11 | purpose of contributing to a commons of creative, cultural and scientific
12 | works ("Commons") that the public can reliably and without fear of later
13 | claims of infringement build upon, modify, incorporate in other works, reuse
14 | and redistribute as freely as possible in any form whatsoever and for any
15 | purposes, including without limitation commercial purposes. These owners may
16 | contribute to the Commons to promote the ideal of a free culture and the
17 | further production of creative, cultural and scientific works, or to gain
18 | reputation or greater distribution for their Work in part through the use and
19 | efforts of others.
20 |
21 | For these and/or other purposes and motivations, and without any expectation
22 | of additional consideration or compensation, the person associating CC0 with a
23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
25 | and publicly distribute the Work under its terms, with knowledge of his or her
26 | Copyright and Related Rights in the Work and the meaning and intended legal
27 | effect of CC0 on those rights.
28 |
29 | 1. Copyright and Related Rights. A Work made available under CC0 may be
30 | protected by copyright and related or neighboring rights ("Copyright and
31 | Related Rights"). Copyright and Related Rights include, but are not limited
32 | to, the following:
33 |
34 | i. the right to reproduce, adapt, distribute, perform, display, communicate,
35 | and translate a Work;
36 |
37 | ii. moral rights retained by the original author(s) and/or performer(s);
38 |
39 | iii. publicity and privacy rights pertaining to a person's image or likeness
40 | depicted in a Work;
41 |
42 | iv. rights protecting against unfair competition in regards to a Work,
43 | subject to the limitations in paragraph 4(a), below;
44 |
45 | v. rights protecting the extraction, dissemination, use and reuse of data in
46 | a Work;
47 |
48 | vi. database rights (such as those arising under Directive 96/9/EC of the
49 | European Parliament and of the Council of 11 March 1996 on the legal
50 | protection of databases, and under any national implementation thereof,
51 | including any amended or successor version of such directive); and
52 |
53 | vii. other similar, equivalent or corresponding rights throughout the world
54 | based on applicable law or treaty, and any national implementations thereof.
55 |
56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of,
57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
59 | and Related Rights and associated claims and causes of action, whether now
60 | known or unknown (including existing as well as future claims and causes of
61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum
62 | duration provided by applicable law or treaty (including future time
63 | extensions), (iii) in any current or future medium and for any number of
64 | copies, and (iv) for any purpose whatsoever, including without limitation
65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
66 | the Waiver for the benefit of each member of the public at large and to the
67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver
68 | shall not be subject to revocation, rescission, cancellation, termination, or
69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work
70 | by the public as contemplated by Affirmer's express Statement of Purpose.
71 |
72 | 3. Public License Fallback. Should any part of the Waiver for any reason be
73 | judged legally invalid or ineffective under applicable law, then the Waiver
74 | shall be preserved to the maximum extent permitted taking into account
75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
76 | is so judged Affirmer hereby grants to each affected person a royalty-free,
77 | non transferable, non sublicensable, non exclusive, irrevocable and
78 | unconditional license to exercise Affirmer's Copyright and Related Rights in
79 | the Work (i) in all territories worldwide, (ii) for the maximum duration
80 | provided by applicable law or treaty (including future time extensions), (iii)
81 | in any current or future medium and for any number of copies, and (iv) for any
82 | purpose whatsoever, including without limitation commercial, advertising or
83 | promotional purposes (the "License"). The License shall be deemed effective as
84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the
85 | License for any reason be judged legally invalid or ineffective under
86 | applicable law, such partial invalidity or ineffectiveness shall not
87 | invalidate the remainder of the License, and in such case Affirmer hereby
88 | affirms that he or she will not (i) exercise any of his or her remaining
89 | Copyright and Related Rights in the Work or (ii) assert any associated claims
90 | and causes of action with respect to the Work, in either case contrary to
91 | Affirmer's express Statement of Purpose.
92 |
93 | 4. Limitations and Disclaimers.
94 |
95 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
96 | surrendered, licensed or otherwise affected by this document.
97 |
98 | b. Affirmer offers the Work as-is and makes no representations or warranties
99 | of any kind concerning the Work, express, implied, statutory or otherwise,
100 | including without limitation warranties of title, merchantability, fitness
101 | for a particular purpose, non infringement, or the absence of latent or
102 | other defects, accuracy, or the present or absence of errors, whether or not
103 | discoverable, all to the greatest extent permissible under applicable law.
104 |
105 | c. Affirmer disclaims responsibility for clearing rights of other persons
106 | that may apply to the Work or any use thereof, including without limitation
107 | any person's Copyright and Related Rights in the Work. Further, Affirmer
108 | disclaims responsibility for obtaining any necessary consents, permissions
109 | or other rights required for any use of the Work.
110 |
111 | d. Affirmer understands and acknowledges that Creative Commons is not a
112 | party to this document and has no duty or obligation with respect to this
113 | CC0 or use of the Work.
114 |
115 | For more information, please see
116 |
117 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # RACurated
2 |
3 | Curated list of ReactiveCocoa projects.
4 |
5 | ## How to contribute
6 |
7 | This list is only relevant if it keeps growing. Please feel free to open a pull
8 | request to suggest an app or a framework using ReactiveCocoa. Although please
9 | note that even if we loved hitting those square-bracket keys thousands of times
10 | a day writting code using ReactiveCocoa in Objective-C, we are trying to
11 | curate a list of projects using the most recent version of the framework.
12 |
13 | 1. Fork the repository
14 | 2. Create a branch
15 | 3. Edit the _data/projects.yml, see below for an example project
16 | 4. Commit and open a pull request against the *gh-pages* branch
17 |
18 | Sample project row:
19 |
20 | ```yaml
21 | - name: Project name
22 | description: Description of the project, mostly what it does
23 | type: tool # possible values are ios, mac, tool and framework
24 | highlights: [Command line] # What's important in this project (MVVM, special pattern...)
25 | rac_version: 4
26 | repo_url: https://github.com/carthage/carthage
27 | ```
28 |
29 | ## License
30 |
31 | Creative Commons. Set [License file](License).
32 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # Welcome to Jekyll!
2 | #
3 | # This config file is meant for settings that affect your whole blog, values
4 | # which you are expected to set up once and rarely need to edit after that.
5 | # For technical reasons, this file is *NOT* reloaded automatically when you use
6 | # 'jekyll serve'. If you change this file, please restart the server process.
7 |
8 | # Site settings
9 | title: Curated list of ReactiveCocoa projects
10 | email: romain.pouclet@gmail.com
11 | description: > # this means to ignore newlines until "baseurl:"
12 | Write an awesome description for your new site here. You can edit this
13 | line in _config.yml. It will appear in your document head meta (for
14 | Google search results) and in your feed.xml site description.
15 | baseurl: "/racurated" # the subpath of your site, e.g. /blog
16 | url: "http://raccommunity.github.io" # the base hostname & protocol for your site
17 | twitter_username: ReactiveCocoa
18 | github_username: ReactiveCocoa
19 |
20 | # Build settings
21 | markdown: kramdown
22 | exclude:
23 | - vendor
--------------------------------------------------------------------------------
/_data/projects.yml:
--------------------------------------------------------------------------------
1 | - name: Kickstarter
2 | description: "Kickstarter for iOS."
3 | highlights: [MVVM]
4 | type: ios
5 | rac_version: 4
6 | repo_url: https://github.com/kickstarter/ios-oss
7 | - name: Ksapi
8 | description: "Models and API services for the Kickstarter iOS app."
9 | type: ios
10 | rac_version: 4
11 | repo_url: https://github.com/kickstarter/ios-ksapi
12 | - name: Kickstarter-ReactiveExtensions
13 | description: A collection of extensions to the Reactive Cocoa framework.
14 | type: ios
15 | rac_version: 4
16 | repo_url: https://github.com/kickstarter/Kickstarter-ReactiveExtensions
17 | - name: Giraffe
18 | description: "iOS client for Giphy written in Swift with ReactiveCocoa."
19 | highlights: [MVVM, Networking, Protocol Extensions]
20 | type: ios
21 | rac_version: 4
22 | repo_url: https://github.com/evgeniyd/Giraffe
23 | - name: SwiftGoal
24 | description: "This project showcases the Model-View-ViewModel (MVVM) architecture with ReactiveCocoa 4, while serving as a digital logbook of FIFA matches."
25 | highlights: [MVVM, Networking]
26 | type: ios
27 | rac_version: 4
28 | repo_url: https://github.com/richeterre/SwiftGoal
29 | - name: Rewatch
30 | description: >
31 | Rewatch is an application that talks to Betaseries, a service to track the TV Shows you've watched and suggest you an episode
32 | to watch again. It uses ReactiveCocoa to talk to the Betaseries API and save content to a CoreData database.
33 | highlights: [Core Data, Networking]
34 | type: ios
35 | rac_version: 4
36 | repo_url: https://github.com/palleas/rewatch
37 | - name: Carthage
38 | description: >
39 | Carthage is a simple, decentralized dependency manager for Cocoa and is a great example of how you can use ReactiveCocoa to
40 | write command line tools with Swift.
41 | type: tool
42 | highlights: [Command line]
43 | rac_version: 4
44 | repo_url: https://github.com/carthage/carthage
45 | - name: Tropos
46 | description: Weather and Forecasts for Humans
47 | type: ios
48 | highlights: []
49 | rac_version: 4
50 | repo_url: https://github.com/thoughtbot/Tropos
51 | - name: Tentacle
52 | description: A Swift framework for the GitHub API
53 | highlights: [3rd party client]
54 | type: framework
55 | platforms: []
56 | rac_version: 4
57 | repo_url: https://github.com/mdiep/Tentacle
58 | - name: Reactor
59 | description: Powering your RAC architecture
60 | highlights: []
61 | type: framework
62 | rac_version: 4
63 | repo_url: https://github.com/MailOnline/Reactor
64 | - name: Bailiff
65 | description: Mac application to create issues in GitLab
66 | highlights: [MVVM]
67 | type: mac
68 | rac_version: 4
69 | repo_url: https://github.com/Palleas/Bailiff
70 | - name: Crystal Clipboard
71 | description: Application for managing copy/paste across devices
72 | type: ios
73 | highlights: [MVVM, Networking, Core Data]
74 | rac_version: 6
75 | repo_url: https://github.com/jzzocc/crystal-clipboard-ios
76 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/_includes/head.html:
--------------------------------------------------------------------------------
1 |