iOS client for Tinode in Swift.
Status: beta. Usable and mostly stable but bugs may happen.
Important! This repository contains large files which require a git extension git-lfs.
This is NOT a standalone app, this is just a frontend, a client. It requires a backend. See installation instructions.
- Read server-side API documentation.
- For support, general questions, discussions post to https://groups.google.com/d/forum/tinode.
- For bugs and feature requests open an issue.
- Use https://tinode.co/contact for commercial inquiries.
- One-on-one conversations and group chats.
- Channels with unlimited number of read-only subscribers.
- Unread message counters.
- Push notifications and in-app presence notifications.
- Message status notifications: message delivery to server; received and read notifications.
- Markdown-style formatting of text, e.g. *style* → style.
- Replying and forwarding messages.
- Trusted account badges: verified account, staff, etc.
- Form messages suitable for chatbots.
- Attachments and inline images, voice/audio messages.
- Muting/un-muting conversations and other granular permission management.
- Integration with iOS's stock Contacts.
- Invite contacts to the app by SMS or email.
- Transport Level Security - https/wss.
- Offline mode.
- Previews not generated for videos, links or docs.
- No video messages. No video or audio calling.
- Typing indicators.
- No support for switching between multiple backends.
- Mentions, hashtags.
- End-to-End encryption.
- Google Firebase for push notifications, analytics, and crash reporting. See below.
- Kingfisher for out-of-band image handling.
- MobileVLCKit for voice messages.
- PhoneNumberKit for normalizing phone numbers.
- SQLite.swift for convenience of SQLite use.
- SwiftKeychainWrapper for convenience of Keychain access.
If you want to use the app with your own server and want push notification to work you have to set them up:
- Register at https://firebase.google.com/, set up the project if you have not done so already.
- Download your own config file
GoogleService-Info.plist
and place it in theTinodios/
folder of your copy of the project. The config file contains keys specific to your Firebase/FCM registration. - Copy Google-provided server key to
tinode.conf
, see details here.
The app is currently available in the following languages:
- English (default)
- Chinese (simplified)
- Chinese (traditional)
- Russian
- Spanish
More translations are welcome. See instructions.
- Demo avatars and some other graphics are from https://www.pexels.com/ under CC0 license.
- Some icons are from SF Symbols under Apple license.