birdsofparadise
12/31/2020, 2:14 AMAdam Powell
12/31/2020, 2:49 AMbirdsofparadise
12/31/2020, 2:50 AMAdam Powell
12/31/2020, 2:51 AMAdam Powell
12/31/2020, 2:52 AMbirdsofparadise
12/31/2020, 2:52 AMAdam Powell
12/31/2020, 2:53 AMAdam Powell
12/31/2020, 2:53 AMbirdsofparadise
12/31/2020, 2:53 AMbirdsofparadise
12/31/2020, 2:54 AMAdam Powell
12/31/2020, 2:55 AMAdam Powell
12/31/2020, 2:55 AMAdam Powell
12/31/2020, 2:56 AMAdam Powell
12/31/2020, 2:56 AMbirdsofparadise
12/31/2020, 2:59 AMAdam Powell
12/31/2020, 3:00 AMIan Lake
12/31/2020, 3:04 AMAdam Powell
12/31/2020, 3:05 AMbirdsofparadise
12/31/2020, 3:07 AMIan Lake
12/31/2020, 3:08 AMbirdsofparadise
12/31/2020, 3:08 AMIan Lake
12/31/2020, 3:09 AMAdam Powell
12/31/2020, 3:10 AMbirdsofparadise
12/31/2020, 3:10 AMAdam Powell
12/31/2020, 3:11 AMAdam Powell
12/31/2020, 3:12 AMnavigator.navigate {
SomeOtherComposable(params)
}
from arbitrary event handlers would be very difficult to maintain as an app grows. I'd love to understand more of the perspective you're approaching this frombirdsofparadise
12/31/2020, 4:44 AMnavigator.navigate { SomeOtherComposable(params) }
to navigator.navigate("some/route?id=3")
. The first one is clearer and you get the benefits of the compiler checking the view and route works. The second one while it taps into a central routing system, it's more arbitrary than the first.
1. Having a centralized routing table works for server side development because routing between "views" already has a large level of indirection. Also with a web server theres not often much connection between individual routes. UI Applications routing between views is a direct operation and its often time theres a strong connection between views.
2. Having an explicit "entry" points for a "view" is a must for a large project. This is an area Android has traditionally suffered. The navigation component team has improved this with named generated routes. This has been super helpful.
3. When managing an App with 100 views and roughly 2 entries per view, thats 200 different routes. A views individual route should almost always be stored along side the view itself. This has been done by having static constructors with Fragments or just named constructors for VCs on the iOS side. This isn't always the case, but it is most of the time.
So the current "best practice" with Compose's navigation system is:
1. A individual Compose view includes its possible routes in its own file
2. A module or subset of Compose views collects all the possible routes into a list. You probably include your route manipulation logic here if needed.
3. The app collects all possible modules routes into one master list.
4. You then route via a string path
vs
1. A individual Compose view includes its possible routes in its own file
2. You route by directly using the exposed Compose view routes
Other aspects this improves
1. When figuring out how to route to a view, there is only one source of truth
2. Adding and removing view does not involve editing a high traffic file
3. Removing a view causes a compiler error
I get the process death requirement, I just wish there was a better solution. Thanks ๐Adam Powell
12/31/2020, 5:05 AMAdam Powell
12/31/2020, 5:12 AMbirdsofparadise
12/31/2020, 5:34 AMbirdsofparadise
12/31/2020, 5:35 AMbirdsofparadise
12/31/2020, 5:35 AMbirdsofparadise
12/31/2020, 5:38 AMsimilar that can serialize its captured parameters as a back stack entry rather than a raw composable lambda
That would work, I guess you would serialize a class type which surfaces a the Composable functionAdam Powell
12/31/2020, 5:43 AMAdam Powell
12/31/2020, 5:44 AMbirdsofparadise
12/31/2020, 5:45 AMAdam Powell
12/31/2020, 5:45 AMAdam Powell
12/31/2020, 5:46 AMbirdsofparadise
12/31/2020, 5:46 AMAdam Powell
12/31/2020, 5:46 AMbirdsofparadise
12/31/2020, 5:47 AMAdam Powell
12/31/2020, 5:47 AMAdam Powell
12/31/2020, 5:48 AMAdam Powell
12/31/2020, 5:50 AMbirdsofparadise
12/31/2020, 5:51 AMbirdsofparadise
12/31/2020, 5:51 AMAdam Powell
12/31/2020, 5:51 AMbirdsofparadise
12/31/2020, 5:51 AMAdam Powell
12/31/2020, 5:52 AMbirdsofparadise
12/31/2020, 5:52 AMbirdsofparadise
12/31/2020, 5:52 AMbirdsofparadise
12/31/2020, 5:52 AMAdam Powell
12/31/2020, 5:53 AMAdam Powell
12/31/2020, 5:54 AMbirdsofparadise
12/31/2020, 5:54 AMAdam Powell
12/31/2020, 5:55 AMbirdsofparadise
12/31/2020, 5:56 AMIan Lake
12/31/2020, 6:00 AMIan Lake
12/31/2020, 6:03 AMIan Lake
12/31/2020, 6:08 AMIan Lake
12/31/2020, 6:12 AMColton Idle
12/31/2020, 7:34 PMbirdsofparadise
12/31/2020, 9:10 PMbirdsofparadise
12/31/2020, 9:14 PMSergey Y.
12/31/2020, 9:14 PMbirdsofparadise
12/31/2020, 9:21 PMbirdsofparadise
12/31/2020, 9:21 PMAdam Powell
12/31/2020, 10:20 PMColton Idle
01/01/2021, 3:47 AMSergey Y.
01/01/2021, 1:01 PMwould give you an easy way to trigger itCome on, you are developer, an engineer, 5 min to read official documentation and you are good to go ๐ Sometimes I regret that the official development language is not C++, there is no place for tenderness. Only brutal skills and reading manuals. Ah, modern developers... ๐
Adam Powell
01/01/2021, 4:02 PMColton Idle
01/01/2021, 4:04 PMAdam Powell
01/01/2021, 4:26 PMColton Idle
01/01/2021, 4:31 PMAdam Powell
01/01/2021, 4:38 PMadb shell kill -9
has worked for longer than android studio has existed ๐Adam Powell
01/01/2021, 4:39 PMAdam Powell
01/01/2021, 4:39 PMAdam Powell
01/01/2021, 4:40 PMAdam Powell
01/01/2021, 4:40 PMAdam Powell
01/01/2021, 4:41 PMAdam Powell
01/01/2021, 4:43 PMColton Idle
01/01/2021, 4:43 PMAdam Powell
01/01/2021, 4:44 PMhttp://m.quickmeme.com/img/f5/f5bb63fcd28e68c2305fc6276babf73a7d2417e8ece8901e08e2afe3f328e8ab.jpgโพ
Adam Powell
01/01/2021, 4:45 PMAdam Powell
01/01/2021, 4:46 PM