for Android, several apps exist that show such information, like https://play.google.com/store/apps/details?id=com.farproc.wifi.analyzer does it:
I need similar functionality in my iOS app but can't find any information about that. It this forbidden by Apple?
Apple doesn't allow apps to access the hardware like that. A fairly common workaround is to measure network throughput instead. You could take periodic samples of the current network speed, and then display that data over time.
Network Multimeter, for example, is an app that will give you info on your network as you walk around. It does that by sending data across the network and displaying the throughput.
Related
My work wants to test their new modems using an iPhone app. We can use a current app or build a brand new one. Third party apps are OK but want to avoid jailbreaking if possible.
We want an app which connects to the network and monitors certain parameters for a set amount of time. We will log attributes from the network and modem. We already know it's possible to test speed, disconnections, reconnection time etc. Some of the parameters we need to track might be more secure or outside Apple's regulations.
These are the responses we are looking for:
Frequency (ie. 2462MHz)
Channel Bandwidth (ie. 20MHz, 40MHz)
Radio Type (ie. 802.11a,b,g,n,ac)
802.11 Deauth Reason code
802.11 Association Status code
How can we track the above attributes using an iOS app?
Are there any apps out there that can track this information? Does iOS have anything for tracking these parameters?
Thanks so much!!
I recently have been very interested in developing iOS apps (for iPhone specifically) that can "communicate" with nearby (geographically) apps.
My networking skills/resources are limited, so I was really hoping to make it a peer to peer app, avoiding the need to host my own server.
It seems like I have a few options, including the newish Multi-peer Connectivity framework, and Location services.
I was hoping someone who has experience writing peer to peer apps could direct me to what they think the most logical approach would be.
Additonal info:
*I am only looking to send text/small pictures (speed is not a priority)
*Detecting nearby (within a mile or so) geographically is the main goal
*Possibly communicate with Android devices (I know multi-peer connectivity lacks this)
Peer-to-peer communication is limited to a range of about 50 meters. To extend the range you can create a mesh using intermediate peers to relay messages. That is how the Firechat app works.
If you want to communicate over greater distances without a mesh I believe you will need to go via the cloud
In terms of communicating with Android, the people who made FireChat are coming out with their SDK. Not sure how/what pricing will be but I assume they will offer this cross platform function. There are of course other ways but I am not that advanced in app development to know them yet.
For a simple chat app there are many free online tutorials that help you create iphone to iphone chat app that can also send images. Range will be limited however to whatever is max for WiFi. Like Keith said, mesh is another option but I believe everyone in the network has to have the app for the data to bounce.
I'm a newbie to iOS, and I'm somewhat lost in the sea of networking libraries available.
I'm interested a library that will allow me to:
discover other users using the application nearby
send activity (for example the coordinates of where the user last touched the screen)
receive activity (for example the coordinates where another user last touched the screen)
send/receive activity with relatively low latency
not require a command and control server of some sort to coordinate all this if possible
Is there one library that will do this?
You should look into the Multipeer Connectivity framework:
https://developer.apple.com/library/ios/documentation/MultipeerConnectivity/Reference/MultipeerConnectivityFramework/Introduction/Introduction.html
It lets you construct peer to peer connections over bluetooth, cell, wifi, and peer-to-peer wifi. I'm going to start investigating this myself very soon so feel free to stay in touch if you want to trade experiences.
I don't think you can avoid a server side in this case if you want to
discover other users using the application nearby
Unless you use technology like bluetooth? Otherwise, AFNetworking is a high level, easy to use framework with very good documentation.
I am currently trying to develop an application that uses the device camera to record video. Currently i am using an Apple demo that gets the data incoming from the camera and display it in a layer. In a second phase i started documenting about how to transfer that data via Bluetooth and/or Wifi to an other iPhone (real time local streaming), but i am getting no information about whether this is possible or not. Some posts say that this is limited due to the limited maximum data transfer size over wifi or Bluetooth. Could anyone tell me if this is possible or not ? Could anyone give me an example ? Thanks.
Sure you can at least for WiFi. With Bluetooth there may be some issue with bandwidth. For network library, there is this excellent library with example that you can start with. You will need to learn at your own pace. Good luck!
In the iPhone apps, network traffic via cellular network usually will cost users money by sending network request etc, so we need try to avoid such architecture or technical solutions for the apps to avoid cost much money for users.
Does that make sense ? And also try to look for any policy from Apple about this, any clues ?
As I know Apple push notification should be better than such polling approach which need send request to server periodically.
What are the alternative solutions in such cases ?
You could test to see if the user if on Wifi or the cellular network (use Reachability for this). If they are on the cellular network warn them that you are going to be using a lot of data.
It's also important to only load data when necessary. Don't download all your data when the app loads. Do it when the view appears (and do it in a background thread to prevent the UI locking).
You should optimise any data you will be downloading. e.g. if you are going to download a load of images or audio files download a compressed (zip) file containing them and then unzip it on the device.