Skip to content

Releases: zulip/zulip-flutter

v30.0.270

27 Jan 01:04

Choose a tag to compare

30.0.270 (2026-01-26)

Highlights for users

  • Support inline images in message paragraphs, new in Zulip Server 12. (#1913)
  • Dedupe message-list pages on opening a notification. (#1852)
  • Topic-list page stays up to date when a topic is resolved or moved. (#1499)
  • Confirm before marking read across multiple conversations. (#1858)
  • (Android) Allow selecting account when sharing to Zulip. (#1779)
  • Too many other improvements and fixes to describe them all here.

Highlights for developers

  • Merge log: PRs, with fixed issues and user-visible changes.
    • #2048
    • #2020
    • #2038. Fix RTL layout of date in recipient header.
    • #1951: fix #2060, fix #1499. Fixed extra recipient header on case change within topic narrow. Topic-list page stays up to date when a topic is resolved or moved.
    • #2051
    • #1987: fix #1936. Disable image-preview animations when requested in device settings.
    • #2063. Fix RTL layout of scroll-to-bottom button.
    • #1994: fix #1587. Fix cramped layout of emoji picker in "plain text" emoji theme.
    • #2034: fix part of #1798. Clarify behavior on sending or editing in unsubscribed channel.
    • #1999. Show starred-message count in main menu.
    • #2059: fix #1852. Dedupe message-list pages on opening a notification.
    • #1883: fix #1779. Allow selecting account when sharing to Zulip (on Android).
    • #2053
    • #2074. Accept more modern/future notif format.
    • #2068. Flutter upgrade.
    • #2091: fix #2082. (Dev-only change.)
    • #2077.
    • #2069. (Relates to RTL layout, but NFC.)
    • #2033: fix #1986. Fix bug that could cause a message marked unread to appear read.
    • #2084: fix #1798. Further clarify behavior on sending or editing in unsubscribed channel.
    • #2099.
    • #2100.
    • #2067: fix #1913. Support inline images in message paragraphs, new in Zulip Server 12.
    • #2101. Update translations.
    • #2006: fix #1858. Confirm before marking read across multiple conversations.
sha256sum -c <<EOF
e46b3132581280d74624d570d1a53eed17597b708276a9a80a070dea8846f6ce  app-release.apk
a2181b025708553741e05ff798bf49a9ee2d8a3e7f9441e1f3bf86145c94ec1e  app-release.aab
EOF

v30.0.269

22 Dec 21:45

Choose a tag to compare

30.0.269 (2025-12-22)

Highlights for users (since last general release, v30.0.267)

  • Clearer navigation on opening a notification in a different account. (#1210)
  • Autocomplete mentioning a channel, with "#". (PR #1902, toward #124)
  • Show current organization's name and icon atop main menu. (#1037)
  • Many small fixes for layout with right-to-left scripts. (#1245, PR #2005, PR #2007, PR #2010, #1907)
  • Too many other improvements and fixes to describe them all here.

Highlights for developers

  • Merge log: PRs, with fixed issues and user-visible changes.
sha256sum -c <<EOF
c28219f5d2c5d86a0ca4a511685b259e2653f570ba9b6a4b4a1b0da3aac851e4  app-release.apk
a6a780e6ac3dfcb6c27fef52490c57fa535ffc7c11fb7ccff133099cc4d37dbd  app-release.aab
EOF

v30.0.268

22 Dec 21:44

Choose a tag to compare

v30.0.268 Pre-release
Pre-release

30.0.268 (2025-12-19)

This was an alpha-only, Android-only release.

An iOS release from this version was impossible: #2049.

Highlights for users

  • Clearer navigation on opening a notification in a different account. (#1210)
  • Autocomplete mentioning a channel, with "#". (PR #1902, toward #124)
  • Show current organization's name and icon atop main menu. (#1037)
  • Many small fixes for layout with right-to-left scripts. (#1245, PR #2005, PR #2007, PR #2010, #1907)
  • Too many other improvements and fixes to describe them all here.

Highlights for developers

  • New changelog format. See commit 2b7ab49.

  • Merge log: PRs, with fixed issues and user-visible changes.

    • #1976
    • #1978
    • #1979. Fix a small memory leak.
    • #2001: fix #2000. Also Flutter upgrades.
    • #1991: fix #1245. Fix RTL layout for unread-message marker.
    • #1879: fix #1857, fix #1960. Labels and semantics for the main-tabs icons.
    • #1993: fix #1210. Clearer navigation on opening a notification in a different account.
    • #1937: fix #1037. Show current organization's name and icon atop main menu.
    • #1997: fix #2026, fix part of #1088. Fix mismatch in mentions narrow between mark-read button and message list. Show unread counts in main menu.
    • #1988
    • #2024
    • #2023
    • #2009. Flutter and package upgrades.
    • #1983: fix #1981. Accept unknown/future "emojiset" setting values from server.
    • #2005. Fix RTL layout of block quotes.
    • #2007. Fix RTL layout of inline message media.
    • #1947. Friendlier placeholder text in msglist when no messages.
    • #2016. Use Zulip's own "copy" icon for "copy link" button.
    • #2010. Fix RTL layout in reaction buttons.
    • #1880: fix #1685. Very slightly lighter background color in dark theme.
    • #1370: fix #1179. Make whole channel side of recipient header lead to channel on tap.
    • #2015: fix #1907. Flip certain icons in RTL layouts.
    • #1902: fix part of #124. Autocomplete mentioning a channel, with "#".
    • #1968: fix #1961. Clarify semantics on login options.
    • #2027: fix #2003. Show placeholder on topic-list page when no topics.
    • #1998. Tweak design of main-menu buttons.
    • #2044. Update translations.

v30.0.267

07 Nov 05:43

Choose a tag to compare

Highlights for users

  • (Android) Support Android 8. (#1898)
  • (Android) Fix crash on opening unsupported types of images. (#1973)
  • Fill in topic properly on quote-and-reply. (#1469)
  • Too many other improvements and fixes to describe them all here.

Highlights for developers

  • User-visible changes not described above:

    • More error reporting on malformed events or register-queue failure. (#1083, #890)
    • Adjust design of "All channels" page to more resemble "Channels". (#1914)
    • Revise design of empty-page placeholders. (PR #1946)
    • Better handle unavailable image emoji in user status. (PR #1928)
    • Update messages in unsubscribed channels when re-fetched. (PR #1912)
    • Use max_topic_length instead of hardcoded value of 60. (#307)
    • Make settings page scrollable. (#1904)
    • Upgrade Flutter. (PR #1971, fixing #1973)
    • Make unread-count badges and topic-list items larger. (PR #1959)
    • Update translations. (PR #1975)
  • Resolved: #890, #1083, #1898, #1914, PR #1946, PR #1928, PR #1912, #307, #1904, #1973, #1469, PR #1959, PR #1975

sha256sum -c <<EOF
d2584f2dfad901f0d8b83c0d713211a287f400efaeac161d5645b73ecd380096  app-release.apk
4d5c380031a6ac76b5a6fd4fb26faad9fb06de82bd6fe173cab408c86b4b9853  app-release.aab
EOF

v30.0.266

24 Oct 02:04

Choose a tag to compare

30.0.266 (2025-10-23)

Highlights for users

  • (Android) Fix bug causing repeated re-downloads of images. (#1892)
  • Open uploaded files without logging in again. (#1732)
  • (Android) Fix bug in showing certain HEIF images. (#1785)
  • Polls show immediate feedback when you vote. (#1808)

Highlights for developers

  • Two scripts for automating some steps of the release process, tools/bump-version and tools/format-changelog, now work again. (PR #1874, PR #1875)

  • User-visible changes not described above:

    • Use group-based permission to better determine when to show can't-send banner. (#1862)
    • Tone down can't-send banner. (#1870)
    • Use group-based permission to better determine what warning text to show in unsubscribe confirmation dialog. (#1786)
    • Adjust color in toggle thumbs. (PR #1891)
    • Show "#" before channel name in a dialog. (PR #1893)
    • Confirm before unsubscribing, in more cases. (#1878, #1827)
    • Adjust color in inbox unread badges. (PR #1895)
    • Adjust placeholder text for self-DMs. (PR #1876)
    • Show refresh/subscribe banner in some cases on message feed when not subscribed. (PR #1873, toward #1798)
    • Show channel/topic at top of their action sheets. (#1533)
    • Upgrade Flutter and other dependencies. (PR #1935)
    • Handle image previews on Zulip servers using Camo in general. (PR #1933)
    • Update translations. (PR #1881)
  • Resolved: #1862, PR #1885, #1870, #1786, PR #1891, PR #1893, #1878, #1827, #1837, PR #1895, #1808, #1036, PR #1876, PR #1873, PR #1894, #1533, PR #1874, #1732, PR #1922, PR #1875, PR #1926, PR #1923, PR #1935, #1785, #1892, PR #1933, PR #1881

sha256sum -c <<EOF
9a9c5422f48aeac0c5879db06af9f3fa890f2976c1ed900754166ac529c76bb7  app-release.apk
9194509322ca1b3e8bb2c2dde0908f48f54c2d28b07104c7d38ecdbf209b5680  app-release.aab
EOF

v30.0.265

26 Sep 00:48

Choose a tag to compare

30.0.265 (2025-09-25)

(2025-10-14: Built artifacts added; initially were inadvertently omitted)

Highlights for users

  • The app launches with the Zulip account you most recently used, rather than the first one you logged into. (#524)
  • Browse channels you're not subscribed to, and subscribe. (#188)
  • Delete a message completely. (#1548)
  • Too many other improvements and fixes to describe them all here.

Highlights for developers

sha256sum -c <<EOF
9173a00db1212288b5aeba1644cb18de34e92af2807e482f981e7dc8498f9d23  app-release.apk
fc8b018680fd4be1a79881cc6a3febe1b94651573cf1e8addc670540e703ed33  app-release.aab
EOF

v30.0.264

21 Aug 04:23

Choose a tag to compare

30.0.264 (2025-08-20)

Highlights for users (since last mainline release, v30.0.263)

  • (Android) Paste an image into a message, or insert a sticker from your keyboard. (#1173, #419)
  • Autocomplete matches people's names regardless of diacritics. (#237)
  • Show message separated from last after a 10-minute gap. (#1773)
  • Link to channel feed in channel action sheet. (#1705)
  • Too many other improvements and fixes to describe them all here.

Highlights for developers (since last mainline release, v30.0.263)

sha256sum -c <<EOF
c05f12219f3019c8215d3612db1809b40e51decdcd2b5064f90f3b3ca632b016  app-release.apk
1069220a3e268f68cca262d45232c4fd776ee13cd8ded1611d256d03f6c0af55  app-release.aab
EOF

v0.0.34

19 Aug 00:18

Choose a tag to compare

v0.0.34 Pre-release
Pre-release

0.0.34 (2025-08-18)

This is a release from the "beta-prelaunch" branch, with selected changes atop the previous pre-launch beta release 0.0.33.

Highlights for users

Thanks for being a beta tester of the new Zulip app!

This app became the main Zulip mobile app in June 2025, and this beta version is no longer maintained. We recommend uninstalling this beta after switching to the main Zulip app, in order to get the latest features and bug fixes.

Changes in this version from the previous beta:

  • Give a notice on startup that this beta version is no longer maintained, with links to switch to the main Zulip app. (#1603)

Highlights for developers

  • Resolved in this beta branch: #1603
sha256sum -c <<EOF
29e59b9d2102f70c917ab685c298e52be42a2e15a33e323a859ce0b7b5bddb2c  app-release.apk
6ffcc86470c53a89af070d804b00fc1f77f746128e18d9162e3ba3c7ff76bd47  app-release.aab
EOF

v30.0.263

13 Aug 07:27

Choose a tag to compare

30.0.263 (2025-08-12)

Highlights for users

  • (Android) Share to Zulip from other apps. (#53)
  • See read receipts. (#667)
  • Autocomplete mentioning a group. (#233)
  • Fix bug when uploading a file with a non-ASCII name. (#1709)
  • Copy link to a channel or topic. (#1227, #792)
  • Zoom in farther in lightbox. (#1091)
  • Subscribe or unsubscribe to a channel. (#1224)

Highlights for developers

  • User-visible changes not described above:

    • upgrade Flutter (PR #1763)
    • drop "always scrollable" on list of suggested statuses (in caf1ddb; revision to PR #1701, for #198)
    • handle colored text in KaTeX content (#1679)
    • user autocomplete matches on email (#236)
    • semantics on reaction chips; no tooltip; "You" first (41e3d57, b232183, 025b0ce; revision to PR #1700, for #740)
    • various changes to who-reacted feature (in e2c10ae; revision to PR #1700, for #740):
      • show who-reacted button only when there was a reaction
      • fix an edge case in who-reacted sheet: don't re-apply initialReactionType on new store
      • dispose in _ViewReactionsState, fixing potential get-stuck bug
      • align emoji in center of who-reacted header, not start
      • semantics in who-reacted sheet
    • adjust scroll-into-view behavior in who-reacted header (98b94bd; revision to PR #1700, for #740)
    • Cupertino dialogs (#996, PR #1782)
    • mark-channel-read button at top of action sheet (PR #1789)
    • reject login sooner when server too old (PR #1783)
    • translations (PR #1757)
  • Set visualDensity to mobile value on desktop, fixing assert in buttons (PR #1781)

  • Resolved in main: #332, PR #1763, #1227, #792, #198, #1679, #1709, #1091, #236, #233, #740, #996, PR #1781, PR #1782, PR #1789, PR #1783, #1224, PR #1757, #667, #53

sha256sum -c <<EOF
77ec273bd71074aec73e805aaac3ed73e1de65df66305a10bdb4fb25e6b09f22  app-release.apk
ab1c096367a09fa2fad0e4511ab0bc31e15ab8c2d1f82bcc06bc6c12d626c4af  app-release.aab
EOF

v30.0.262

25 Jul 04:07

Choose a tag to compare

30.0.262 (2025-07-24)

This release branch includes some experimental changes not yet merged to the main branch.

Highlights for users

  • Fix "general chat" to show new messages as normal after opening via a notification. (#1717)
  • Set your status emoji and status message. (#198)
  • Fix deactivated users appearing in "New DM" screen. (#1743)
  • Follow your personal setting for 24-hour or 12-hour time format. (#1015)
  • Translation updates. (PR #1726, PR #1750)

Highlights for developers

  • User-visible changes not described above:

    • Avoid showing potentially wrong result if encountering a KaTeX vlist with unexpected inline style properties. (c4503b4; revision to PR #1698, for #46)
    • Fix double-application of negative margin on KaTeX vlist items. (64956b8; revision to PR #1559, for #46)
    • Better semantics on settings radio buttons, for a11y. (#1545)
  • Store and substore refactors: RealmStore; proxy mixins; move more methods to individual substores. (PR #1736)

  • Resolved in main: #1710, #1712, PR #1698, #1717, PR #1559, #46, PR #1719, PR #1726, #197, #1545, PR #1736, #1743, #1015, PR #1750

  • Resolved in the experimental branch:

sha256sum -c <<EOF
96a5ac104a86af57aa222615abc1b679b9477bb702e90da27d543717460daea6  app-release.apk
4141f37157e26527e00cebf75df4a516da04ffbec31302c8141c0b3f2dc456a7  app-release.aab
EOF