-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
High Level Interface - Foundation (revision) #470
High Level Interface - Foundation (revision) #470
Conversation
@theresalech the PR is now ready for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @kshala-ford - I've left a few comments for your review. Please let me know if you have any questions or concerns with addressing. Thanks!
|
||
View controllers are instantiated when they are pushed to the view controller manager. In the case of the root view controller it would be instantiated once a connection is established to the head unit (app is registered). In this state there is no view loaded. The app developer should not load data or perform other memory/time intense code at this time. | ||
/** The configuration the SDL application. (bypass to manager) */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should be either "The configuration of the SDL application." or "The SDL application configuration."
View controllers should be stackable. Similar to [`UINavigationController`](https://developer.apple.com/documentation/uikit/uinavigationcontroller) an SDL view controller manager should be used by the SDL application class. Different to `UINavigationController` there should not be an `SDLNavigationController`. First of all the navigation controller provides UI elements (no Navigation buttons or Toolbar) which cannot be adopted to SDL. Second to avoid confusion the code responsible for the stack should not be called navigation. (An alternative for `SDLNavigationController` or `SDLStackViewController` can be added if requested). | ||
|
||
The view controller manager provides methods to access view controllers and manipulate the view controller stack. | ||
A private extension will be used in order to create objects out of `SDLApplication`. This extension should be located in a separate private header file but should be implemented in the application's .m file. This would hide the technical possibility for creating multiple `SDLApplication` objects. The function `SDLApplicationMain()` should use the initializer and set the shared application instance. For those who master SDL and need to have multiple objects can reuse the extension and create new objects manually. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please update the last sentence to "Those who master..." (removing "For")
|
||
@property (nonatomic) NSArray<SDLView *> *subviews; | ||
#### configuration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be capitalized "Configuration"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually that's code in the title (parameter name). I ``'d it.
|
||
@property (nonatomic, nullable, copy) NSArray<SDLTextField *> *mainFields; | ||
This proposal will add a total new high level interface layer abstracting many parts of SDL. Existing code should not be affected in a short term but it would make parts of the code obsolete therefore to be deprecated and made private. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please update to "...totally new..."
Thank you @theresalech. Just made the requested changes. |
This proposal is about setting up a foundation to provide a high level developer interface to the iOS library.
The foundation will be about the application lifecycle which is necessary for view controller lifecycle and management.
It's the first proposal from a set of proposals each addressing a specific section of the high level interface.
This PR is a revision to deferred #448 . The revision now contains the application lifecycle only and excludes all other areas. Those excluded areas will be added again in separate proposals.