Apps with Graph Data Structure are far too often in broad application types than you think. Long time ago – when I was University – it was marked as good idea – to mix expertise from different humanatory nishes and “connect the dots”. There are tons of applications that use graphs.
Navigation between nodes (bonus – with weights)
Finding the shortest path between too nodes is very common algorithm in geography related applications that need the path between two nodes.
- Maps
- Navigation
- Ticketing Apps between GPS Locations
More about the algorithm – Google Search it: https://www.google.com/search?q=finding+the+shortest+path+in+a+graph.
Google Search
Search itself is a graph application. Long time ago Larry Page and Sergey Brin figured out that Web Sites are nodes in a graph with directed links to others. The weight on the links here is (could be) the amount of receiving connections. Of course there are a lof of custom weights besides the pure linking search engine optimization – so to minimize any illegal or harmful content.
Transition between screens
Similarly to web pages – the possible transitions between screens in mobile application could be visualized as graph. I’ve started creating a mini app that generates just that https://programtom.com/dev/product/app-routing-code-snippets-generator-beta/.
Screen or Component/Widget State
Every Screen in Mobile application has common states https://programtom.com/dev/2023/07/12/what-are-the-flutter-bloc-state-management-common-states/. I’ve learned a lot on this by using the rx_bloc ecosystem. So – the combinations and permutations of all the state form all the nodes in a graph. The links between the nodes are the events – that here does not carry weight per say – but arguments and parameters that mutate the state.
Login Authentication
I’ve written before how – login is one of the trickiest points to get right. There are many ways to improve security with additional authentication variations with help of flags, second level authentications and external services. With the raise of the price of Bitcoin (at the time of writing this 71700$ per coin), probably Web3 will also return.
Because of all the above complexity – there are Services that are focused and offer products strictly on this topic https://connect2id.com/. I’ve made small contribution on this when I’ve made some effort on Client Initiated Backchannel Authentication logic several years ago.
Payment
I’ve written it before in a article about Payments. To execute it right – after every dollar that flows over the internet there are tons of hooks, callbacks, double checks and verifications. All this logic is handled by nodes of servers – some small amount – controlled by you and few – managed by third parties.
Micro Services
Micro Service Architecture are the nowadays norm for backends. Minimizing every single logic to a small module allows:
- putting them in separate containers and scaling what is needed
- wrapping them in even more abstract boxes that are handled serverless – from a developer point of view. There is always a server somewhere – of course.
A colleague of mine works at pliant where they orquestrate the communication with APIs – nodes – in a graph like visualization.
RDBMS
The relational databases that power all ther internet form graph-like relationships between data records. If you’ve used any visual Database Management Tool – you probably know what they are all about:
- Squares of record types
- Links between Tables – based on public and foreign keys
Programming Logic itself
All programming logic itself could be seen/visualized as graph with the help of UML transition diagram. If you have a full state machine – all you need is the logic to be implemented (or generated) in some programming language and executed.
What you Eat
I’ve done for one of my projects a small demo https://kakvoiadesh.com/app/graph/index.jsp?bodyPart=2, demonstrating the interconnectivity of:
- food products
- harmful ingredients
- beneficial ingredients
- body parts
- diseases
Family Tree
Another application that is a graph with nodes and relations – “above”, “below”, and “sideways”. I have an idea to code my version of ths app myself at some point.
Read more theoretical links on Graphs on wikipedia: