Giter Site home page Giter Site logo

namiml / nami-apple Goto Github PK

View Code? Open in Web Editor NEW
55.0 7.0 6.0 3.13 GB

Easy Apple subscriptions & in-app purchases, with powerful built-in paywalls and A/B testing.

Home Page: https://www.namiml.com

License: Other

Objective-C 99.46% Ruby 0.39% Swift 0.15%
storekit subscriptions paywall ios swift inapp mobile in-app-purchase xcode ipados

nami-apple's Introduction

Nami SDK logo

Nami SDK Platform Cocoapod Carthage compatible

What is Nami?

Nami is on a mission to help you grow your app business using IAPs and subscriptions. Go beyond basic StoreKit infrastructure and focus on results with:

  • Growing library of smart paywall templates to choose from, implemented natively using UIKit and SwiftUI
  • Paywall CMS so you can make change instantly, without submitting an app update
  • Experimentation engine to run paywall A/B tests so you can improve your conversion rates
  • Built-in IAP & subscription management and analytics, so you don't need another solution

Nami is simple adopt while giving you the tools you need to improve revenue. Our free tier is generous, and gives you everything you need to get started. Sign up for a free account

Get started by heading over to our quick start guide

Getting the Nami Framework

Requirements

  • iOS 14+, iPadOS 14+, tvOS 15+

Using SPM

  1. In the Xcode menu select File > Swift Packages > Add Package Dependency.
  2. Enter the URL https://github.com/namiml/NamiSDK-SwiftPackageManager into the box just below Choose Package Manager, and press the Next button.
  3. Leave the default settings of Up to Next Major and current major version number, press Next button.
  4. After making sure the correct application target is selected, click the Finish button.

Using CocoaPods

Add the following line to your Podfile. See the example in this repo Podfile.example.

pod "Nami", "3.2.0"

Then run the command

pod install

Add Manually

The Nami XCFramework is available via the Swift Package Manager or Cocoapods. You may also add the XCFramework manually to your project.

Note: Updating the Nami Framework Manually

When a new version of the Nami framework is released, just drag it over your old Nami framework in your application project directory - make sure to select "replace" instead of "merge". After the framework has been copied over the old one, make sure to select "Clean Build Folder" in Xcode so it properly refreshes the binary from the framework.

Configure the SDK

In your application delegate, the Nami SDK is configured and passed your unique app ID, You can find the Nami App Platform ID under the Nami Control Center's Integrations > Apple App Store section.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

  // Configure Nami
  let namiConfig = NamiConfiguration(appPlatformID: "YOUR_APP_PLATFORM_ID_GOES_HERE")

  // optionally adjust the level of logging of the SDK
  //    .debug, .info, .warn, .error, defaults to .warn
  namiConfig.logLevel = .info

  Nami.configure(namiConfig: namiConfig)
  return true
}

Other Resources

Release Notes

Documentation

nami-apple's People

Contributors

acantarero avatar burcaw avatar hellonamiml avatar kigi avatar namidan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

nami-apple's Issues

please provide updated documentation

Describe the bug
iOS Documentation does not match actually code APIs needed

To Reproduce
Some Examples of inaccurate iOS docs
First:
https://docs.namiml.com/reference/login

Instead I needed to use Nami.setExternalIdentifier(externalIdentifier: String?, type: Nami.NamiExternalIdentifierType)

Second:
https://docs.namiml.com/reference/isloggedin
Instead I needed to use Nami.getExternalIdentifier() != nil

Third:
https://docs.namiml.com/reference/loggedinid
Instead I needed to use Nami.getExternalIdentifier

Expected behavior
I expected the documentation would match what I would need to implement. Instead, I had to spend some time investigation documentation inaccuracies in order to discover where lived the coded I needed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.