The term “full stack devs” seems to be reserved to the web only. What’s worse, as a web dev I’ve always felt pressure to know well both frontend and backend.
On the other hand, I’ve worked with many mobile devs, none of whom I would call a full stack. Typical mobile dev needs another dev (backend dev) to create a full-fledged app.
I still don’t understand why. Let me debunk a few typical answers that I’ve heard but I don’t find true.
Disclaimer 1: this post may look like
Disclaimer 2: I’ve never developed even a half of mobile app, so I’m obviously biased here.
Common refrain 1 – because mobile is harder
I’m not one to measure the difficulties of development branches, but…
If you say “there are hundreds of devices to cover in Android code“…
…I say “there is an almost endless number of possible screen dimensions in the web“.
A typical app has to cover 3 layouts (mobile, tablet, desktop) but it doesn’t mean devs have to implement only those three. Hell no, each of those 3 designs should display properly on every possible width. For example, you have one design for mobile (screen width < 760px) but it should render well for 759px, 758px, 360px etc.
I don’t see how this is easier from Android development, not to mention iOS (which is commonly recognized as
But wait, there’s more. There are different browsers. It could be like 100 of them, but only ~10 are usually important (please remember mobile browsers too).
Browsers not only render HTML differently. Nowadays, browsers are like operating systems. Users add plugins which can interfere with the web app. And you’d better test it against race conditions, because if the user opens the app in multiple tabs…
Enough. The web isn’t really easier than mobile in my eyes.
But that was only the presentation layer. If you tought about more complicated stuff…
Common refrain 2 – I am a full stack, mobile consists of frontend and backend
They say It’s not like on mobile you only present data in
But what if I told you web frontend is the same?
Nowadays you have to think of frontend as a separate app.
I simply cannot see things that you do on mobile and not do on web frontend. With one exception – low-level communication with devices via BT. Fair enough – it requires knowledge about protocols, networking etc.
But to me it doesn’t compensate all the things that you have to know on web frontend. CSS alone is enough to learn for a lifetime.
Common refrain 3 – I am a full stack, I can Firebase
I’m not against Firebase but such tools have limited capabilities. Therefore they are easier by definition.
For example, they contain only NoSQL databases, which are (opinion here) easier only at the surface and cause you much problems as the project scales.
I wouldn’t compare it to the capabilities of modern backend. Typical backend dev (=full stack too) is knowledgable in cloud technologies and bare-metal SQL too. NoSQL databases seem like a toy compared to those. It’s a nice tool for some purposes – but not in general purpose. I wouldn’t call myself a full stack if NoSQL was the only backend I know.
I believe this extrapolates to the whole Firebase and similar tools.
Besides, how many mobile devs actually can use Firebase extensively? I picture them doing 10 clicks from time to time, to add a NoSQL document if it’s needed. If there’s anything more complicated involved – analysis, performance – they usually need help.
Common refrain 4 – There are no full stack web devs, either
Touché. This is close to the truth.
Most full stacks web devs I know are essentially backend developers who aren’t scared of
- former frontend dev knowledgable in backend
- frontend – backend fair 50-50
This means that (some) full stacks are masqueraders. They rattle off frontend tasks only to go back to their backends and databases where they feel safe.
As I said – it’s only some of them.
Let me put it this way. My definition of a full stack dev is someone who can move the project forward alone. It could take them more time, the quality could be worse than with specialists – but they can do it and want to do it.
The lack of full stacks on the mobile has nothing to do with the difficulty of the technologies. Rather it’s the matter of timing and PR.
Historically, there was no separation between front- and backend. As the technology grew, the two become two monsters but somehow the demand was to know both. Possibly because the technology development was imperceptible month by month, but tremendous over the years.
In the meantime, mobile development popped up. Mobile devs kept being smart enough to insist on the narrow specialization of their job.
And pays tell they might have been right.
What is your opinion? I’m really interested!