Code Monkey home page Code Monkey logo

bridgeappsdk's Introduction

BridgeAppSDK

SDK for creating ResearchKit-based Bridge apps for iOS

bridgeappsdk's People

Contributors

dephillipsmichael avatar ericsiegnw avatar erin-mounts avatar faraz-hussain avatar joshbruhin avatar syoung-smallwisdom avatar zaro0508 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

bridgeappsdk's Issues

Thank You Screen Pulls App Name and is Uneditible

We are incorporating ResearchKit into an existing app, and therefore the Study has a different name than the app. On the Thank You screen at the end of registration, the Bundle Display Name field is used to populate the study name on the screen. We'd like the ability to edit this or simply hide the field for this release.
thank-you

Request: Show Users who try to register with an existing email address a pop-up that it is already in use

Presently, when a user tries to register with a previously registered email address, they continue into the email flow - where they are asked to reset their password.

We are interested in a pop-up message along the following lines:
That email address is attached to an existing user. Would you like to sign in?
Sign-In | Continue

Sign-In takes the user to the Sign In screen
Continue closes the pop-up and allows the user to update their email address etc.

HealthKit Data Share Screen at Login & After Canceled Registration Followed by new registration

We've identified two areas where the HealthKit pre-share screen appears but when the user taps next for the iOS modal to appear they taken to the following screen in the flow.

Login Scenario
When a user forgets their passcode or needs to login they are shown the HealthKit share screen again. When the user clicks next, it skips to the Enter Passcode Screen. If a user cannot update their HealthKit sharing settings, can we remove this step from the Login workflow?

Canceling Registration After Sharing HealthKit Data & Starting Over with a New user
If a user cancels their registration after sharing HealthKit data and then starts over in the process from the beginning - they see the HealthKit Share screen, but skip the iOS modal and go to the registration screen.

For users who are paying attention, this creates an odd user experience.

Long build times up to 30 minutes

When we perform a clean build it takes up to 30 minutes to compile. This seems to be caused by a run script inside the openssl.xcodeproj that runs "build-libssl.sh"

30 minutes is a very long time. Is there a way around this?

On our end we have found some temporary remedies:

  1. Avoid cleaning
  2. Modifying the build-libssl.sh to build only some and not all architectures
  3. Using a precompiled universal framework for openssl

Number 1 is quite fleeting and we often need to clean build our project, thus we must endure another 30 minutes.
Number 2 is something we would like to avoid doing
Number 3 is the best solution we have found so far, but it requires modifying your project settings.

Is there a solution that you are using to avoid this problem?
Can you use a static library version of openssl to avoid calling "build-libssl.sh"

Please consult.

Investigate whether or not rules are broken

"I’ve tried a couple of different rules using the Integer field. Do rules not apply to integers? For example – check out the Health History Survey – question about How many babies you are carrying."

Debug archive Fails

Typically Archive builds are done on Release, but in my use case I must archive on Debug.

While an Archive on Release configuration works, an Archive on Debug does not.

I get this error:

Copying contents of ./libOpenSSLBuilds/Debug-iphoneos/bitcode
cp: ./libOpenSSLBuilds/Debug-iphoneos/bitcode/OpenSSL: No such file or directory
cp: ./libOpenSSLBuilds/Debug-iphoneos/bitcode/libOpenSSL.a: No such file or directory

Steps to reproduce:

  1. Download BridgeAppSDK
  2. open BridgeAppSDKSample project.
  3. Go to edit Scheme->Archive and set Build Configuration to Debug
  4. Product->Archive

Expected:
Archive to be built

Actual:
Archive fails because some files are unavailable for copying.

What is the significance of cognitivememoryspatialspan?

I am trying to follow this guide but I do not understand the significance of cognitivememoryspatialspan

It is mentioned in the part about how to create a schema.
It says the first field needs to be cognitivememoryspatialspan.json.MemoryGameOverallScore
The MemoryGameOverallScore part seems to be used as a KEY for a dictionary object; are we restricted to specific KEY's?. How does cognitivememoryspatialspan come into play (Lets call that the JSON name)? This name doesn't seem to be used anywhere in the BridgeAppSDK or its Sample app (as far as I can tell). Is this a name that we make up? I am uncertain of the intended flow of data from our app to the database.

I am assuming that building a data scheme (https://research.sagebridge.org) is similar to making one in CloudKit. Is my assumption correct or totally off?

Thank you for your time and if you have documentation that answers these questions please direct me to them. If there is a more appropriate place to ask general questions, please let me know.

Navigating away from iOS HealthKit Share throws error

During registration if you land on the HealthKit Share modal managed by IOS and you navigate away because of a notification, when you return the following error - see attached appears

Not Authorized
The operation could't be completed. [com.apple.healthkiterror 5.]
healthkit-error
healthkit-error

AND
the user is returned to the Join /Sign in screen.

Request: Should be able to background the app during HealthKit Data share.

Registration: Verify Email Address - Wrong Email Address Doesn't Appear to Work

Steps to reproduce:
Install app
Go through study consent process
Enter email address & password
Enter passcode
Verify Email Address screen - tap Problems on Activity Sheet
Tap Wrong Email Address?
Brings up Change Email form - enter new email address.
Return to Verify screen - old email address is still showing at the top of the screen.

Note that both emails end up in Bridge. This is a UI caching issue for the frontside.

BRIDGE-1673 Add StringConstraints enhancement for pattern matching

StringConstraints now have two new string fields:

patternErrorMessage = a message to show if the input does not match the regular expression pattern supplied for the constraints. If a pattern is a specified, this should be specified (it's otherwise difficult to give a good error message when a string doesn't match a regular expression);

patternPlaceholder = sample data to show as a prompt to the user so they enter the right data. In some UIs this is in the input control, sometimes it is underneath, e.g. "##########" or "123-456-7890" for a use phone number.

These are available to be incorporated by the iOS SDKs (it's in the Java rest-client). The Researcher UI supports entering these values.

SBBCacheManager Crash: Store URL is nil

Hi there, I am noticing an issue in the latest master. As of this writing I am referring to

BridgeAppSDK SHA - 761d573
BridgeSDK SHA - 408ef393880e26c4188a3a8b637e47455e04bc88

There is an issue at launch time in the class SBBCacheManager.m
The error crashes in the method dispatchSyncToCacheManagerCoreDataQueue:

When I use an exception break point it looks like in SBBCacheManager the method storeURL tries to create a store url based on the appGroupIdentifier.

The value resolves to com.webmd.pregnancy.researchkit but I do not believe we are setting it anywhere on our end. The code tries to make a storeURL using the appGroupIdentifier, but it results in nil.

This means the persistentStoreCoordinator never succeeds.

This issue prevents me from using your SDK. Please Consult.

Below is the stack trace
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSFileManager createDirectoryAtURL:withIntermediateDirectories:attributes:error:]: URL is nil'
*** First throw call stack:
(
0 CoreFoundation 0x000000010983ed85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000108deedeb objc_exception_throw + 48
2 CoreFoundation 0x000000010983ecbd +[NSException raise:format:] + 205
3 Foundation 0x000000010583c138 -[NSFileManager createDirectoryAtURL:withIntermediateDirectories:attributes:error:] + 109
4 BridgeSDK 0x0000000108aca23b -[SBBCacheManager persistentStoreCoordinator] + 219
5 BridgeSDK 0x0000000108acab1a __33-[SBBCacheManager cacheIOContext]_block_invoke + 170
6 libdispatch.dylib 0x000000010b5b83eb _dispatch_client_callout + 8
7 libdispatch.dylib 0x000000010b59cef5 _dispatch_barrier_sync_f_invoke + 393
8 BridgeSDK 0x0000000108ac9e16 -[SBBCacheManager dispatchSyncToCacheManagerCoreDataQueue:] + 102
9 BridgeSDK 0x0000000108acaa43 -[SBBCacheManager cacheIOContext] + 147
10 BridgeSDK 0x0000000108a848fd __97-[SBBActivityManager getScheduledActivitiesForDaysAhead:daysBehind:cachingPolicy:withCompletion:]_block_invoke + 253
11 BridgeSDK 0x0000000108a9bcf0 -[SBBNetworkManager handleHTTPError:task:response:retryObject:] + 240
12 BridgeSDK 0x0000000108abf447 -[SBBBridgeNetworkManager handleHTTPError:task:response:retryObject:] + 775
13 BridgeSDK 0x0000000108a9878a __95-[SBBNetworkManager doDataTask:retryObject:URLString:headers:parameters:background:completion:]_block_invoke.285 + 538
14 WBMDCommonFramework 0x000000010368b3df __77-[NSURLSession(NSURLSessionCategory) _dataTaskWithRequest:completionHandler:]_block_invoke + 255
15 CFNetwork 0x0000000102f4bb49 __75-[__NSURLSessionLocal taskForClass:request:uploadFile:bodyData:completion:]_block_invoke + 19
16 CFNetwork 0x0000000102f5e0f2 __49-[__NSCFLocalSessionTask _task_onqueue_didFinish]_block_invoke + 302
17 Foundation 0x00000001058a3630 NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK + 7
18 Foundation 0x00000001057de805 -[NSBlockOperation main] + 101
19 Foundation 0x00000001057c1725 -[__NSOperationInternal _start:] + 646
20 Foundation 0x00000001057c1336 __NSOQSchedule_f + 194
21 libdispatch.dylib 0x000000010b5b83eb _dispatch_client_callout + 8
22 libdispatch.dylib 0x000000010b59e82c _dispatch_queue_drain + 2215
23 libdispatch.dylib 0x000000010b59dd4d _dispatch_queue_invoke + 601
24 libdispatch.dylib 0x000000010b5a0996 _dispatch_root_queue_drain + 1420
25 libdispatch.dylib 0x000000010b5a0405 _dispatch_worker_thread3 + 111
26 libsystem_pthread.dylib 0x000000010b8f54de _pthread_wqthread + 1129
27 libsystem_pthread.dylib 0x000000010b8f3341 start_wqthread + 13
)
libc++abi.dylib: terminating with uncaught exception of type NSException

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.