Commit b8f85df2 authored by Isabella Russell's avatar Isabella Russell Committed by GitHub

Merge pull request #423 from RocketChat/blog_post_ios_3_1_0

iOS 3.1 release post
parents d5a9cb3c e6c74069
title: "Rocket.Chat iOS 3.1 Released"
- News
date: 2018-09-05 08:00:00
author: Rocket.Chat Team
cover: /images/posts/2018/09/2018-09-05-ios_release-3-1/cover-ios-3-1.jpg
featured: true
ios_release: true
Rocket.Chat is proud to announce a new release of its iOS native application, version 3.1.
Highlights include:
- You now can change your notification preferences per room;
- Swipe actions in a channel, now you can swipe to mark as read, as unread, to favorite and unfavourite and also to hide a chat from the list;
- Keyboard Shortcuts support, press "Command" from an external keyboard to see the list of available commands;
- Japanese language support;
- Many improvements on the list of chats related to performance and animations;
- Added back the search of messages to the room;
- Fixed a bug on theming search bar for emojis;
- Fixed a bug when showing hidden rooms on the share extension;
- General updates and improvements;
### Keyboard Shortcut
This release brings Rocket.Chat for iPad to new levels of productivity for keyboard users. It comes with new shortcuts to alternate between rooms & servers, reply to the latest message, open preferences and more!
<img alt="ios 3.1 new keyboard shortcuts" src="/images/posts/2018/09/2018-09-05-ios_release-3-1/rc-ipad- shortcuts-light.png"/>
### Swipe actions
We are also introducing Swipe Actions with this release, which are a long-awaited feature for some of our users so we are really happy that we managed to include it in time for 3.1.
Now, when swiping right on a conversation on the chats list, you'll be able to mark it as read or unread or you'll be able to hide (close)
it or add it to your favorite conversations section by swiping left.
Although it looks like a simple feature, it ended up being a real challenge for us, firstly because the conversation list can be huge for some users and, as the list grows, it becomes harder to keep everything syncronyzed- from user status to last message previews and any other information that might change on another client and must be reflected seamlessly on the iOS app.
The complexity of the conversations list, the need to support grouping and sorting changes without impacting on scrolling performance or crowding the main thread also proved challenging. Besides those issues, we found out that Apple's swipe actions API is broken and have experienced a lot of bugs such as not handling the swipe animation correctly or not supporting images on the actions for cells with a height lesser than 91 pt.
Despite these challenges, we got there in the end and are pleased with the results!
<img alt="ios 3.1 new swipe actions" src="/images/posts/2018/09/2018-09-05-ios_release-3-1/cropped-swipe-action.png" />
### In OSS we trust!
In order to solve our issues in relation to our large converstions list and the consequent need to support swipe actions properly, we carefully decided to add two new open source dependencies to our project, they're DifferenceKit and SwipeCellKit.
DifferenceKit is an awesome diffing algorithm library for iOS development developed and maintened by [Ryo Aoyama](
The algorithm is based on Paul Heckel's algorithm, and Ryo's implementation appears to be the most accomplished one out there!
Altough it is a young project it has quickly become a popular one and Ryo is very quick to support fixing the issues when they come up, so you should defintely check it out.
SwipeCellKit is another great open source library which was created by [Jeremy Koch]( and is currently maintained by [Mohammad Kurabi](
This library was conceived due to Jeremy's frustration with the limitations of Apple's swipe actions API. You can read the backstory [here](
We decided to choose SwipeCellKit for one very simple (and good) reason: it just works- better than the Apple's API!
This is why we love open source. A huge thanks to the creators and maintainers of their awesome libraries and a special thanks to our illustrious contributor [Samar Sunkaaria](, who handled the implementation of these libraries for us!
That being said, you must update your app to the 3.1 version to experience the new conversations list experience.
### Notification Preferences
Now you can change the notification preferences per room in your iOS app, changing your preferences related to email, desktop and mobile notifications.
<img alt="ios 3.1 new notification preferences" src="/images/posts/2018/09/2018-09-05-ios_release-3-1/notification-prefs.png" />
### Japanese Language Support
We're also very happy to announce that this release introduces Japanese language support (thanks to the contributor [YuuTakahara]( We know there were a lot of people requesting this language and now we fully support it on the iOS native app!
<img alt="ios 3.1 new Japanese language support" src="/images/posts/2018/09/2018-09-05-ios_release-3-1/japanese-lang-support.png" />
### Contributors
_Thank you all for helping us on this release!_
* [@artrmz](
* [@cardoso](
* [@cmassi](
* [@filipealva](
* [@kaiiiiiiiii](
* [@rafaelks](
* [@Sameesunkaria](
* [@soundstorm](
* [@YuuTakahara](
## Release changelog
For a full list of features added and bugs fixed, please see the [Rocket.Chat iOS 3.1.0 release changelog on GitHub](
<a style="background-color:black;color:white;text-decoration:none;padding:4px 6px;font-family:-apple-system, BlinkMacSystemFont, &quot;San Francisco&quot;, &quot;Helvetica Neue&quot;, Helvetica, Ubuntu, Roboto, Noto, &quot;Segoe UI&quot;, Arial, sans-serif;font-size:12px;font-weight:bold;line-height:1.2;display:inline-block;border-radius:3px" href=";utm_campaign=photographer-credit&amp;utm_content=creditBadge" target="_blank" rel="noopener noreferrer" title="Download free do whatever you want high-resolution photos from ian dooley"><span style="display:inline-block;padding:2px 3px"><svg xmlns="" style="height:12px;width:auto;position:relative;vertical-align:middle;top:-1px;fill:white" viewBox="0 0 32 32"><title>unsplash-logo</title><path d="M20.8 18.1c0 2.7-2.2 4.8-4.8 4.8s-4.8-2.1-4.8-4.8c0-2.7 2.2-4.8 4.8-4.8 2.7.1 4.8 2.2 4.8 4.8zm11.2-7.4v14.9c0 2.3-1.9 4.3-4.3 4.3h-23.4c-2.4 0-4.3-1.9-4.3-4.3v-15c0-2.3 1.9-4.3 4.3-4.3h3.7l.8-2.3c.4-1.1 1.7-2 2.9-2h8.6c1.2 0 2.5.9 2.9 2l.8 2.4h3.7c2.4 0 4.3 1.9 4.3 4.3zm-8.6 7.5c0-4.1-3.3-7.5-7.5-7.5-4.1 0-7.5 3.4-7.5 7.5s3.3 7.5 7.5 7.5c4.2-.1 7.5-3.4 7.5-7.5z"></path></svg></span><span style="display:inline-block;padding:2px 3px">ian dooley</span></a>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment