Device to device communication with Xamarin - sockets

I am developing an application for iOS, Android, UWP and Windows Phone 8.1 device with Xamarin Forms.
In this app I have a key feature witch require the app to send notifications to other device (which are also running the app).
The amout of data is realy low but it has to be fast (don't want to use a backend).
What I want to do:
When the user lunch the app, the app scan network (Wifi and/or bluethooth) to find if another app is already running)
If the app find nothing, it launch a server part.
If the app find someting, it connect to the other device (with allow/disallow screen).
So I am considering the folowing solution :
Wifi (but it requires all devices to be on the same network).
Bluetooth
I don't find best pratice or guides for this.
Does someone have already tried and have a solution ?
Thanks.

Related

iPhone Bluetooth SDK - discover Android / Windows phone 7 devices and background discovery

I am an Android developer and .Net developer and not yet have acquired the needed knowledge regarding iOS .
I did a search on-line but couldnt get conclusive answers to several questions I have which are the following :
1.iOS Bluetooth , do I have to use the Bonjour or Game Kit or can I access a lower level API.
2.Do currently I have an option to perform pairing between an iPhone device and an Android device ?
3.Can an application access the iPhones MAC ID and Friendly ID Bluetooth slots and change them while its in the background ? Or while the device is sleeping ?
4.Can an application set if the iPhone is discoverable or not discoverable to other devices - not iPhone ? Can it perform it while in the background ?
Regards !
Jessy85
This might be helpful to you: How can an iPhone access another non-iPhone device over wireless or Bluetooth?
Generally, there is NO option to communicate with non-iOS device via bluetooth in regular iOS API. GameKit is intended for using between only iOS devices. However I don't know the lower level API which open to only licensed accessory hardware developer except acquiring the license is incredibly hard differently with software license.
1) You can only get to the base API if you are developing specific hardware and are a MFi member. http://developer.apple.com/programs/mfi/
2) Don't think so. But Not really sure
3) You want to change the mac id in the background? Not that I know of. Also it seems like a really questionable idea.
4) Again don't think so. Maybe with MFi but I don't know.

Should I obtain a Mac to develop or test my iPhone web app?

I've been developing an iPhone web app on a Windows XP box using
MobiOne Test Center and Safari for testing and debugging and
occasionally using a real iPhone for testing. The problem is that
MobiOne, Safari (desktop), and the iPhone all produce different
errors. Obviously I am most concerned with the errors that occur on
the iPhone, since that is the target device. (An example of the type
of error encountered is that an image that ordinarily appears as
expected occasionally cannot be displayed, so the little question-mark
icon appears instead.)
I have the opportunity to obtain a Mac for development, but I need to
know whether using a Mac will make a difference.
Have any of you moved to the Mac for developing or just testing a web-only iPhone app?
Is doing so worthwhile? Why?
Does the iPhone simulator in the SDK simulate an iPhone better than Safari on the Windows desktop?
Is there a reason I would need a paid subscription to the Apple iOS Developer Program?
Thanks!
In short: no, I don't think a Mac is necessary for developing iPhone web apps, especially seeing as you have access to a device to test on, and you seem to be fine in your progress of development.
If you're not aware, there's a debug console available on Mobile Safari on your iPhone. Go to Settings > Safari > Developer (at the bottom) > Debug Console and turn that on.
When developing an iPhone web app, you do not need to pay for the iOS Developer Program. That program is for developing native apps to deploy either to your company or the App Store only.
Web apps, on the other hand, are nothing more than web sites that are designed (i.e. include certain meta tags, have mobile-friendly interface designs) to be run similarly to native apps on a device, and harness certain Web technologies such as geolocation that are available to devices. Users view them in Mobile Safari like any other web site, but for the best experience are asked to tap on the + sign and add your web app to their home screens to be accessed as such.
The iPhone Simulator certainly does a better job than desktop Safari on either Windows or Mac OS X since its user interface shares that of the iPhone device, but I don't think you'll need it for testing and debugging if you have a device to test on.
The iOS SDK has a tool called Dashcode but I don't think it's much of a difference from the web dev IDEs that the rest of us use every day. As far as I can tell, Dashcode doesn't give your web app any additional features that can't already be implemented using the standards we're familiar with.
I would not buy a Mac or a paid subscription to the Apple iOS developer program unless I was writing native iPhone applications.
You should be fine with your current configuration. Just make sure you do the bulk of your testing on the actual iPhone, that is what your customers will be using.
Does the iPhone simulator in the SDK simulate an iPhone better than Safari on the Windows desktop?
Yes - there are some significant differences between MobileSafari and Safari for Mac/Windows - but you've got an iPhone to test on. The iPhone Simulator offers no additional debugging tools for iPhone web apps, so you're not going to be better off having it available than just testing on the device.
Testing on an actual device is better than testing on any of the Simulators, since that is what you mobile customers will actually be using.
If you are strictly building web apps, your money might be better spent on more test devices (devices with and without a Retina display, iPad, maybe an old used iPod Touch running some prior version of iOS for regression testing, etc.) If you are choosy about your colors, the color can vary quite a bit across devices, so it may help to find one warm display and one cold one (from old/different manufacturing lots, etc.).
So you don't NEED a Mac (unless you have other reasons for acquiring one).
Buy an iMac. You will enjoy the experience better.
It is my understanding that your application needs to be compiled on a mac before it can be sold in the app store.

Getting an iPhone app communicating with an Adobe Air desktop app

I am creating a desktop version of an iPhone app and would like to have some sort of sync option. The desktop version of the app is an Air app.
I know that I can have them communicate by:
Starting a server on the desktop or the phone
Ask the user to enter the IP of the device into the other one
Make GET and POST requests over the http server
This seems very clunky to me, however, and I would like for them to automatically recognize each others presence when the sync button is pressed. How can this be done between an iPhone and an Air app?
Figured out a way myself: Bonjour
It is possible to implement on the Air side
It is possible to implement on the iPhone side:

Deploy app to iPhone wirelessly?

I remember hearing about how Apple was going to include the ability to deploy an app from Xcode to your iPhone wirelessly in the 3.1 SDK. I believe it was to aid developers that wanted to deploy/test apps that used peripherals that plugged into the iphone's docking port- this way, they could deploy a build of the app with their peripheral device still plugged in.
Has anyone done this, or have a clue as to how to do this? Is it done via wifi network, via a direct bluetooth connection to the mac...?
I believe you can't deploy, but you can use Instruments over Wifi to performance tune your app.
You still need to use USB to allow for Xcode to install and debug your app.

Target Hardware Requirements for iPhone Development

Are there limitations to doing iPhone development on an iPhone without a contract? That is, can one purchase a used iPhone from ebay and successfully develop software for the iPhone? Will GPS work?
It will work just fine in general, I've been using a first generation iphone sent from my employer in the states for months as a test and development phone without any issue. I have been using wifi for all network related stuff and tested 3G on my own personal phone using ad hoc builds. This phone doesn't have a valid phone contract and I just flipped it into airplane mode then turned on the wifi.
The gps appears to function fine too, I haven't done anything with gps info via the api yet, but it looks like it is pulling in the data in maps just fine.