Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status


The iOS app portion of MapTheThings, the global coverage map for The Things Network (TTN).

Using the App

  • Map view - Shows local map with latest sample data
    • Lighter green: You asked the node to send a packet.
    • Darker green: Node confirmed the app packet was sent successfully. (Whether it reached a gateway, only the server knows.)
    • Yellow: You sent a packet. (And you’re using an older version node that doesn’t ack packets, so we don’t know whether the node thinks it worked or not.)
    • Red: Packet was not sent - got an error from LoRa radio module.
    • Blue: Server reports successful transmissions received.
    • Gray: Server reports attempted transmissions here, but none received from TTN.
  • Devices view
    • List shows all Bluetooth devices discovered nearby. A green dot appears next to each currently connected device.
    • Choose a device to see the device details
    • Touch the Connect button to connect to the node
    • Touch the Get OTAA button to load provisioning keys.
    • Packets will be generated and sent automatically as new GPS locations arrive.
    • Touch Resend to resend the last packet.
    • Touch Send Test to send a packet for lat/lon 10.0/10.0
    • View debug messages in the text field at the bottom of the screen.
  • Messages view
    • Enter a phone number
    • Enter a message
    • Hit the Send button. Message will be transmitted via a connected node.

Developer Notes

  • We use Cocoapods. You'll need to install it and run pod install to bring in all the dependencies.
  • We are now using the latest version of Swift.
  • Fake a Device - Set FakeDevice=1 in Info.plist to fake a device when you don't have a hardware node. The app will act like it has a MapTheThings node to talk to. Set it to a bigger number to debug behavior when there are more nodes around.
  • Test Host - Use a test host server by setting TestHost="localhost:3000" in Info.plist.
  • Enable Fabric by defining FABRIC_API_KEY=xyz and FABRIC_BUILD_SECRET=abc in private.env.


  • Frank - Focused on working example of Active Collection. Bluetooth communication. Sync GPS samples with server.
  • Forrest - Putting burgeoning Swift skills to work.
  • @masterswift - Messaging UI.


Forrest would like to thank

  • Jordan @CocoaPods with MKCoordinateSpanMake and re-centering
  • Mike @Cocoapods with formatting floats


Source code for Map The Things is released under the MIT License, which can be found in the LICENSE file.


iOS client for collecting MapTheThings data







No releases published


No packages published