Search code examples
androidfrontendbackend

is offline logic of apps considered backend


Sorry I couldn't come up with a better title but I'm a bit confused what is considered my app's backend.

Frontend handles everything that the user sees.

Consider a that we are building an calculator app with Android.

The views(xml stuff) and the buttons and the listeners bound to them are considered front-end I guess. But on the onClick event we call some methods in a class that does the calculations(no calls to online APIs and such). Something like:

button.onClick{ textView.setText(core.add(a,b)) }

Everything in that expression besides the core.add(a,b) part is considered my front-end based on my understanding and that part is a function that goes to my backend. Even if we don't call to an online server my logics for how the data processing is done should be considered my backend or are there other terms for that?

Is my understanding right. Did I miss anything? Thanks for your time.


Solution

  • My first take is you have a web tech background. Those terms, back-end and front-end are being generally used when an application (even web, mobile, desktop, embedded) is completely or partially depends on another stand-alone application on a server/local. This means that you have two different software, one acts as a provider of data, and there is a type of communication protocol(s) between them. You name it, it can be REST, GraphQL, gRPC so on so forth through any kind of base communication layer.

    When it comes to that calculator example, the terminology, is quite different. Despite there are quite a lot of methods to decouple logic/processing parts of the application from the UI, they are not as separate as what you can see in a web application. They are still running on same process and they don't act independently. For this domain, they are being called models, views and controllers. There are plenty of information over the internet about it. There is also a design pattern called MVC. There are other various design patterns that share the same concepts in other forms.

    Edit: Your assumption on the definition of front-end (Frontend handles everything that the user sees.) is not correct. Front-end is the part of a web application that user directly interacts with. It means that it can still contain view and controller parts internally but they are being called front-end as a whole.