Timeline
Every release since the app was started, what each one added, and the store and App Review steps in between. What is still to come is on the status page; what the app does today is on the features page.
-
Work starts, as APRS One
Work on the app began four days before the repository existed, under the name APRS One.
It was built around messaging. Most APRS clients treat messages as secondary to position reporting and show them as individual packets rather than conversations; this one keeps a thread per station, with a delivery state on each message.
By the time the code moved into its own repository it already ran: message threads, a map with stations, objects and trails, the packet log, and the first of the service screens.
-
The code moves to its own repository, as APRS Connect
APRS One is renamed APRS Connect and moved into a repository of its own. The first commit is 513 files and 63,000 lines, because the app was already working; the commit is a move, not a starting point. Everything below this entry is public history.
-
Google Play approves the first upload
Version code 1 clears review two days after the repository was created. Nothing was on sale yet. The listing was submitted early because store review takes days that cannot be recovered later.
-
APRSOTA lists the app as recommended software
The APRS OTA handbook lists APRS Connect under software with APRS OTA specific features: hosting an operation, every chaser on one screen, and the countdown timer.
-
First release on Google Play
- Message threads with a delivery state per message, retried until the other station acknowledges
- A vector map with station symbols and trails, and a tile cache that keeps working offline
- The packet log, with an inspector that decodes every field of a frame
- The APRS service bots and gateways, each as a guided screen with its commands filled in
- Net rooms for #APRSThursday and the ANSRVR groups
-
Track export, and one background setting
- Recorded tracks export as GPX, or as KML for Google Earth
- Background running becomes one setting, on by default, replacing two that were rarely found
- Services that need a radio describe it as part of their setup rather than as a warning
-
Audio modem, channels, and six languages
- An AFSK modem in software: the phone's own microphone and speaker in place of a hardware TNC
- Channels — several named radios, each of any type, one connected at a time
- Six languages behind a switch: German, Spanish, French, Italian, Japanese, Portuguese
-
Bluetooth LE TNCs
- Bluetooth LE TNCs become a channel type: the Mobilinkd TNC4 in LE mode, and the B.B. Link
- The screen can be kept on — never, on the map only, or always
- Transmit delay moves to the radio settings, where it applies, rather than the audio modem's
- A pass over surfaces, corners and press states across the app
-
The site gains documentation and a blog
aprsconnect.com had been a single page since 20 August. It gains a documentation section written against the app as built, with every label checked against the screen it describes, and a blog published from the same deploy.
-
Self-hosted maps and offline regions
- Vector tiles for the whole planet, served from our own storage, with the map style shipped in the app
- Offline regions selected and downloaded, with the download size shown before it starts
- The map no longer depends on a third-party tile server
-
iOS support
- CoreBluetooth support written for iOS, and a pass over every part of the app that assumed Android
- The subscription walls gain an export option, so data can be taken out from behind them
- The app's registered APRS device identifiers are used on the air
-
The first iOS build is submitted
Built and uploaded the same day as 1.5.0. The three entries below are the App Review rejections that followed.
-
Build 1 rejected under guideline 3.1.2
The App Store description has to link to the Terms of Use for an app that sells a subscription, not only link to them inside the app. Fixed in the listing.
-
The free tier, and APRS Connect Pro
- The app is free over APRS-IS; radios, offline maps, radar, track export and capture replay need Pro
- Every screen reads its text from the translation catalogues, and the six languages are complete
- First run becomes seven steps, starting with three slides describing what the app does
-
Retry when heard
- A message that has run out of retries can wait, and send again when its station is next heard
- Beaconing is consented to during setup, and the home screen says when it is off
- Position works on phones without Google Play services
- A net room shows how many stations are on the net and which have spoken tonight
-
Build 2 rejected under guideline 2.5.4
App Review could not reach the functionality behind the app's two declared background modes. Both are real — one restores a Bluetooth connection to a TNC, the other keeps the audio modem running — but neither starts until a radio is connected, and the review never got that far. The submission now carries review notes explaining how to reach them.
-
IGate, digipeater, and the coverage map
- The phone can act as an IGate, each direction a separate setting, passing traffic only for stations it heard directly
- And as a digipeater, fill-in or wide-area, which stays quiet when another digipeater has already repeated the packet
- A coverage map of where a transmitter has reached a digipeater from
- Pinned stations sort to the top of the list and are followed on APRS-IS
- A grid square screen with the operator's locator, and the distance and bearing to another
- The tab bar becomes the first row of a drawer, and its tiles can be rearranged
-
Android Auto
- The app's map on the car's screen, with the same stations, symbols, trails and basemap as the phone
- A Send beacon button, a find-me button, and a station card when a symbol is tapped
- A damaged tile index is repaired automatically instead of leaving the map blank
The second release of the day; 1.8.0 was published that morning.
-
F8BDX writes it up in French
The French amateur radio news site f8bdx.free.fr covers the app under "une nouvelle application APRS pour Android", describing station tracking, use with a transceiver, IGate and digipeater, and Android Auto.
-
Build 3 rejected under guideline 2.1
Three requests at once: a "callsign code" to get past first run, a demo video recorded on a physical device, and the steps to reach the in-app purchases. There is no callsign code — any callsign is accepted — which indicates the setup step was read as a barrier.
-
1.10.2 goes to App Review
The iOS build carrying everything Android had through 1.9.0: IGate and the digipeater, the coverage map, pinned stations, grid squares, the arrangeable tab bar, the audio modem's decoding pass and ISS support. It goes up with review notes and a demo video recorded on a physical device, which is what the previous rejection asked for.
The Android app is on Google Play. iOS has not been released; the entries above cover its submissions so far. Get the app.