This allows `FLEX` to be linked statically to a binary that has `-Wstrict-prototypes` enabled (for example in CocoaPods without `use_frameworks!`.
Changes:
- Apply `void` to all the empty function/block declarations that don't take arguments.
- Apply `SEL`/`UIImage *` to the others that actually take arguments.
- Remove `CLANG_WARN_STRICT_PROTOTYPES = NO` since the default is enabled.
Other changes:
- Editor/caller view controllers use a toolbar for the call/set button now
- FLEXNavigationController adds the Done button to it's root view controller instead of FLEXExplorerViewController
- FLEXExplorerViewController now overrides presentViewController: and dismissViewControllerAnimated: to toggle its window's key status instead of using new methods to do it
- Adds a 't' simulator shortcut to quickly present an explorer screen for testing
There was a lot of code duplication between the property and ivar editor classes. This fixes that.
- Renamed: FLEXFieldEditorViewController → FLEXVariableEditorViewController
- Renamed: FLEXMutableFieldEditorViewController → FLEXFieldEditorViewController
- Collapsed FLEXPropertyEditorViewController and FLEXIvarEditorViewController into their parent class, FLEXFieldEditorViewController
- Property/ivar editor now takes a FLEXProperty/FLEXIvar
- Property/ivar editor initializer is failable based on editability of property/ivar
- FLEXMethodCallingViewController now takes a FLEXMethod
- Argument input views will now generally allow editing of a nil value
Object properties are strong by default, and primitive ones are assign by default. Verbosity is nice, but in this case it introduces unnecessary cognitive load.
Remove all usage of `strong` and `assign` property attributes
Replaces the following method calls with dot syntax:
- count, length, UTF8String, CGColor, contentOffset, firstObject, lastObject, allObjects, allKeys, allValues, subviews, scale, frame, bounds, bytes
Also replaces various UIKit and Foundation singleton method calls with dot syntax, such as UIApplication.sharedApplication. These are all `class` properties now and Xcode will autocomplete them.
Also fixes a couple warnings.
* [DarkMode] Migrate existing colors to semantic colors
* This commit introduces FLEXColor that defines the semantic colors
* This migrates most, not all, of the spots that need dynamic colors
* [DarkMode] Use dynamic color providers for iOS13+
* This colorWithDynamicProvider API is intentionally scoped only
to handle light and dark mode (and not handling contrast, level,
weight, etc to keep things simple
* [DarkMode] Remove last reference for scrollViewGrayColor
* [DarkMode] Rename backgroundColor* to systemBackgroundColor*
* This matches more closely with iOS13 UI element color naming scheme
* [DarkMode] Update network history rows to support dark mode
* [DarkMode] Update network history cell text color
Previously you could only "Set" mutable ivars or properties. This commit adds a "Get" button to the same screen to allow you to view the current value instead. Also works in the user defaults explorer.
It may be worth considering other approaches to this entirely, such as an alert that asks you if you want to get or set the ivar/property before a new screen is even pushed, or maybe a "Get" button as an accessory view on the rows of mutable ivars/properties.
Instead of trying to hide the status bar everywhere, move the status bar back above FLEX’s window when we present a modal view controller. This allows tapping to scroll to top.
We will now have a generic FLEXArgumentInputView superclass that just shows a title and declares the common interface for setting an initial value for the argument, getting the user’s input, etc.
With FLEXArgumentInputViewFactory, we will be able to pick different FLEXArgumentInputView subclasses depending on the type encoding of the argument. This will allow us to go beyond string-only input to have things like switches for BOOLs, multiple fields for structs, color pickers for UIColors, font pickers, etc.