This repo shows how to build an iOS applications using Buck, RIBs, and Needle. Big thanks to the AirBnB team for their work on BuckSample, without this project, this work wouldn't be possible.
To get started with this project, I'd recommend reviewing the RIBs documentation along with this project's documentation. This project implements both the RIBs and Needle frameworks, along with showing an example of a plugin.
# Install Buck
make install_buck
Note: you may need to install Java 8 before buck
will run for you locally.
Press Cmd + U
to run the unit tests for the TicTacToeApp
target inside Xcode.
Or, from the terminal you can run make test
.
You may run make targets
to see a list of Buck targets available to build/test/etc.
You may run buck query "deps(//App:TicTacToeAppBinary)" --dot > result.dot
to save Graphviz output of the dependency tree starting at the rule //App:TicTacToeAppBinary
. You may then run dot -Tpng result.dot -o result.png
to create a PNG image showing this dependency structure.
To generate the project from the terminal, just run make project
. You can then run in the simulator or press Cmd + U
to run the tests.
You may also use breakpoints, just like normal when using the generated Xcode project.
# generating and opening a Xcode project
make project
# building with Buck CLI
make debug
- Libraries/LoggedInPluginPoint gives an example how Plugin Point may be designed
- AirBnb/BuckSample the foundational work, which this project is built on
- Uber's Plugin Blog Post "Engineering Scalable, Isolated Mobile Features with Plugins at Uber" - Brian Attwell
- Uber/RIBs • A core framework shown in this project
- Uber/Needle • A core framework shown in this project
- https://www.youtube.com/watch?v=8OF7L3SdY5U "Fast reliable Swift builds with Buck" - Robbert van Ginkel
- https://www.youtube.com/watch?v=uvNI_E0ZgZU "Ludicrously Fast Builds with Buck" - Simon Stewart
Buck Build channel https://buckbuild.slack.com.