Expand description
ferroui-ios
The platform of FerroUI for iOS: a UIView that hosts a top-level, the
application delegate with the single-view lifetime, the dispatcher on
the run loop of the main thread, the render timer on a display link,
Metal or OpenGL ES graphics over the layer of the view, touch, key and
scroll input, text input from the keyboard of the system, the settings
of the system, the safe area and the screens. docs/porting/ios-platform.md has the design, the file
table and the stages.
The platform calls UIKit, Core Animation, Metal and EAGL through the objc2
family of crates; nothing of it is written in Objective-C. Everything
that touches UIKit exists on iOS only. What is logic and not a call into
the system (the options, the translation of touches, the safe area, the
geometry of a screen, the insets manager, the lifetimes’ contracts)
builds on every system, and the dispatcher builds on every Apple system
(it needs Core Foundation and libdispatch only): that is what the tests
of the crate run on the development machine.
Re-exports§
pub use ferro_app_delegate::FerroApplicationDelegate;pub use ferro_app_delegate::IFerroAppDelegate;pub use platform::IosPlatformOptions;pub use platform::IosRenderingMode;pub use view_controller::IFerroViewController;pub use view_controller::StatusBarStyle;pub use ferro_app_delegate::run_application;pub use ferro_app_delegate::run_application_with;pub use ferro_app_delegate::FerroAppDelegate;pub use ferro_view::FerroView;pub use native_control_host_impl::UIViewControlHandle;pub use platform::IosApplicationExtensions;pub use platform::Platform;pub use view_controller::DefaultFerroViewController;
Modules§
- activatable_
lifetime - The activatable lifetime of the platform: the activations the application delegate reports.
- automation_
peer_ wrapper - The wrapper of an automation peer: what an accessibility element of UIKit says of the peer (label, value, hint, identifier, traits, frame), the accessibility container over the children of the peer, and the actions of assistive technology (activate, increment, decrement, scroll).
- clipboard
- The clipboard of the platform, over the general pasteboard of UIKit.
- combined_
span3 - Three slices read as one: the text before the marked text, the marked text and the text after it, without building their concatenation.
- completion
- A value that arrives later, on the main thread: what stands for the task completion sources of the reference, whose tasks the callers await. The completion blocks of UIKit set the value; the future that waits for it is polled on the dispatcher of the main thread.
- dispatcher_
impl - The dispatcher on the run loop of the main thread.
- display_
link_ timer - The render timer of the platform: a display link on a thread of its own, which ticks once per frame of the display, up to 120 Hz on ProMotion displays, and is paused while the render loop is idle or the application is in the background.
- eagl
- OpenGL ES over EAGL: the platform graphics with the one context of the platform, the render surface of a view over its EAGL layer, and the framebuffer of the renderbuffer of the layer.
- extensions
- Conversions between the geometry and the colours of Core Graphics and UIKit and those of the framework.
- ferro_
app_ delegate - The application delegate: it builds the application when UIKit has launched, gives each scene its delegate, and reports the activations of the application.
- ferro_
scene_ delegate - The delegate of a window scene: it creates the window of the scene with the view of the application in it.
- ferro_
view - The view: a
UIViewwith a Metal layer, or an EAGL layer when the graphics of the platform are those of OpenGL ES, that hosts a top-level of the framework and can be embedded into the view tree of an application. - input_
handler - The input of a view: touches of fingers, of a pencil and of an indirect pointer become raw pointer events of the top-level, the presses of a keyboard or of a remote become raw key events and text, and the scroll events of a pointing device become wheel events that go on with inertia when the scrolling stops.
- insets_
manager - The insets manager of a view: the safe area and the status bar, read from the view controller of the view.
- interop
- The functions of Core Foundation and of libdispatch the dispatcher calls: the run loop of the main thread, an observer and a timer on it, and the main dispatch queue; and the block the render timer gives the run loop of its thread.
- ios_
launcher - The launcher: opens a URI with the application the system has for it, and previews a file.
- ios_
platform_ feedback - The feedback of the platform: the sound of a click, and the taps of the haptic engine.
- ios_
screens - The screens of the device.
- metal
- Metal: the platform graphics, the device, and the render surface of a view over its Metal layer with its render target and drawing session.
- native_
control_ host_ impl - The native control host of a view: the views of an application become
subviews of the view of a top-level, where the layout of the framework
puts them. And the handle of a
UIView. - platform
- The platform: its options,
use_ios, and the registration of the services of the platform. - platform_
settings - The platform settings: the colour scheme, the contrast preference and the tint colour of the system, and the preferred language of the user.
- single_
view_ lifetime - The lifetime of an application that shows one view.
- storage
- The storage of the platform: the provider with the pickers of the system, and the items behind security-scoped URLs.
- stubs
- The services of a windowing platform iOS has no counterpart for: cursors, windows and window icons.
- text_
input_ responder - The responder of text input: the object UIKit talks to while the
keyboard is up. It answers the questions of
UITextInput(the text of a range, the selection, the marked text, positions and ranges, the rectangle of the caret) from the text input method client of the focused control, applies insertions, deletions and marked text to it, and states the traits of the keyboard from the text input options. - ui_
kit_ input_ pane - The input pane: the state of the keyboard of the system and the rectangle it covers, from the notifications the keyboard posts before it is shown and before it is hidden.
- view_
controller - The view controller of a view: the safe area of the view and the status bar.