You open two apps that do roughly the same thing. One feels solid and considered. The other feels like somebody's weekend project. Same features, same colours roughly, completely different impression.
The gap is rarely artistic talent. It's a handful of small mechanical things, most of which you can copy without any design background at all.
Consistency does most of the work
If you fix nothing else, fix this.
Amateur interfaces are full of near-misses. Twelve pixels of space here, fourteen there. Four greys that are almost the same grey. Three button styles that differ slightly for no reason. Two typefaces doing the same job.
None of these are noticeable on their own. Together they create a quiet sense that nobody was paying attention, and people read that as "this software might also be careless about my data."
The fix is boring and effective. Decide on a small set of values and refuse to invent new ones.
For spacing, pick something like 4, 8, 16, 24, 32, 48 and use only those numbers. Never 13. Never 27.
For text, four or five sizes total. One for body text, a couple for headings, one small one for labels.
For colour, one main colour, one accent, and a few greys. That's enough for almost any app.
Once those are decided, most design questions stop being questions. How much space goes here? One of six numbers. Which grey? One of three.
Space is the cheapest improvement available
Beginner layouts are usually cramped, because when you're building it feels efficient to fit more in.
Generous space around things does more for perceived quality than any colour or font choice. It's also free and requires no taste.
Two specifics worth knowing. Line height on body text should be around 1.5 to 1.7, because default line spacing is too tight to read comfortably. And lines of text shouldn't run much past 70 or so characters, because past that your eye loses its place jumping back to the left edge.
Those two changes alone make text feel professionally set, and they take about a minute.
Type, without becoming a typography person
Two decisions matter and the rest is fine-tuning.
Body text should be at least 16 pixels. Smaller looks elegant on your laptop and is genuinely hard to read on a phone in daylight.
And there should be obvious jumps between your text sizes. If your heading is 18 and your body is 16, it doesn't read as a heading, it reads like a slightly odd paragraph. Make it 28 or 32 and the hierarchy becomes instant.
Font choice matters less than people think. Your system font is well designed, loads instantly, and looks correct on every device. Plenty of good apps use nothing else.
The details that signal "real"
A few small things that consistently separate finished from unfinished.
Buttons should react when you touch them. A slight colour change, a small press effect. Without it, people tap twice because they're not sure it registered.
Things that take time should say so. Any action over about half a second needs some sign it's working, or people assume it's broken and click again.
Corners and shadows should match. If some cards have rounded corners and others are square, or shadows land at different angles, it looks assembled from pieces.
Errors should be in plain language. "Something went wrong" helps nobody. "We couldn't save that, check your connection" tells them what happened and what to do.
And it needs to work at every screen width, especially the awkward ones. Long words in narrow columns, tables on a phone. Those are where layouts break.
Copy the good ones
The fastest way to improve is to look carefully at apps you find pleasant, then notice the mechanics rather than the vibe.
How much space around a button? How big is the heading compared to the body? How many colours are actually on screen? What happens when a list is empty?
This isn't stealing, it's how everyone learns. Design conventions exist because they work, and following them is what makes an app feel familiar rather than generic.
A quick story. I spent a genuinely unreasonable amount of time on visual polish for my own app. Custom art, careful typography, animations that felt right.
It looked good. I'm still pleased with how it looked. But I was polishing something nobody had used yet, which meant every one of those decisions was a guess about what would matter to a person who didn't exist.
The lesson isn't that design doesn't matter, because it does. It's that there's a level of polish that gets you taken seriously, and it's reached much earlier than you think, and past that point you're spending time that would tell you more if it went into showing the thing to someone.
If you want a starting point for the look
That last line matters. A small set of rules you stick to beats an elaborate system you abandon in week two.
That's Chapter 2. You've got an app that runs, remembers things, knows who people are, and doesn't look like a prototype. Chapter 3 is about giving people a reason to come back, and a way to pay you.
Next: Why people come back (or don't) →
Go deeper: Chapter 12, UI Design and Design Systems and Chapter 13, Branding and Visual Identity