Design a Mobile News App: Personalization, Push, and Offline

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
  • Topic and source preferences
  • Breaking-news push notifications
  • Offline reading of saved or downloaded articles
  • Search
  • Comments and reactions

Architecture

Three pipelines: ingest (publishers send articles), ranking (personalization), delivery (feed + push).

Ingest

Publishers feed articles via:

  • RSS / Atom feeds
  • Direct API (newsroom-side push)
  • News aggregator partnerships

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
  • User’s historical reading behavior
  • Article freshness
  • Article popularity (signals from other users)
  • Source diversity to avoid filter bubbles

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
  • Images downloaded
  • Stored in SQLite + filesystem
  • Render in WebView with offline shell 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
  • Lazy-load images
  • Embedded videos render in native players
  • Reader mode is the default UX in 2026

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
  • Image quality down-tuned on cellular
  • Auto-play video off by default to save data
  • Push frequency capped per user to avoid annoyance

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.

Scroll to Top