A Calculator for Ethernet, IPv4, IPv6, VXLAN

Blog

Sneak Peek - PacketCalc for iOS 14

UPDATE 2020-10-28 - PacketCalc is submitted to the App Store for review. Assuming no issues, it should be available in the next couple days. I’ll add a post to the News section of this site once it’s approved.

Hi,

PacketCalc will see a new release in the next two weeks, and we’ve touched so much since the last update that a preview is in order. First, let’s bullet-point the main changes:

  1. Under the hood changes for compatibility with iOS 14 and SwiftUI 2.0. Going forward, we are in a much better position to take advantage of whatever Apple has in store. The downside here is that you will not see the update in the App Store if you haven’t upgraded to iOS 14. We could have split the app into iOS 13 and iOS 14 versions, but this would entail charging existing users for upgrading to the new version (because, Apple). We opted instead to forgo compatibility with iOS 13 so that we can offer this new version to existing users at no cost. This also allows us to concentrate on the future rather than diluting our efforts supporting legacy versions.

  2. Show/Hide Tiles are a thing of the past. In its place, PacketCalc presents Tiles only when they are relevant. For example, if you’ve selected IPv4+UDP, you won’t see IPv6 or TCP Tiles.

  3. We’ve replaced our custom pickers for Headers, Speeds, and Sizes with Apple’s Form-based Picker. This brings a number of benefits, including being able to scale easily to additional protocols and media speeds.

  4. Using Form-based Pickers also allows for adding descriptive labels to selections, which we’ve done for the packet size and MTU pickers.

  5. The following media speeds have been added: 2.5G, 5G, 200G.

  6. We’ve added a few more common frame sizes, including WEP, WPA/TKIP, WPA2, and AWS EC2 Jumbo and added labels for some of the existing sizes like Arista and Cisco Jumbo.

  7. We’ve removed the Tabbed interface in favor of a single view design.

  8. We removed the custom disclosure chevrons and, instead, no longer hide Sliders or other controls. This was necessary to add Double-tap gestures to Tiles (see the next feature…)

  9. We’ve added two ways to copy the value of individual Tiles. Double-tapping a Tile will copy its raw value to the Clipboard. Long-pressing a Tile will bring up a context-menu that lets you choose Raw, JSON, or Soulver format for the Tile’s value. You can still export ALL data from PacketCalc with the Share button.

  10. We’ve reorganized PacketCalc into a smaller number of focused sections. Hopefully, this reduces complexity and aids navigation.

  11. On iPad, PacketCalc is still multi-window. But, it is no longer multi-instance. That is, all windows are now part of the same running instance. Making a change in one window will update all other windows. This is handy when you want to change protocol headers or packet sizes, while viewing the impact this has on L1 or L2 parameters.

  12. We’ve tried to ensure that scrolling is kept to a minimum. On an iPhone 10X Max, or iPad, you will no longer have to scroll at all. On smaller iPhones, like iPhone 8, you’ll still have to scroll in some cases, but not nearly as much as previously.

OK, so what’s it look like? Below are some screen grabs. There’s still a couple tweaks left to make, but this should give an idea of the direction we’ve taken.

Main Screen

When you first launch PacketCalc, you’ll see this non-descript screen.

main.png

Calc Section

Tapping on Calc takes you to the following screen.

calc.png

Pickers

Tapping any of the Pickers (e.g. MTU) takes you to a list of values from which to choose.

Notice that Form Pickers allow us to add a descriptive label to each value.

picker.png

You choose IPv4, IPv6, UDP, TCP, VXLAN, etc, the same way.

Packet Overview

Next up, the Packet Overview section replaces the full-screen packet view that was displayed when tapping the smaller representation at the top of the screen in the current version. Again, we’ve opted for Apple’s standard way of navigating rather than the “hunt and peck” experience of the version currently on the App Store. Only Tiles for enabled headers are shown here. Similarly, Option headers or IPv6 Extension headers are shown only if they are non-zero.

packet_overview.png

L1 Parameters

These Tiles should look familiar from the current version. The difference is that you no longer need to tap a tile to toggle between L1 and L2 parameters, since L2 parameters have their own screen. Oh, and they’re blue now.

L1_parameters.png

L2 Parameters

L2 Parameters have their own section now. We’ve retained a Slider for L2 Size to select sizes between the (more or less) standard sizes available in the Calc section. Tapping the +/- button changes the value of the + and - buttons from 1, to 64, to 1024. So, tapping the +/- button twice, allows you to change the packetsize in 1024 byte increment/decrements.

L2_parameters.png

Share

This is the same Share Sheet functionality, but it’s got its own screen now, and we’ve added quick access to Sharing Help.

share.png

Help

Help is mostly unchanged from the current version (except that I need to rewrite most of it to match the current UI layout, which is going to take the bulk of my time over the next two weeks).

One change is that the inline full-screen help that appeared when you tapped a Tile label is gone. More than a few people complained that it was too easy to unexpectedly invoke this full-screen help when it wasn’t desired.

I’m looking into adding Help to the context menu that is displayed when you long-press a Tile. Maybe not this next version, but perhaps the one after that.

Context Menus

Finally, below is what the long-press menus look like.

context_menu.png

I’ll post an update once this is available on the App Store in two weeks.

Thanks!

Allen

qo1 Comment