For your first question, how "slow" is it? For PowerApps, reading two tables should take no more than 10 seconds. Anything below that time is not considered slow by our standard.
Plus, I'm not sure there is really any method faster than another. "LookUp()", "Filter()" and "Search()" all send network requests, which end up being dependant of your own network connection and speed.
It is still relatively faster for PowerApps to work with Dataverse than with SharePoint list, so that's something.
One thing you maybe can try is, if your table have less than 2000 records, is to store them in a local collection on app start, then work on this collection instead of the dataverse table. This "may" saves time by extracting data locally instead of sending requests, waiting for response and consumming your connector's bandwidth and limits.
As for your second question, this is both an issue of "app design" and "what exactly do you need?". Personnaly, whenever I design a screen for my users, I always keep in mind three points:
- Keep the screen as simple as possible: actions must be limited to a few interactable controls, while information must be displayed in size an place in order of importance
- Organize the screen, create "thematic" container: one example is splitting the screen in three parts with a screen-wide and short header, a thin filter on the left and fill the rest of the screen with the gallery, as you often see on shopping websites.
- Stay consistent with theme and colors: apply the same color for interactable controls, so the user quickly recognize what can be pressed and what is simply for display.
What advice I could give you here is maybe create separate container for each view you need (equipment image, status of project) and new screens for each new actions you want to give to the user (sending notifications, moving product). That way, you'll have a main "view screen" with filters and tabs, and many screens for each action the user will be able to do.
Hope this was helpful to you.