diff --git a/README.md b/README.md index 1accfbcf..ab7c64af 100644 --- a/README.md +++ b/README.md @@ -12,15 +12,76 @@ Quick setup #import "LDClient.h" -3. Instantiate a new LDClient with your mobile API key: +3. Instantiate a new LDClient with your mobile key: LDConfigBuilder *config = [[LDConfigBuilder alloc] init]; - [config withApiKey:@"YOUR_MOBILE_KEY"]; + [config withMobileKey:@"YOUR_MOBILE_KEY"]; [[LDClient sharedInstance] start:config]; + +4. Use a builder pattern to construct a user: + + LDUserBuilder *builder = [[LDUserBuilder alloc] init]; + builder = [builder withKey:@"aa0ceb"]; + + LDUserModel *user = [builder build]; + + [[LDClient sharedInstance] start:config userBuilder:builder]; + +(Be sure to use a mobile key from your environments. Never embed a standard SDK key into a mobile application.) + +Your first feature flag +----------- + +1. Create a new feature flag on your dashboard + +2. In your application code, use the feature’s key to check whether the flag is on for each user: + BOOL showFeature = [[LDClient sharedInstance] boolVariation:@"YOUR_FLAG_KEY" fallback:NO]; + if (showFeature) { + NSLog(@"Showing feature for %@", user.key); + } else { + NSLog(@"Not showing feature for user %@", user.key); + } + +Manage the feature on your dashboard — control who sees the feature without re-deploying your application! Learn more ----------- -Check out our [documentation](http://docs.launchdarkly.com) for in-depth instructions on configuring and using LaunchDarkly. You can also head straight to the [complete reference guide for this SDK](http://docs.launchdarkly.com/v1.0/docs/ios-sdk-reference). \ No newline at end of file +Check out our [documentation](http://docs.launchdarkly.com) for in-depth instructions on configuring and using LaunchDarkly. You can also head straight to the [complete reference guide for this SDK](http://docs.launchdarkly.com/docs/ios-sdk-reference). + +Testing +------- + +We run integration tests for all our SDKs using a centralized test harness. This approach gives us the ability to test for consistency across SDKs, as well as test networking behavior in a long-running application. These tests cover each method in the SDK, and verify that event sending, flag evaluation, stream reconnection, and other aspects of the SDK all behave correctly. + +Contributing +------------ + +See [Contributing](https://github.com/launchdarkly/ios-client/blob/master/CONTRIBUTING.md) + +About LaunchDarkly +----------- + +* LaunchDarkly is a continuous delivery platform that provides feature flags as a service and allows developers to iterate quickly and safely. We allow you to easily flag your features and manage them from the LaunchDarkly dashboard. With LaunchDarkly, you can: + * Roll out a new feature to a subset of your users (like a group of users who opt-in to a beta tester group), gathering feedback and bug reports from real-world use cases. + * Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?). + * Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file. + * Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan). Disable parts of your application to facilitate maintenance, without taking everything offline. +* LaunchDarkly provides feature flag SDKs for + * [Java](http://docs.launchdarkly.com/docs/java-sdk-reference "Java SDK") + * [JavaScript] (http://docs.launchdarkly.com/docs/js-sdk-reference "LaunchDarkly JavaScript SDK") + * [PHP] (http://docs.launchdarkly.com/docs/php-sdk-reference "LaunchDarkly PHP SDK") + * [Python] (http://docs.launchdarkly.com/docs/python-sdk-reference "LaunchDarkly Python SDK") + * [Go] (http://docs.launchdarkly.com/docs/go-sdk-reference "LaunchDarkly Go SDK") + * [Node.JS] (http://docs.launchdarkly.com/docs/node-sdk-reference "LaunchDarkly Node SDK") + * [.NET] (http://docs.launchdarkly.com/docs/dotnet-sdk-reference "LaunchDarkly .Net SDK") + * [Ruby] (http://docs.launchdarkly.com/docs/ruby-sdk-reference "LaunchDarkly Ruby SDK") + * [Python Twisted] (http://docs.launchdarkly.com/docs/python-twisted "LaunchDarkly Python Twisted SDK") + * [iOS] (http://docs.launchdarkly.com/docs/ios-sdk-reference "LaunchDarkly Mobile iOS SDK") +* Explore LaunchDarkly + * [www.launchdarkly.com] (http://www.launchdarkly.com/ "LaunchDarkly Main Website") for more information + * [docs.launchdarkly.com] (http://docs.launchdarkly.com/ "LaunchDarkly Documentation") for our documentation and SDKs + * [apidocs.launchdarkly.com] (http://apidocs.launchdarkly.com/ "LaunchDarkly API Documentation") for our API documentation + * [blog.launchdarkly.com] (http://blog.launchdarkly.com/ "LaunchDarkly Blog Documentation") for the latest product updates