Telegram-Style Channel List UI in SwiftUI (Learn the Pattern)
A messaging channel list is one of the most-copied screens in apps for a reason: a dense, scannable row that says everything at a glance. Build the pattern, not the brand.
TL;DR
A Telegram-style channel list in SwiftUI is a scrolling list of rows, each with an avatar, the chat or channel name, a one-line preview of the last message, a timestamp, and an unread badge, plus pinned and muted states. Build it from a free VP0 design with a SwiftUI List and clean row layout, and make it adapt to dark mode. Learn the messaging-list pattern, which is a genre, but never copy Telegram's name, logo, or assets; use your own brand.
Want that clean Telegram-style channel and chat list in SwiftUI? The short answer: a scrolling list of dense, scannable rows, each with an avatar, the name, a one-line last-message preview, a timestamp, and an unread badge, plus pinned and muted states. It is one of the most-copied screens in mobile for a good reason: it says a lot at a glance. Build it from a free VP0 design, the free iOS design library for AI builders, and learn the pattern rather than copying the brand.
Who this is for
This is for builders making a messaging app, a community client, or any inbox-style list who want the proven channel-list layout, and who know the pattern is fair game while a specific app’s brand is not.
What makes the row work
The whole screen is really one well-designed row repeated. Each row packs five pieces of information without feeling crowded: an avatar for quick recognition, the chat or channel name, a single truncated line of the most recent message, a right-aligned timestamp, and an unread count badge. Layer on pinned chats at the top, a muted indicator, and swipe actions for mute, pin, and delete. SwiftUI’s List gives you the scrolling, swipe actions, and separators for free, and the Human Interface Guidelines cover the row and list conventions users expect.
| Row element | Job | Get it right |
|---|---|---|
| Avatar | Quick recognition | Image or initials fallback |
| Name and preview | Who and what | One truncated preview line |
| Timestamp | Recency | Relative, right-aligned |
| Unread badge | Attention | Clear count, accent color |
| Swipe actions | Mute, pin, delete | Standard List swipe actions |
Build it free with a VP0 design
Pick a chat-list or messaging design from VP0, copy its link, and prompt your AI builder:
Rebuild this VP0 chat-list design in SwiftUI: [paste VP0 link]. Use a List of rows with an avatar, name, one-line last-message preview, relative timestamp, and unread badge, plus pinned and muted states and swipe actions for mute, pin, and delete. Use semantic colors for dark mode, and use my own brand, not any real app’s name or assets.
Messaging is massive: Telegram has reported more than 900,000,000 monthly active users, which is why its list design is so widely referenced, often as a Telegram Mini App built on the Telegram Mini Apps platform. For neighboring patterns, see a Notcoin-style tap-to-earn game UI, a Hamster Kombat-style tap-to-earn UI, an AI chat streaming UI in SwiftUI, and the gesture craft in dating-app swipe UI components. To round out a game suite, see a chess board UI kit in React Native.
Learn the pattern, keep it original
The line is the same as for any recognizable app. The messaging channel-list layout is a genre, like a settings screen or a feed, and you are free to build in it. Telegram’s name, logo, color identity, and assets are not yours to take. Use your own brand, your own icon, your own colors, and an original name. Build the pattern well, make it adapt to dark mode, and ship something that is recognizably good without being a copy.
Common mistakes
The first mistake is copying Telegram’s name, logo, or exact look instead of learning the pattern. The second is an overcrowded row that sacrifices the at-a-glance scannability. The third is hardcoded colors that break in dark mode. The fourth is missing the unread, pinned, and muted states that make the list useful. The fifth is paying for a chat-list kit when a free VP0 design plus a SwiftUI List does it.
Key takeaways
- A channel list is one dense, scannable row repeated.
- Pack avatar, name, preview, time, and unread badge without crowding.
- Use a SwiftUI List for scrolling, swipe actions, and separators.
- Adapt to dark mode with semantic colors.
- Learn the pattern, use your own brand, and build it free from a VP0 design.
Frequently asked questions
How do I build a Telegram-style channel list in SwiftUI? Use a List of rows with an avatar, name, one-line preview, timestamp, and unread badge, plus pinned and muted states and swipe actions, adapting to dark mode.
What is the safest way to build a chat list with Claude Code or Cursor? Learn the pattern from a free VP0 design with your own brand, build the row with avatar, preview, time, and badge, and never copy Telegram’s name or assets.
Can VP0 provide a free SwiftUI or React Native template for a chat list? Yes. VP0 is a free iOS design library; pick a chat-list design and your AI tool rebuilds the rows, badges, and swipe actions at no cost.
Is it legal to clone Telegram’s UI? You can build a messaging channel-list UI, since the pattern is a genre, but Telegram’s name, logo, and assets are protected, so use your own brand and original assets.
Frequently asked questions
How do I build a Telegram-style channel list in SwiftUI?
Use a SwiftUI List of rows, each showing an avatar, the chat or channel name, a one-line last-message preview, a timestamp, and an unread badge. Add pinned and muted states, support swipe actions, and make the row adapt to dark mode. Build it from a free VP0 design with your own brand.
What is the safest way to build a chat list with Claude Code or Cursor?
Learn the pattern, not the brand. Start from a free VP0 design, build the row with an avatar, preview, time, and unread badge, and never copy Telegram's name, logo, or assets. Use semantic colors for dark mode and add swipe actions for mute, pin, and delete.
Can VP0 provide a free SwiftUI or React Native template for a chat list?
Yes. VP0 is a free iOS design library for AI builders. Pick a chat-list or messaging design, copy its link, and your AI tool rebuilds the rows, badges, and swipe actions at no cost.
Is it legal to clone Telegram's UI?
You can build a messaging channel-list UI, since the pattern is a common genre, but Telegram's name, logo, and brand assets are protected, so do not copy them. Use your own brand and original assets, and treat Telegram as a reference for the layout pattern only.
Part of the Web3, Telegram Mini-Apps & Crypto UI hub. Browse all VP0 topics →
Keep reading
Hamster Kombat-Style Tap-to-Earn UI in React Native
Build a tap-to-earn clicker UI like Hamster Kombat in React Native: a tap target, a balance, energy, and upgrade cards, from a free VP0 design.
Notcoin-Style Tap-to-Earn Game UI in React Native
Build a tap-to-earn game UI like Notcoin in React Native: a big tap target, a points counter, energy, and upgrades, from a free VP0 design.
Free SwiftUI Chat Template (Build It Right)
Build a free chat UI in SwiftUI: a message thread, bubbles, an input bar, and real-time updates, from a free VP0 design. The patterns that make it solid.
Telegram Clone UI Kit in SwiftUI, Free
Want a Telegram clone UI kit in SwiftUI? Clone the chat pattern from a free template and build clean code with Claude Code or Cursor. The legal way.
Live Audio Room UI in SwiftUI (Learn the Clubhouse Pattern)
Build a live audio room UI in SwiftUI: a stage of speakers, a listening audience, and raise-to-speak, from a free VP0 design. Moderate from day one.
Locket-Style Photo Widget in SwiftUI (Learn the Pattern)
Build a Locket-style photo widget in SwiftUI with WidgetKit: a friend's latest photo on your Home Screen, from a free VP0 design. Learn the pattern, respect privacy.