PacketCalc in 2020
Getting PacketCalc out the door was a great way to start the year! Below are thoughts about where I’m hoping to take things over the next year. Since this is the blog page, as opposed to the news page, take this post more as aspiration than promise. Too, with WWDC only a few months away, we never know what Apple has up its sleeve to change the best laid plans.
I’ll start with things I’m pretty sure are doable in the next few months, with less-difficult — therefore more likely — items first.
Show/Hide Groups of Tiles. DONE. Added to v2020.4(15)
In the Show/Hide Tab, provide a means to disable or enable e.g. All L3 Tiles, or All Parameters Tiles.
Share Sheet Support. DONE. Added to v2020.4(15)
This is already working on iPhone, but it crashes on iPad. Waiting on a fix from Apple. Adding the standard iPhoneOS/iPadOS Share Sheet would allow sending PacketCalc’s internal values, in any of the currently-available export formats, directly to Mail, or Messages, etc.
Port to the Mac using Catalyst
PacketCalc already runs on MacOS, but in order to pass Mac App Store review, some inappropriate (i.e. unimplemented) menu bar items that come standard with Catalyst apps need to be removed. The Mac version, if/when it hits the Mac App Store, will be free, at least initially.
Support for iMix
Provide some standard iMix profiles (WAN, and data center initially?), then later provide a way to enter and/or import custom iMix profiles.
Themes
Provide a few color choices to select from (I’ll be the first to admit that my tastes in color are suspect!). Maybe support user-selectable color for each Tile, or group of Tiles.
Accurate representation of packet. DONE. Added to v2020.4(15)
Rather than depict the packet headers at the top of the app, add a Tile that represents the packet. The coloring on this Tile would correspond to the colors for enabled headers (802.1q, IPv4, TCP, etc), but the horizontal size of each header would change to match the true length of that header. Tapping the Tile might provide a full-screen view with additional information about each header.
Ok, now the harder stuff…
Multi-window Support. DONE. Added to v2020.4(15)
iPadOS added this with iOS 13. Now it’s up to me to figure this out. It’d be nice to be able to show L3 Tiles in one window and a different set of Tiles in a separate window. UPDATE Jan 27, Multi-window turned out to be as simple as checking a box in Xcode. Perhaps this is harder for more involved apps? I’m hoping to be able to test this enough to push a new version to the App Store with this feature enabled within a week.
The only quirk is that all running instances share the same User.defaults settings within the app bundle. The effect being that if you select some subset of Tiles to display in window A, then open a new window B, window B will initially inherit the same Tile display settings as window A (since window A saved these settings to the app bundle). Window B’s Tile values will be independent of window A. And you can change the display state of Tiles in window B independently of window A while both are running. Put more simply, the saved Show / Hide Tile display state will be that of the last window in which a change was made in the Show / Hide tab. I think I can live with that.
In all other respects these are truly separate/independent running instances, and you can have as many open as you want. Below are a couple screen shots.
Export a single Tile’s Value with Drag and Drop
While PacketCalc already supports export of all values to the clipboard, it would be nice, when in SplitView with a spreadsheet, to be able to drag a Tile and drop it into a cell in the spreadsheet.
If you have any other ideas, feel free to leave a comment!
Allen