Tinodios: Tinode Messaging Client for iOS
iOS client for Tinode in Swift.
Status: beta. Usable and mostly stable but bugs may happen.
Getting support
- 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.
Features
Completed
- Login
- Register new accounts.
- Start new chats.
- Edit personal details.
- Edit chat parameters.
- View the list of active chats
- Send and receive plain text messages one-on-one or in group chats.
- In-app presence notifications.
- Unread message counters.
- Local data persistence.
- Transport Level Security - https/wss.
- Drafty: Markdown-style formatting of text, e.g. *style* → style.
- Viewing attachments and inline images.
- Delivery and received/read indicators for messages (little check marks in messages).
- Muting/un-muting conversations and other permission management.
- Invite contacts to the app by SMS or email.
- Push notifications.
- Attachments and inline images.
Not Done Yet
- Previews not generated for videos, audio, links or docs.
- Typing indicators.
- No support for switching between multiple backends.
- Mentions, hashtags.
- Replying or forwarding messages.
- End-to-End encryption.
Dependencies
SDK
- https://github.com/tidwall/SwiftWebSocket for websocket support
Application
- SQLite.swift for convenience of SQLite use.
- SwiftKeychainWrapper for convenience of Keychain access.
- PhoneNumberKit for normalizing phone numbers.
- Kingfisher for out-of-band image handling.
- Google Firebase for push notifications, analytics, and crash reporting. See below.
Push notifications
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.
Translations
The app is currently available in the following languages:
- English (default)
- Chinese (simplified)
- Chinese (traditional)
- Russian
- Spanish
More translations are welcome. See instructions.
Other
- Demo avatars and some other graphics are from https://www.pexels.com/ under CC0 license.
- Some iOS icons are from https://icons8.com/ under CC BY-ND 3.0 license.