Evinced announces first end-to-end mobile (iOS & Android) accessibility solution

Install Evinced SDK for iOS applications

Overview

The Evinced iOS solution consists of 2 parts:

The iOS SDK

It is a simple open source SDK that extracts relevant UI information from the app and sends it securely to the desktop client for analysis. You need to build this with the dev version of your app.

The desktop application

This receives the raw data from the SDK and analyzes the app for accessibility compliance, detects issues and suggests fixes.

Importing the Evinced iOS SDK

Prerequisites

The current version supports the following:

  • Deployment targets on iOS 12.0 and above
  • Cocapods as an import mechanism - other frameworks will be supported later.
  • Native UIKit based iOS apps - Native swift UI based, React native and Hybrid apps will follow soon.

How to integrate

step 1Setup a separate build target for running your application with Evinced.

  • Clone the existing app target under a different name (in order to prevent conflicts, do not use “Evinced” as a target name).

continue

Add -D EVINCEDTEST in "Other Swift Flags" in Build Settings to mark the test target. Use EVINCEDTEST=1 in "Preprocessed Macros" for Objective C apps.

optional

if you want to use QR code pairing with the desktop app, AND your test app does not use the camera, then do this step.

  • Make sure your test target uses a different Info.plist file.
  • Add the "Privacy - Camera Usage Description" key to the test target Info.plist file via Xcode, or directly edit the Info.plist source code by adding the below into the <dict> … </dict> block:
    <key>NSCameraUsageDescription</key>
    
    <string>Allow pairing via QR code</string>
    

step 2Install the Evinced pod.

  • Add the following under your target name in Podfile:
    pod 'EvincedSDKiOS'
    
    Your Podfile then should look like this:
    use_frameworks!
    
    platform :ios, '13.0'
    
    target '<your target name>' do
    
        pod 'EvincedSDKiOS'
    
    end
    
  • Run pod install in your project directory;

step 3Add code to invoke the Evinced SDK within your app.

  • Add the following import statement in AppDelegate.swift. Note - even if your application uses the SceneDelegate UIKit lifecycle, you should still use the AppDelegate class to start Evinced.
    #if EVINCEDTEST
    
        import EvincedSDKiOS
    
    #endif
    
  • For Objective C add the below to AppDelegate.m
    #ifdef EVINCEDTEST
    
        @import EvincedSDKiOS;
    
    #endif
    
  • Start Evinced engine:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

     // Other code if needed...

    #if EVINCEDTEST

        EvincedEngine.start()

    #endif

    return true

}
  • For Objective-C code it should look like:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Other code if needed...

    #ifdef EVINCEDTEST

        [EvincedEngine start];

    #endif

    return YES;

}

step 4Select the test target and build the application.

  • Run pod init in your project directory.
  • Select the test target and build the application (make sure that this target builds for iOS 12 and above).
  • Use shake gesture to open Evinced SDK screen.