Skip to content

An example app showing how Buck can be used to build a simple iOS app.

Notifications You must be signed in to change notification settings

Avijit20/BuckSample

 
 

Repository files navigation

BuckSample

This is a sample to show how to use Buck to build an iOS project with mixed languages (Swift & Objective C) at Airbnb.

Build Status

To Install

# Install Buck
make install_buck

Note: you may need to install Java 8 before buck will run for you locally.

Running Tests

Press Cmd + U to run the unit tests for the ExampleApp target inside Xcode.

Or, from the terminal you can run make test.

Viewing Targets

You may run make targets to see a list of Buck targets available to build/test/etc.

Viewing Dependencies

You may run buck query "deps(//App:ExampleAppBinary)" --dot > result.dot to save Graphviz output of the dependency tree starting at the rule //App:ExampleAppBinary. You may then run dot -Tpng result.dot -o result.png to create a PNG image showing this dependency structure.

Generating an Xcode Project

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.

References

  1. https://github.com/airbnb/BuckSample/blob/master/Pods/BUCK gives a few examples on how we build CocoaPods with Buck
  2. https://github.com/airbnb/BuckSample/blob/master/App/BUCK is the main build file which shows how we setup resources/assets and build the final binary/ipa file.
  3. https://www.youtube.com/watch?v=8OF7L3SdY5U "Fast reliable Swift builds with Buck" - Robbert van Ginkel
  4. https://www.youtube.com/watch?v=uvNI_E0ZgZU "Ludicrously Fast Builds with Buck" - Simon Stewart

Buck Build channel https://buckbuild.slack.com.

About

An example app showing how Buck can be used to build a simple iOS app.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 54.0%
  • Swift 30.3%
  • Ruby 9.1%
  • Makefile 3.9%
  • Objective-C 1.6%
  • C++ 0.6%
  • Other 0.5%