Comments (5)
I haven't had the chance to look at the new APIs yet, but I'm guessing making Stinsen use them would be a refactor with lots of if-available thrown around. I'll probably throw together a proof-of-concept with the same Stinsen-API as a separate project whenever I have the time.. ð
from stinsen.
I was probably thinking way too fast when I wrote,
It seems problematic to have a bunch of if #available(iOS 16.0, *) throughout all files
After reading an article from a former colleague about backporting, it may not be a complete overhaul to work on.
If you would like help with your proof of concept, I am more than happy to contribute.
from stinsen.
Thanks! I'll try to answer all questions and create separate issues later on for them:
- Creating a NavigationViewCoordinator is a bit of a hassle, I agree, but the problem is if you have a couple of NavigationCoordinatable's after eachother, then you probably don't want to use NavigationView per default since you'd end up with two Navigation Bars. So I don't think it is possible I'm afraid. But an extension might be added.
- This sounds like an oversight on my part, I'll check it out.
- You mean instead of
.route(to: \.someDefinedRoute, viewmodel.id)
like it is today? No, that is not possible I'm afraid. I agree the enum-syntax looked a bit better, this is an unfortunate side-effect of having the better (in my opinion!) way of routing. - Definitely doable. A better way would be to have a
isActive(\.someRoute)
though,Int
s feel a bit dirty ðĪŠ
from stinsen.
I thought this thread would be the place to start talking about the new navigation APIs released this past WWDC for iOS 16. I think this should be addressed soon as iOS 16 is released in the coming months. I haven't personally used the APIs in beta yet but they bring a lot of native functionality for navigation and can make things a lot cleaner for us. Even with these new APIs, I still plan on using Stinsen as a general wrapper around the native navigation because of how well other Coordinator-patterns are handled by this project.
To move to it in Stinsen would probably be a great refactor of the underlying Coordinatables and route handling. It seems problematic to have a bunch of if #available(iOS 16.0, *)
throughout all files so something should be decided for that. A completely separate project would probably be needed but that doesn't sound nice.
from stinsen.
Guys do we have any progress on it? @LePips @jblanco-applaudostudios
from stinsen.
Related Issues (20)
- PopToRoot shows second view while transitioning from third to first view HOT 6
- How can I get access to a stack during popToRoot
- Problem with .push transition. HOT 2
- Can't I use onDismiss in route method? HOT 1
- Dismissing item issue HOT 2
- Exclude screens during deeplink HOT 1
- Issues caused by use of SwiftUI's NavigationStack HOT 2
- Can't get NavigationRouter via protocol
- Tabbar items customisation HOT 2
- dismissCoordinator animation
- dismissChild fatal optional
- How to correctly use focusFirst HOT 1
- Example just don't work
- Tabbar Item Accent Color Not working
- Presentation detents for sheets
- Memory leaks in iOS17 HOT 5
- How do I know which route I am in?
- EmptyView while push HOT 5
- hasRoot / isRoot crashes app HOT 1
- Disable tabCoordinator when show Custom Alert HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
ð Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ððð
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google âĪïļ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stinsen.