The Zulip app for Android and iOS.
Branch: master
Clone or download
gnprice utils/tests: Remove crufty test-helper file.
The last call site was removed in 11833a6 a little short of a year
ago, with the explanation "delete StylesProvider-test.js as failing
and not useful".


This concludes a series of 36 commits that added `@flow strict-local`
to the majority of our remaining files that lacked it, fixing a
number of vague or erroneous types along the way.

Before this series (at ac4ea5b), 58 files lacked strict-local:

  $ tools/tsort-modules todo | grep -cv strict-local

Now only 16 of them do:

  $ tools/tsort-modules todo | grep -cv strict-local
Latest commit e60b62c Feb 16, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.tx i18n: Move message files out of src/, into static/. Jan 5, 2019
.vscode gitignore: Fold a subdir's tiny file into the root's. Jul 25, 2018
__e2e__tests__ Fix detox test's for basic realm screen (#1096) Aug 26, 2017
__mocks__ Add tests for message actions. (#1058) Aug 21, 2017
android android build: Cut vacuous blocks from build config. Feb 13, 2019
docs android notif: Rename remaining mentions of GCM, to FCM. Feb 9, 2019
flow-typed redux: Get real types on our reducers and our store. Jan 11, 2019
ios version: Bump version to 22.0.107. Jan 10, 2019
jest dependencies: Upgrade `react-native-fetch-blob` (as `rn-fetch-blob`) Oct 12, 2018
src utils/tests: Remove crufty test-helper file. Feb 16, 2019
static i18n: Sync translations from Transifex. Jan 5, 2019
tools tools/test: Add Android build, when applicable. Feb 13, 2019
vendor/intl lint: Remove almost all indiscriminate `eslint-disable` markers. Dec 3, 2018
.babelrc Upgrade to React Native v0.57.1. Oct 31, 2018
.buckconfig Upgrade React Native, React and Redux to latest versions. Jul 10, 2016
.eslintignore flow: Add test suite for types. Jun 19, 2018
.eslintrc.yaml lint: Sort through rules for React. Dec 11, 2018
.flowconfig flow: Re-enable warnings for unused fixmes. Nov 28, 2018
.gitattributes gitattributes: Add a bit more organization. Sep 10, 2018
.gitignore android: Share a bit of Android Studio configuration. Aug 7, 2018
.npmrc npmrc: Set script-shell to bash. Nov 29, 2018
.prettierignore emoji: Diagnose #3129 as bug in nameToEmojiMap; add tests. Nov 28, 2018
.prettierrc Fix latest prettier styles and remove unused stylesheets Sep 1, 2017
.travis.yml tests: Switch to the new `tools/test` in CI and docs. Dec 3, 2018
.watchmanconfig Initial commit May 8, 2016 tools/fmt: Move `yarn prettier` logic out of package-scripts, too. Dec 4, 2018
LICENSE license: Start a THIRDPARTY file. Aug 24, 2018 docs: Provide public link for iOS beta. Jan 11, 2019
babel.config.js Upgrade to React Native v0.57.1. Oct 31, 2018
index.js flow: Mark all files we can as strict-local, with handy automation. Nov 28, 2018
jsconfig.json VS Code: Fix jsconfig.json. Jun 11, 2018
package.json dev: Remove Reactotron. Dec 19, 2018
wallaby.js Extract userlist sort and filter as selectors, add unit tests and wal… Oct 14, 2016
yarn.lock dev: Remove Reactotron. Dec 19, 2018

Zulip Mobile

Build Status Coverage Status Zulip chat

Zulip Mobile is the official mobile Zulip client, supporting both iOS and Android.

Get the app

Release versions of the app are available here:

You can also help out by running beta versions of the app, and reporting bugs!



To get involved in Zulip Mobile development, please join us on the Zulip community Zulip server, in the #mobile stream. Come say hello, discuss areas to work on, and ask and answer questions.

Using the beta

One important way to contribute is to run beta versions of the app, and report bugs! To get the beta:

Bug reports are welcome either in the #mobile stream or on this GitHub repo.


Zulip Mobile is written in JavaScript with React Native. To get started with the code, follow this doc:

Then see our Contribution Guidelines, and come say hello in the #mobile stream. Issues tagged help wanted are a great starting point for PRs.

Further reading:


Zulip Mobile supersedes two legacy Zulip apps, zulip-ios and zulip-android (more history).


Copyright (c) 2016-2018 Kandra Labs, Inc., and contributors, and 2016 Dropbox, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

The software includes some works released by third parties under other free and open source licenses. Those works are redistributed under the license terms under which the works were received.