iOS: filesharing without iTunes?
Asked Answered
F

6

8

I develop an enterprise application for iOS and the user should be able to add files from the desktop to the application.

I implemented this using filesharing, which works great.

Now this company wants to get rid of iTunes from their machines (which is quite understandable, iTunes is a very invasive process).

The question is, is it still possible to somehow use filesharing without iTunes? maybe with another application?

Or what other way is there to send files to the app (preferrably without the need of an internet connection)

//edit: must work on windows 7 and must not require to install iTunes (there are some other tools that allow access to the iPad filesystem, but they go through drivers installed by iTunes)

Flyte answered 19/4, 2012 at 14:36 Comment(2)
Using USB connection? You could use iFunBox, but you may need the USB drivers from iTunes. i-funbox.comMonoclinous
thank you for the link - for some reasons however my app does not appear in the filesharing option of i-funbox (it works in iTunes though). Also, my client won't resort to an application that is full of advertisement.Flyte
L
6

You could exchange data via the local wireless network (a connection to the internet is not required, just the iOS device and the Windows computer need to be on the same network).


One option:

You can then create a simple TCP/IP connection over sockets between an iOS app and a Windows application and exchange the data you want.

However you probably need to implement a suitable simple Windows application to do this.


An other, maybe simpler, solution:

You could start a webserver in your iOS-App and show it's IP on the screen. By entering this IP in a browser on the desktop computer you can access websites on the iOS device, which can make documents available for download or receive uploads.

For how to do this, have a look at this question.

Lactometer answered 1/5, 2012 at 13:28 Comment(7)
Will this work in an enterprise network setting? How would I reliably establish the connection between the right desktop machine and the right iPad?Flyte
It works as long as both devices are in the same IP-range. You can get the IP of the iOS in the wi-fi settings. If you are able to ping this IP from the Windows computer a connection is possible.Lactometer
but how would I make this actually usable for the user? (without the need to check IP in settings and enter that on the desktop)Flyte
The simplest solution is probably to display the devices IP in the iOS app, which then needs to be entered into the Windows application. But there are also protocols and technologies available to automatically discover the IP, one example would be zeroconfLactometer
I would suggest that you try to use any of the existing protocols such as Bonjour (I think there is a version for Windows) with ZSync rather than implementing everything from scratch. Anyway, I guess that you will have to program a windows desktop app, but it would be lot simpler!Adjure
Is there no way arround the IP thing? can't i broadcast somehow a connection attempt in the network and display on the iPad all desktop computers that currently broadcast a connection attempt?Flyte
Automatic IP discovery is is possible using a zeroconf protocol like Bonjour, this allows a behavior like showing all available computers, which want a connection (like you suggested). Another way around typing a IP is using a Server, which IP wont change, so that you can hardcode it.Lactometer
I
3

There are a number of ways to achieve this, ranging from trivial to sophisticated.

Your question says that you would prefer to avoid an internet connection. Simple solutions may require it - if you want to abstract the difficult parts, you're going to have to let somebody do the dirty work, and that's probably going to be someone(thing) on the internet. Midrange solutions may require a network but not internet connection. A sophisticated solution could probably be whatever you want - but one thing I would say, is that trying to tap into the USB connector is either going to result in a hacktastic or very complicated solution to implement.

One method would be to integrate a third party framework that basically does what your looking for. Look at the Dropbox development kit, for example - allowing Windows (or any platform) users to drop files on their desktops into a shared dropbox, and this can then be read by an iOS application which includes the iOS drobox API.

Another method would be to setup a simple WebDAV server in your office. Host it on a windows box, or a cheap linux box. Give users desktop's access to the share via whatever protocol you want (eg, Windows File Sharing). Then you'd implement a WebDAV client in your app (eg, WTClient) to pull files.

Finally, you could build your own transmission system. A sophisticated example might involve Bonjour and TCP/IP, a simpler-but-custom solution may involve a simple JSON web service running off a local (or remote) server.

Ingram answered 4/5, 2012 at 17:34 Comment(0)
E
1

I have suggestion but that will require the Internet. I would suggest you to use the DropBox API in the windows and iPhone both. It's awesome to use and very simple for file sharing. Now a days everybody have dropbox account and have files in it to share. So that shouldn't cost anything other than a bit of implementation (this learning can also be used in other file sharing applications). Here are some guidance:

iOS

REST API

Ese answered 8/5, 2012 at 9:45 Comment(1)
However you probably don't want to store sensible company data on Dropbox (or any other third party).Lactometer
V
0

You can add apps and documents to USB-connected devices with the Apple Configurator

Viera answered 19/4, 2012 at 15:44 Comment(1)
i should have mentioned that the target platform is windowsFlyte
S
0

You may use a simple Ftp server installed on PC, so you can connect to server from Ios and upload/download files from iOS to PC....

http://developer.apple.com/library/ios/#documentation/Networking/Conceptual/CFNetwork/CFFTPTasks/CFFTPTasks.html

All work is done by Pc and your app will use IP (Intranet or Internet) of PC to share all files.

From Ios you can read all files in FTP server and work with them.

Stupid answered 8/5, 2012 at 7:19 Comment(2)
thank you for the suggestion. This again requires to type in an IP, right? is there no way arround having to type in an IP? It's not really something I'd like to have in a iOS app for non-tech-geeks...Flyte
you can place in Http folder a textfile with info for all FTP server like this: Name of Server - Ip 10.10.10.10 You use your app to scan this info file and give to user a list of names(Our servers) and in memory all Ip of given names for late use with FTP component.Stupid
H
0

I use the FileBrowser app to get access to network shares over WiFi and will allow you to load supported files to the device. The company responsible is creating an API to allow you to do this within your own app: https://twitter.com/#!/Stratospherix/status/193114857271336960

Highland answered 8/5, 2012 at 13:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.