ingenieursaurav / amplify-ios

A declarative library for application development using cloud services.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Amplify for iOS (Preview)

AWS Amplify

AWS Amplify provides a declarative and easy-to-use interface across different categories of cloud operations. AWS Amplify goes well with any JavaScript based frontend workflow, and React Native for mobile developers.

Our default implementation works with Amazon Web Services (AWS), but AWS Amplify is designed to be open and pluggable for any custom backend or service.

Discord

Features/APIs

  • Analytics: Easily collect analytics data for your app. Analytics data includes user sessions and other custom events that you want to track in your app.
  • API: Interact with your AWS AppSync API or make HTTP requests to your API Gateway endpoint with Amplify API. It provides a GraphQL client interface to use with Amplify Tool's model generation and automatic signing process to authenticate your requests.
  • Storage: Provides a simple mechanism for managing user content for your app in guest, protected or private storage buckets.
  • Predictions: Provides a solution for using AI and ML cloud services to enhance your application.

All services and features not listed above are supported via the iOS SDK or if supported by a category can be accessed via the Escape Hatch like below:`

let rekognitionService = Amplify.Predictions.getEscapeHatch(key: .rekognition) as! AWSRekognition
let request = rekognitionService.AWSRekognitionCreateCollectionRequest()
rekognitionService.createCollection(request)

Platform Support

Amplify supports iOS 11 and above and iOS 13 for certain categories such as Predictions. There are currently no plans to support Amplify on WatchOS, tvOS, or MacOS.

License

This library is licensed under the Apache 2.0 License.

Installation

Amplify requires Xcode 11 or higher to build.

CocoaPods

  1. Amplify for iOS is available through CocoaPods. If you have not installed CocoaPods, install CocoaPods by running the command:

     $ gem install cocoapods
     $ pod setup
    

    Depending on your system settings, you may have to use sudo for installing cocoapods as follows:

     $ sudo gem install cocoapods
     $ pod setup
    
  2. In your project directory (the directory where your *.xcodeproj file is), type pod init and open the Podfile that was created. Add the Amplify pod and any plugins you would like to use. Below is an example of what a podfile might look like if you were going to use the Predictions plugin.

     source 'https://github.com/CocoaPods/Specs.git'
     
     platform :ios, '13.0'
     use_frameworks!
     
     target :'YourTarget' do
         pod 'Amplify'
         pod 'AmplifyPlugins'
         pod 'AWSPluginsCore'
         pod 'AWSPredictionsPlugin'
         pod 'CoreMLPredictionsPlugin'
         pod 'AWSMobileClient'
     end
    
  3. Then run the following command:

     $ pod install
    
  4. Open up *.xcworkspace with Xcode and start using Amplify.

    image

    Note: Do NOT use *.xcodeproj. If you open up a project file instead of a workspace, you will receive an error.

Carthage

Support for Carthage coming soon.

Development Pods

You can manually install the library by cloning this repo and creating a Podfile that references your local clone of it like below:

  pod 'Amplify', :path => '~/amplify-ios'
  pod 'AWSPluginsCore', :path => '~/amplify-ios'
  pod 'CoreMLPredictionsPlugin', :path => '~/amplify-ios'
  pod 'AWSPredictionsPlugin', :path => '~/amplify-ios'
  pod 'AmplifyPlugins/AWSAPIPlugin', :path => '~/amplify-ios'

Then, install the dependencies:

pod install

Open your project using ./YOUR-PROJECT-NAME.xcworkspace file. Remember to always use ./YOUR-PROJECT-NAME.xcworkspace to open your Xcode project from now on.

Reporting Bugs/Feature Requests

We welcome you to use the GitHub issue tracker to report bugs or suggest features.

When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:

  • Expected behavior and observed behavior
  • A reproducible test case or series of steps
  • The version of our code being used
  • Any modifications you've made relevant to the bug
  • Anything custom about your environment or deployment

Open Source Contributions

We welcome any and all contributions from the community! Make sure you read through our contribution guide here before submitting any PR's. Thanks! <3

About

A declarative library for application development using cloud services.

License:Apache License 2.0


Languages

Language:Swift 99.0%Language:Ruby 0.9%Language:Shell 0.1%Language:Objective-C 0.1%