iOS version of ODK Collect


(Jorge Ruiz) #3

As the previous reply already stated, there is no iOS version of ODK collect available.

However, you might want to check other options for mobile data collection that are similar (Enketo / KoBoToolbox) and have been mentioned in previous topics about this subject:

ODK Collect Port on iOS


(KAH) #4

Thank a lot for your answer.


(KAH) #5

Thank you very much for your answer.


(Yaw Anokwa) #6

@khantaung I'm always curious as to why you would need an iOS version. I ask because it's not the typical phone we see deployed in the field. But maybe you aren't using ODK in the field...


(KAH) #7

Dear Yaw Anokwa,
This question is interested myself but it is not problem. Sometime, we will collect data (e.g- Received price or amount) on pay slip program. So , Collector or team member can not use their IPhone. We are not effort for supporting android tablet or phone for data collection. They are using their phone or tablet.
Thank a lot,


(Trung) #8

Well, for a survey, this is what I observe on a regular basis:

  • if you have to buy devices for enumerators, there are no reason for why you should by iOS devices. Android devices are obviously more preferred.

  • however, talking about personal devices people have, it's likely that supervisors and managers have an iOS device.

So, I do see there's a strong demand for iOS. And if you move to business applications, it is even more obvious.
Trung.


(KAH) #9

Thank you very much Trung.


(Jake Tse) #11

Thought I could use it on iPhone and iPad models, but now I should know that's not possible. Still, I am looking forward to an iOS version. Will that be possible in the future?


(Dr. Gareth S. Bestor) #12

Judging from the views this thread continues to capture, this seems to remain a hot topic...

As previously stated, there is no native iOS version of the ODK Collect app at present. And given that ODK Collect, specifically its foundational OpenRosa XForms libs, are all Java-based, I think its unlikely to see any port of (java) ODK Collect to run natively (ie Objective-C, Swift) under iOS any time soon. But I am curious to know to what extent folks in the ODK community would be interested in an equivalent - in terms of actual XForms support and submittability to the likes of ODK Aggregate - of a native iOS XForms app; that is, an iPad/iPhone app that can consume (some/most/all?) ODK forms and submit result back?

[I'm certainly not promising anything here, but do people want an iOS ODK Collect app vs a native iOS *XForms-compatible* app?]


#13

Hi Yaw,

This message board is from quite a while back but I wanted to add that while we do use android phones out in the field (They are probably cheaper and easier to replace but we use them because ODK runs on Android, not the other way around), it would be nice to be able to check forms on our own personal phones which in the UK are invariably iPhones. Perhaps an iOS version of ODK may come with ODK 2.0?

Cheers,

Stuart


(Yaw Anokwa) #14

For checking on your forms, you can try https://opendatakit.org/xlsform and preview them in Enketo. Does that something like that solve the problem?


#15

Hi Yaw,

It’s more for getting a feel with a smartphone. It’s alright if there isn’t an iOS version, just a matter of taste since my office has an android smartphone.

Thanks anyway


(Jeff Davids) #17

Hello All. I thought it would be worth trying to revive this conversation about an iOS version of ODK Collect. Specifically, I'm interested in the following:

  1. From an Apple security standpoint, is an app like ODK even possible in an iOS environment? Since I'm a water resources engineer, I might be missing something here, but the way that ODK Collect pulls custom forms from an Aggregate (or other) server and submits finalized forms to the same seems like it circumnavigates the iOS security gateway of the App Store. Does this present a real challenge, or is an iOS ODK Collect version theoretically possible? The immediate context for this question is that I'm responding to a reviewer of a paper that we are publishing, and their question is "why does your app only work for Androids?!?"
  2. SmartPhones4Water (S4W) is a young researcher led citizen science project. In Nepal, where we got started in 2017, an Android only app wasn't (isn't) an issue. However, looking forward, we are starting work in the Netherlands this year and in the US next year. In these places iOS devices make up as much as 65 % of the market. Since we partner with young researchers and citizens to collect water data with their own phones, we are anticipating the Android only thing to be a big deal moving forward. We really love ODK as a robust, flexible, and easy to use environment, so we are not looking to jump ship, just hoping there are some other options out there!

Thanks!


(Dr. Gareth S. Bestor) #18

Yes it is certainly possible. There is nothing about pulling forms off a (Aggregate) server into an iOS app, and then submitting some data back that violates any App Store rules.

Realistically, you probably wont see a full port of ODK Collect to iOS anytime soon; there is a tremendous amount of code involved in ODK, all Java, which would need to be ported over to iOS Objective-C or Swift. In particular, the javaRosa code, which is arguably the 'core' of ODK Collect's form-processing; the rest of Collect being the GUI around it (at a rather broad brush-stroke... :slight_smile:

However, what you might see (soon?) is a (partially) ODK-compatible client app for iOS that can load (some/most) XForms from an ODK Aggregate (or Central) server, and then submit completed form submissions back to Aggregate/Central. [I've been working on an iOS ODK client - called iXForms - for a bit which I'm hoping to open-source a prototype of soonish. But because it requires effectively re-implementing javaRosa it doesnt support the full feature-set of Collect; eg no repeat groups yet, no itext language support, ... But it'll list, load and submit a basic form to/from Aggregate. Watch this space... :wink: ]


(Jeff Davids) #19

@Xiphware thanks so much for the prompt and super helpful response!

I'm encouraged to hear about your iXForms. This sounds like a perfect solution for our iOS needs in these new places. We are using repeat groups for some of our more complex workflows, but what you describe should cover 90 % of what we need.

I will definitely keep a close eye on this project! :wink: Any additional information on estimated release timing would be helpful as you move forward.


(Trung) #20

Hi Jeff,

If you want to try our platform on iOS devices (that works with xForms) you can PM me.
Trung.


(Trung) #21

Here is a screenshot.


#22

@yanokwa we are also eager to develop an iOS version of our ODK-compatible client, Tella (hzontal.org/tella), which we can't do without javarosa compatibility. There are many places (Eastern Europe, Latin America) where despite Android market dominance, iPhones are common. And like others mentioned on this thread, we work with European and American partners who are overwhelmingly on iOS.

@Xiphware it's exciting to read about iXForms! Is there a place where we can follow your progress and contribute/test? Thank you for your work on this.


(Dr. Gareth S. Bestor) #23

Probably here. (and you can probably tell by the abundance of postings recently how much time I've had to spend on it lately... :wink: )

Basically, iXForms in its present form works adequately from a user/functional perspective (although its missing such things a itext and repeat groups), but is a horrific mess! Its Objective-C, using a really good but slowly sunsetting UI library (XLForm) on top of a bunch of custom middleware (ARC) sitting on top of an bunch of arguably beta+ (non-ARC!) low-level XForms handling code, all sitting on top of an fmdb wrapper around an SQLite database. Again, it works, but .... OMG I'd never show my mother! :slight_smile:

I'm in the process of rewriting it in Swift using Eureka for the form UI and Realm for the DB layer, which will significantly diminish the code bloat and make it feasible for someone other than me to understand what the heck is going on. Soon as I have a minimally working (eg simple text-only question form) running I'll put it on github and let others watch - and contribute - to the other features being re-added.

But it isnt, and likely never will be, a strict port of ODK Collect to iOS. Rather, its an iOS XForms client attempting to be compatible with ODK forms, OpenRosa API, Central REST API, javaRosa behavior (eg support same XPath function suite), etc. [hence my earlier comment: "do people want an iOS ODK Collect app vs a native iOS XForms-compatible app?"]


(Daniel Salazar R) #24

Hi,

We have been working on our own port of the odk collect for ios. We are about to enter the public beta phase in about a month. We have been working with some of our clients on this port for some time. If you are interested in working with the beta version please let me know. We have opened a github account to track the issues and solve them.

Daniel