I've been using an iPad Pro on and off for the past year and have yet to find a way to use it as my daily work machine. Some of this is due to missing applications like Sketch or Adobe XD, but also in the limitations of most iOS apps. Mobile apps are simple, accessible, and focused, but don't typically offer the robustness of desktop counterparts.

Codea recently addressed this gap as co-creator Simeon wrote in a recent blog post:

I realised six months ago as I was using my Mac, using the menus, that I need these things — menus — in Codea. I was trying to solve a problem that has been solved for decades.

So I set out to make the best menus I could make for iOS.

For simple apps, menus aren’t necessary, and that’s great.

But Codea isn’t a simple app and there’s nothing I can do about that.

What it can be is discoverable. Compared to all the options I considered, menus are exactly that, discoverable. You pull down a list of named features complete with shortcut keys (if a keyboard is attached). Then you activate that feature by tapping on it, or by dragging your finger and releasing.

Hamburger menus, side-drawers, whatever you want to call them, are a conventional way to bury additional and often unrelated functionality into an app. But they are much heavier than the good old-fashioned menu bar. They often pull out a whole modal side-thingy, maybe they slide all your content to the right. It’s a context switch for your brain.

Menus categorise items under common, plain-text headings, and they appear and disappear without fanfare.

I wanted menus that looked beautiful, looked like iOS, and felt great.

https://codea.io/blog/the-ios-menu/

Simeon perfectly describes the missing component in many of today's productivity apps - discoverability. Features and complexity are often dropped for the sake of simplicity, sacrificing the value of the app. But Simeon doesn't just stop at adding menus to Codea, he dives deeper in a second post to focus on the interactions.

The other interaction I really needed for this menu was something I first noticed in Procreate, an iPad app for painting. It uses popover menus to allow the user to change tools and colours. Standard iOS popovers require the user to tap outside the popover to dismiss it before she can interact with the background. In Procreate, you can just start drawing and the popover dismisses.

This behaviour gives the menus their lightweight feel. They don’t stutter your interactions with the rest of the system. The clip below shows what happens when you scroll the editor with an open menu.

There are so many great details in this piece, but I particularly love how he handled scrolling for various device sizes and his brilliant implementation of dynamic button colors for increasing legibility (see the video).