4.0.0
This release has been the product of months of daily work. Most of FLEX was rewritten from the ground up. If you want to show your appreciation, I have a GitHub Sponsors profile with a range of tiers where you can donate to me on a monthly basis. I also have Cash App ($tannerbennett). Reach out to me on Twitter if you have any questions or concerns about anything!
(This is by no means a complete list of changes)
Misc
- Drops support for iOS 8 — if you need to support iOS 8, use FLEX 3
- Tabs! Every screen now has a toolbar you can use to view the list of open tabs and switch between them.
- Background a tab by swiping down to dismiss the view controller (yes, even if you're not on iOS 13, try it)
- Close a tab by pressing the "Done" button or by deleting it from the tabs list
- Bookmarks! Bookmark objects to save them for later
- Hit the + button in the tabs list to open a tab from a bookmark
- New icons for the FLEX toolbar, taken from SFSymbols (yay @3x)
- System log is back from the dead: iOS 10 largely broke the system log feature with the addition of
os_log
. FLEX now forcesNSLog()
to use ASL so you don't get a log full of useless internal junk - Added various singletons to the main menu screen
- Dark mode improvements
- Run queries on SQLite databases (thanks @LesykMelnychuk)
- Most screens are now searchable, including lists of object references and the keychain
- File browser now shows a list of classes when you select a mach-o file
- More public APIs have been exposed
- Added a Swift example project which makes use of some new public APIs
FLEX Toolbar
- Long press on the Menu button to show the list of open tabs
- Long press on the Views button after selecting a view to show a list of view controllers at that point
- Long press on the Select button to show a list of all windows and scenes; tap a window to adjust it's level
- Added a Recent button which opens the most recently backgrounded tab
FLEXObjectExplorer
- New APIs for customizing "shortcuts" that are displayed for any given object or class
- Uses a monospace font for displaying metadata
- Adds context menus for metadata rows on iOS 13, useful for copying various metadata properties
- Protocol conformances are listed at the bottom, as well as instance size and image of origin
- Added various helpful shortcuts to a number of classes
- Fine-tuned the shortcuts for various UIKit classes
- Swipe left or right to change your position in the class hierarchy
- Tapping on a property or ivar now takes you to the value; press the detail button to edit instead
- Added a section index control to aid in quickly jumping to a specific metadata section
- Added a toolbar with quick access to helpful toggles or options
- Toggles for visibility of method overrides, property-backing ivars, and property-backing methods
- Quickly copy the object's description or address or bookmark it
- Quickly access the list of bookmarks or open tabs
- Support NSDecimalNumber setters
- Added option to view a list of subclasses when exploring a class object
View Explorer
- Swipe left or right on the toolbar's selected view box quickly to move your selection higher or deeper into the view hierarchy
- Added a 3D reveal-like view explorer: explore an exploded representation of the view hierarchy right on your device!
- Background colors of views are more accurately indicated
- Translucency is now correct
- nil background colors don't show a color indicator at all
Runtime Browser
- Replaces the System Libraries and App Classes screens
- Browse the runtime using a key-path-like syntax:
bundle.class.method
- Accepts wildcards, like
*.*View*
which will list all classes that containView
- Currently only supports searching for methods, properties and ivars soon to come
- Search for an instance method with
-methodName
, a class method with+methodName
, or either by prefixing your query with a wildcard- For example,
UIKit*.*Controller.*foo
searches for any method containingfoo
in any class ending withController
in any loaded bundle starting withUIKit
- For example,
- Accepts wildcards, like
Method Calling
- Added a "paste" button to argument input accessory views, useful for pasting an address
- Added support for
char *
andSEL
parameters
Network History
- Now prompts you to turn it on before taking you to the screen
- Easy access to the "clear" button in the toolbar
- iOS 13 users can blacklist domains by 3D touching on requests
- JSON payloads are now displayed as NSDictionary/NSArray when you try to view them