UNPKG

react-native-payments-addon-braintree

Version:

React Native Payments add-on for processing payments with Braintree.

64 lines (44 loc) 2.88 kB
# Braintree-iOS Development Notes This document outlines development practices that we follow internally while developing this SDK. ## Development Merchant Server The included demo app utilizes a test merchant server hosted on heroku ([https://braintree-sample-merchant.herokuapp.com](https://braintree-sample-merchant.herokuapp.com)). It produces client tokens that point to Braintree's Sandbox Environment. ## Tests There are a number of test targets for each section of the project. You can run all tests on the command line with `bundle && rake spec:all`. It's a good idea to run `rake`, which runs all unit tests, before committing. The integration tests require a full Braintree stack running on localhost. ## Architecture See [Frameworks](Docs/Frameworks.md) for an overview of the components that comprise this SDK. ## Environmental Assumptions * See [Requirements](https://developers.braintreepayments.com/guides/client-sdk/setup/ios/v4#requirements) * iPhone and iPad of all sizes and resolutions and the Simulator * CocoaPods * `BT` namespace is reserved for Braintree * Host app does not integrate the [PayPal iOS SDK](https://github.com/paypal/paypal-ios-sdk) * Host app does not integrate with the Kount SDK * Host app does not integrate with [card.io](https://www.card.io/) * Host app has a secure, authenticated server with a [Braintree server-side integration](https://developers.braintreepayments.com/ios/start/hello-server) ## Committing * Commits should be small but atomic. Tests should always be passing; the product should always function appropriately. * Commit messages should be concise and descriptive. * Commit messages may reference the trello board by ID or URL. (Sorry, these are not externally viewable.) ## Deployment and Code Organization * Code on master is assumed to be in a relatively good state at all times * Tests should be passing, all demo apps should run * Functionality and user experience should be cohesive * Dead code should be kept to a minimum * Versioned deployments are tagged with their version numbers * Version numbers conform to [SEMVER](http://semver.org) * These versions are more heavily tested * We will provide support for these versions and commit to maintaining backwards compatibility on our servers * Pull requests are welcome * Feel free to create an issue on GitHub before investing development time * As needed, the Braintree team may develop features privately * If our internal and public branches get out of sync, we will reconcile this with merges (as opposed to rebasing) * In general, we will try to develop in the open as much as possible ## Releasing The release process is self-documented in a number of rake tasks. To release a new version of the SDK publicly, invoke an incantation that looks like this: ```sh rake release && rake publish && rake distribute ```