Mobile news apps (Apple News, Google News, Flipboard, NYT app) sit at an unusual intersection of feed personalization, time-sensitive push delivery, offline reading, and ad-supported business models. The interview tests whether you understand the constraints and the engineering tradeoffs.
Functional requirements
- Personalized feed of news articles — each user sees a different ordering based on their interests, not a single global front page. Interviewers want you to separate the ranking layer from the content store so the feed can be recomputed without touching the articles themselves.
- Topic and source preferences — users follow topics (sports, politics) and specific publishers, and can mute sources they dislike. These explicit signals are the strongest and least noisy input to ranking.
- Breaking-news push notifications — the app delivers time-sensitive alerts within seconds, which pushes you toward a fan-out system that can reach millions of devices quickly without falling behind.
- Offline reading of saved or downloaded articles — a user on a commute or a plane expects saved stories to open with no network. That means pre-downloading body text and images, not just caching URLs that fail when offline.
- Search — users look up past coverage of a topic or a specific event. A full-text index over article bodies with filters for date, source, and topic covers most of these queries.
- Comments and reactions — the moderation pipeline matters more than raw throughput here, since news comment sections attract abuse and need both automated filtering and human review.
Architecture
Three pipelines: ingest (publishers send articles), ranking (personalization), delivery (feed + push).
Ingest
Publishers feed articles via:
- RSS / Atom feeds — the lowest-friction path, where you poll each publisher’s feed on an interval. Be ready to talk about polling frequency, deduplicating re-published items, and handling malformed feeds.
- Direct API (newsroom-side push) — large partners push articles to you the moment they publish, cutting the latency that polling adds. This is how breaking news reaches the pipeline fastest.
- News aggregator partnerships — third-party feeds that bundle many small publishers, useful for breadth but requiring extra normalization and careful attribution back to the original source.
Articles are normalized: extract title, author, body (HTML), images, publish time, topic tags. Stored in a content database.
Personalization
Server-side ranking. Inputs:
- User’s explicit topic preferences — the topics and sources the user chose directly, the highest-signal input and the easiest to reason about.
- User’s historical reading behavior — what they opened, how long they read, and what they scrolled past. Interviewers probe how you log these events and how you avoid overfitting to a single viral article.
- Article freshness — news decays fast, so a time-decay factor keeps stale stories from dominating the feed even when they were once popular.
- Article popularity (signals from other users) — click-through and dwell time across the whole user base, which is what you fall back on for cold-start users who have little history.
- Source diversity to avoid filter bubbles — deliberately inject stories from outside the user’s usual sources so the feed doesn’t collapse into one viewpoint. Expect follow-up questions on how you measure and tune this.
Output: a ranked list per user. Cached for sub-second serving.
Push notifications
Two types:
- Editorial breaking news: human-curated, sent to broad audiences
- Personalized: ML-decided per user — “you read X yesterday; here is a follow-up”
Editorial pushes have strong social impact (they wake millions simultaneously). Personalized pushes have lower impact but tighter relevance.
Offline reading
User saves articles for offline. Implementation:
- Article body downloaded as HTML/text — store a self-contained version so rendering needs no network round-trip later.
- Images downloaded — fetch and store images locally, usually at a lower resolution to save space and battery.
- Stored in SQLite + filesystem — metadata and text go in SQLite for querying, while large binaries like images live on the filesystem with paths referenced from the database.
- Render in WebView with offline shell CSS — bundle the styling with the app so a saved article looks right without fetching any external CSS.
Many apps auto-download top stories overnight on Wi-Fi for “morning brief” reading on commute.
Article rendering
Native rendering for performance and consistency:
- Strip publisher CSS; apply your own typography — gives a consistent look across sources and avoids broken layouts from arbitrary publisher markup.
- Lazy-load images — load images as they scroll into view to keep the initial render fast and cut data use.
- Embedded videos render in native players — hand video off to the platform player for hardware decoding and correct fullscreen behavior instead of a web embed.
- Reader mode is the default UX in 2026 — a clean, text-first view stripped of clutter, with the original web layout available as an option for readers who want it.
Live updates
Breaking news scenarios — live blog of an event. Client subscribes to an SSE or WebSocket stream for the article. Updates appear without manual refresh.
Battery and data
- Background sync only on Wi-Fi by default — avoids burning a user’s cellular allowance on pre-fetching they never asked for.
- Image quality down-tuned on cellular — serve smaller image variants when the device is on a metered connection.
- Auto-play video off by default to save data — let users opt in rather than streaming video the moment a card scrolls into view.
- Push frequency capped per user to avoid annoyance — enforce a per-user rate limit so a busy news day doesn’t trigger a flood of alerts and a wave of uninstalls.
Ads
Most news apps are ad-supported. Architecture concerns:
- Ad SDK loaded conditionally based on consent (GDPR, CCPA)
- Ad rendering must not block content rendering
- Track ad viewability for accurate billing
Frequently Asked Questions
How does Apple News handle the difference between subscribed and free content?
Subscribed publications open in full reader; free articles may show only summary with link to publisher. Per-article paywall logic governs UX.
Why are some articles missing from my personalized feed?
Personalization filters can over-prune. Most apps offer a “less personal” view (chronological, by source) as a fallback.
How is breaking news different from regular?
Editorial classification at the publisher; aggregator may amplify based on velocity and corroboration. Push delivered with high priority.
Keep sharpening your system design:
