Skip to content

Easily add a customizable File Selector to your app using this CocoPod plugin for Swift iOS apps

License

Notifications You must be signed in to change notification settings

SequencingDOTcom/RTP-API-CocoaPod-iOS-File-Selector-Swift

Repository files navigation

File Selector CocoPod plugin for adding Sequencing.com's Real-Time Personalization technology to iOS apps coded in Swift

This repo contains the plug-n-play CocoaPods plugin for implementing a customizable File Selector so your app can access files stored securely at Sequencing.com.

This CocoaPods plugin can be used to quickly add a File Selector to your app. By adding this File Selector to your app, you're app user will be able to select a file stored securely in the user's Sequencing.com account. Your app will then be able to use the genetic data in this file to provide the user with Real-Time Personalization.

While the File Selector works out-of-the-box, it is also fully customizable.

A 'Master CocoaPods Plugin' is also available. The Master Plugin contains a customizable, end-to-end solution that quickly adds all necessary code to your app for Sequencing.com's Real-Time Personalization.

Once the Master Plugin is added to your app all you'll need to do is:

  1. add your OAuth2 secret
  2. add one or more App Chain numbers
  3. configure your app based on each app chain's possible responses

To code Real-Time Personalization technology into apps, developers may register for a free account at Sequencing.com. App development with RTP is always free.

Contents

  • Related repos
  • CocoaPods plugin integration
  • Resources
  • Maintainers
  • Contribute

Related repos

Master Plugin is available in the following languages:

File Selector is available in the following languages: File Selector Plugins

File Selector Code

CocoaPods plugin integration

Please follow this guide to install File Selector module in your existed or new project.

Step 1: Install OAuth module and File Selector modules

  • see CocoaPods guides

  • reference to OAuth CocoaPods plugin: OAuth plugin Swift (CocoaPods plugin)

  • File selector module prepared as separate module, but it depends on a Token object from OAuth plugin. File selector can execute request to server for files with token object only. Thus you need 2 modules to be installed and set up: OAuth and File Selector modules

  • create a new project in Xcode

  • create Podfile in your project directory:

     $ pod init
    
  • specify following parameters in Podfile:

     pod 'sequencing-file-selector-api-swift', '~> 2.0.2'
    
  • install the dependency in your project:

     $ pod install
    
  • always open the Xcode workspace instead of the project file:

     $ open *.xcworkspace
    

Step 2: Set up OAuth plugin

Step 3: Register File Selector framework for Swift project

  • first of all you need to create bridging header file. Select File > New > File > Header File > name it as

     project-name-Bridging-Header.h
    
  • add SQOAuthFramework class import in the bridging header file

     #import <FileSelector/SQFileSelectorFramework.h>
    
  • register your bridging header file in the project settings select your project > project target > Build Settings > Objective-C Bridging Header specify path for bridging header file

     $(PROJECT_DIR)/project-name-Bridging-Header.h
    

Step 4: Use File Selector

  • subscribe your UIViewController class to file selector protocol

     SQFileSelectorProtocol
    
  • implement methods from SQFileSelectorProtocol protocol

     func selectedGeneticFile(_ file: NSDictionary) -> Void {
     }
     
     func errorWhileReceivingGeneticFiles(_ error: Error!) {
     }
     
     
     func closeButtonPressed() -> Void {
     }
    
  • call file selector via showFiles(withTokenProvider: showCloseButton: previouslySelectedFileID: delegate:) method

     SQFilesAPI.sharedInstance().showFiles(withTokenProvider: SQOAuth.sharedInstance(),
                                   showCloseButton: <true or false>,
                                   previouslySelectedFileID: "your file id",
                                   delegate: <your VC delegate>)
    

    where

     tokenProvider - provide SQOAuth instance (as SQOAuth.sharedInstance())
     showCloseButton - provide BOOL value to specify if you want to have Close button ability
     selectedFileID - provide file ID if you want to specific file be preselected
     delegate - provide UIViewController class instance that conforms to "SQFileSelectorProtocol" protocol
    
  • when user selects any file and clicks on "Continue" button in File Selector UI - selectedGeneticFile method from SQFileSelectorProtocol protocol will be called then. Selected file will be passed on as a parameter. In this method you can handle this selected file

  • each file is a NSDictionary object with following keys and values format:

    key name type description
    DateAdded String date file was added
    Ext String file extension
    FileCategory String file category: Community, Uploaded, FromApps, Altruist
    FileSubType String file subtype
    FileType String file type
    FriendlyDesc1 String person name for sample files
    FriendlyDesc2 String person description for sample files
    Id String file ID
    Name String file name
    Population String
    Sex String the sex

Resources

Maintainers

This repo is actively maintained by Sequencing.com. Email the Sequencing.com bioinformatics team at [email protected] if you require any more information or just to say hola.

Contribute

We encourage you to passionately fork us. If interested in updating the master branch, please send us a pull request. If the changes contribute positively, we'll let it ride.

About

Easily add a customizable File Selector to your app using this CocoPod plugin for Swift iOS apps

Resources

License

Stars

Watchers

Forks

Packages

No packages published