diff --git a/Ring/Ring.xcodeproj/project.pbxproj b/Ring/Ring.xcodeproj/project.pbxproj
index 570b2d9..bc76aa4 100644
--- a/Ring/Ring.xcodeproj/project.pbxproj
+++ b/Ring/Ring.xcodeproj/project.pbxproj
@@ -1243,13 +1243,13 @@
 			isa = PBXProject;
 			attributes = {
 				LastSwiftUpdateCheck = 0730;
-				LastUpgradeCheck = 0820;
+				LastUpgradeCheck = 0910;
 				ORGANIZATIONNAME = "Savoir-faire Linux";
 				TargetAttributes = {
 					043999F21D1C2D9D00E99CD9 = {
 						CreatedOnToolsVersion = 7.3.1;
 						DevelopmentTeam = MSHYCBXK85;
-						LastSwiftMigration = 0810;
+						LastSwiftMigration = 0910;
 						ProvisioningStyle = Automatic;
 						SystemCapabilities = {
 							com.apple.BackgroundModes = {
@@ -1259,13 +1259,13 @@
 					};
 					04399A0B1D1C2D9D00E99CD9 = {
 						CreatedOnToolsVersion = 7.3.1;
-						LastSwiftMigration = 0810;
+						LastSwiftMigration = 0910;
 						ProvisioningStyle = Automatic;
 						TestTargetID = 043999F21D1C2D9D00E99CD9;
 					};
 					04399A161D1C2D9D00E99CD9 = {
 						CreatedOnToolsVersion = 7.3.1;
-						LastSwiftMigration = 0810;
+						LastSwiftMigration = 0910;
 						ProvisioningStyle = Automatic;
 						TestTargetID = 043999F21D1C2D9D00E99CD9;
 					};
@@ -1585,14 +1585,20 @@
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -1634,14 +1640,20 @@
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -1695,7 +1707,8 @@
 				PROVISIONING_PROFILE_SPECIFIER = "";
 				SWIFT_OBJC_BRIDGING_HEADER = "Ring/Bridging/Ring-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
+				SWIFT_VERSION = 4.0;
 				VALID_ARCHS = arm64;
 			};
 			name = Debug;
@@ -1727,7 +1740,8 @@
 				PROVISIONING_PROFILE = "";
 				PROVISIONING_PROFILE_SPECIFIER = "";
 				SWIFT_OBJC_BRIDGING_HEADER = "Ring/Bridging/Ring-Bridging-Header.h";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
+				SWIFT_VERSION = 4.0;
 				VALID_ARCHS = arm64;
 			};
 			name = Release;
@@ -1747,7 +1761,8 @@
 				PRODUCT_BUNDLE_IDENTIFIER = cx.ring.RingTests;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_OBJC_BRIDGING_HEADER = "RingTests/RingTests-Bridging-Header.h";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = On;
+				SWIFT_VERSION = 4.0;
 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Ring.app/Ring";
 			};
 			name = Debug;
@@ -1767,7 +1782,8 @@
 				PRODUCT_BUNDLE_IDENTIFIER = cx.ring.RingTests;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_OBJC_BRIDGING_HEADER = "RingTests/RingTests-Bridging-Header.h";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = On;
+				SWIFT_VERSION = 4.0;
 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Ring.app/Ring";
 			};
 			name = Release;
@@ -1779,7 +1795,8 @@
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = cx.ring.RingUITest;
 				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = On;
+				SWIFT_VERSION = 4.0;
 				TEST_TARGET_NAME = Ring;
 			};
 			name = Debug;
@@ -1791,7 +1808,8 @@
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = cx.ring.RingUITest;
 				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = On;
+				SWIFT_VERSION = 4.0;
 				TEST_TARGET_NAME = Ring;
 			};
 			name = Release;
@@ -1806,14 +1824,20 @@
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -1873,7 +1897,8 @@
 				PROVISIONING_PROFILE_SPECIFIER = "";
 				SWIFT_OBJC_BRIDGING_HEADER = "Ring/Bridging/Ring-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
+				SWIFT_VERSION = 4.0;
 				VALID_ARCHS = arm64;
 			};
 			name = Development;
@@ -1893,7 +1918,8 @@
 				PRODUCT_BUNDLE_IDENTIFIER = cx.ring.RingTests;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_OBJC_BRIDGING_HEADER = "RingTests/RingTests-Bridging-Header.h";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = On;
+				SWIFT_VERSION = 4.0;
 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Ring.app/Ring";
 			};
 			name = Development;
@@ -1905,7 +1931,8 @@
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = cx.ring.RingUITest;
 				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = On;
+				SWIFT_VERSION = 4.0;
 				TEST_TARGET_NAME = Ring;
 			};
 			name = Development;
diff --git a/Ring/Ring.xcodeproj/xcshareddata/xcschemes/Ring.xcscheme b/Ring/Ring.xcodeproj/xcshareddata/xcschemes/Ring.xcscheme
index 2bfbde2..df974f9 100644
--- a/Ring/Ring.xcodeproj/xcshareddata/xcschemes/Ring.xcscheme
+++ b/Ring/Ring.xcodeproj/xcshareddata/xcschemes/Ring.xcscheme
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0820"
+   LastUpgradeVersion = "0910"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"
diff --git a/Ring/Ring/Constants/Generated/Images.swift b/Ring/Ring/Constants/Generated/Images.swift
index 348eefb..134e648 100644
--- a/Ring/Ring/Constants/Generated/Images.swift
+++ b/Ring/Ring/Constants/Generated/Images.swift
@@ -10,7 +10,6 @@
   typealias Image = UIImage
 #endif
 
-// swiftlint:disable superfluous_disable_command
 // swiftlint:disable file_length
 
 @available(*, deprecated, renamed: "ImageAsset")
@@ -46,29 +45,29 @@
 
 // swiftlint:disable identifier_name line_length nesting type_body_length type_name
 enum Asset {
-  static let accountIcon = ImageAsset(name: "account_icon")
   static let addPerson = ImageAsset(name: "add_person")
   static let backgroundRing = ImageAsset(name: "background_ring")
-  static let contactRequestIcon = ImageAsset(name: "contact_request_icon")
-  static let conversationIcon = ImageAsset(name: "conversation_icon")
-  static let device = ImageAsset(name: "device")
+  static let accountIcon = ImageAsset(name: "account_icon")
   static let icContactPicture = ImageAsset(name: "ic_contact_picture")
-  static let logoRingBeta2Blanc = ImageAsset(name: "logo-ring-beta2-blanc")
   static let settingsIcon = ImageAsset(name: "settings_icon")
+  static let conversationIcon = ImageAsset(name: "conversation_icon")
+  static let contactRequestIcon = ImageAsset(name: "contact_request_icon")
+  static let device = ImageAsset(name: "device")
+  static let logoRingBeta2Blanc = ImageAsset(name: "logo-ring-beta2-blanc")
 
   // swiftlint:disable trailing_comma
   static let allColors: [ColorAsset] = [
   ]
   static let allImages: [ImageAsset] = [
-    accountIcon,
     addPerson,
     backgroundRing,
-    contactRequestIcon,
-    conversationIcon,
-    device,
+    accountIcon,
     icContactPicture,
-    logoRingBeta2Blanc,
     settingsIcon,
+    conversationIcon,
+    contactRequestIcon,
+    device,
+    logoRingBeta2Blanc,
   ]
   // swiftlint:enable trailing_comma
   @available(*, deprecated, renamed: "allImages")
diff --git a/Ring/Ring/Constants/Generated/Storyboards.swift b/Ring/Ring/Constants/Generated/Storyboards.swift
index a9d66db..1e43a4e 100644
--- a/Ring/Ring/Constants/Generated/Storyboards.swift
+++ b/Ring/Ring/Constants/Generated/Storyboards.swift
@@ -4,7 +4,6 @@
 import Foundation
 import UIKit
 
-// swiftlint:disable superfluous_disable_command
 // swiftlint:disable file_length
 
 protocol StoryboardType {
diff --git a/Ring/Ring/Constants/Generated/Strings.swift b/Ring/Ring/Constants/Generated/Strings.swift
index 572d918..91a6f47 100644
--- a/Ring/Ring/Constants/Generated/Strings.swift
+++ b/Ring/Ring/Constants/Generated/Strings.swift
@@ -2,7 +2,6 @@
 
 import Foundation
 
-// swiftlint:disable superfluous_disable_command
 // swiftlint:disable file_length
 
 // swiftlint:disable explicit_type_interface identifier_name line_length nesting type_body_length type_name
diff --git a/Ring/Ring/Coordinators/AppCoordinator.swift b/Ring/Ring/Coordinators/AppCoordinator.swift
index e431c56..6496141 100644
--- a/Ring/Ring/Coordinators/AppCoordinator.swift
+++ b/Ring/Ring/Coordinators/AppCoordinator.swift
@@ -52,7 +52,6 @@
             switch state {
             case .needToOnboard:
                 self.showWalkthrough()
-                break
             }
         }).disposed(by: self.disposeBag)
 
diff --git a/Ring/Ring/EditProfileViewController.swift b/Ring/Ring/EditProfileViewController.swift
index 11efd79..c0eaee5 100644
--- a/Ring/Ring/EditProfileViewController.swift
+++ b/Ring/Ring/EditProfileViewController.swift
@@ -60,7 +60,7 @@
         }).disposed(by: disposeBag)
     }
 
-    func imageTapped(tapGestureRecognizer: UITapGestureRecognizer) {
+    @objc func imageTapped(tapGestureRecognizer: UITapGestureRecognizer) {
 
         let alert = UIAlertController.init(title: nil,
                                            message: nil,
diff --git a/Ring/Ring/Extensions/String+Helpers.swift b/Ring/Ring/Extensions/String+Helpers.swift
index cf4a96f..327971d 100644
--- a/Ring/Ring/Extensions/String+Helpers.swift
+++ b/Ring/Ring/Extensions/String+Helpers.swift
@@ -34,7 +34,7 @@
     }
 
     func toMD5HexString() -> String {
-        let messageData = self.data(using:.utf8)!
+        let messageData = self.data(using: .utf8)!
         var digestData = Data(count: Int(CC_MD5_DIGEST_LENGTH))
 
         _ = digestData.withUnsafeMutableBytes { digestBytes in
diff --git a/Ring/Ring/Extensions/UIColor+Ring.swift b/Ring/Ring/Extensions/UIColor+Ring.swift
index db4ec9c..422ff4c 100644
--- a/Ring/Ring/Extensions/UIColor+Ring.swift
+++ b/Ring/Ring/Extensions/UIColor+Ring.swift
@@ -23,39 +23,39 @@
 
 extension UIColor {
 
-    static let ringMain = UIColor(colorLiteralRed: 58.0/255.0,
+    static let ringMain = UIColor(red: 58.0/255.0,
                                   green: 192.0/255.0,
                                   blue: 210.0/255.0,
                                   alpha: 1.0)
 
-    static let ringSecondary = UIColor(colorLiteralRed: 0.0/255.0,
-                                  green: 76.0/255.0,
-                                  blue: 96.0/255.0,
-                                  alpha: 1.0)
-
-    static let ringMsgCellSent = UIColor(colorLiteralRed: 58.0/255.0,
-                                           green: 192.0/255.0,
-                                           blue: 210.0/255.0,
-                                           alpha: 1.0)
-
-    static let ringMsgCellSentText = UIColor(colorLiteralRed: 255.0/255.0,
-                                         green: 255.0/255.0,
-                                         blue: 255.0/255.0,
-                                         alpha: 1.0)
-
-    static let ringMsgCellReceived = UIColor(colorLiteralRed: 235.0/255.0,
-                                       green: 239.0/255.0,
-                                       blue: 239.0/255.0,
+    static let ringSecondary = UIColor(red: 0.0/255.0,
+                                       green: 76.0/255.0,
+                                       blue: 96.0/255.0,
                                        alpha: 1.0)
 
-    static let ringMsgCellReceivedText = UIColor(colorLiteralRed: 48.0/255.0,
-                                         green: 48.0/255.0,
-                                         blue: 48.0/255.0,
+    static let ringMsgCellSent = UIColor(red: 58.0/255.0,
+                                         green: 192.0/255.0,
+                                         blue: 210.0/255.0,
                                          alpha: 1.0)
 
-    static let ringMsgCellTimeText = UIColor(colorLiteralRed: 128.0/255.0,
-                                                 green: 128.0/255.0,
-                                                 blue: 128.0/255.0,
+    static let ringMsgCellSentText = UIColor(red: 255.0/255.0,
+                                             green: 255.0/255.0,
+                                             blue: 255.0/255.0,
+                                             alpha: 1.0)
+
+    static let ringMsgCellReceived = UIColor(red: 235.0/255.0,
+                                             green: 239.0/255.0,
+                                             blue: 239.0/255.0,
+                                             alpha: 1.0)
+
+    static let ringMsgCellReceivedText = UIColor(red: 48.0/255.0,
+                                                 green: 48.0/255.0,
+                                                 blue: 48.0/255.0,
                                                  alpha: 1.0)
 
+    static let ringMsgCellTimeText = UIColor(red: 128.0/255.0,
+                                             green: 128.0/255.0,
+                                             blue: 128.0/255.0,
+                                             alpha: 1.0)
+
 }
diff --git a/Ring/Ring/Extensions/UIImage+Helpers.swift b/Ring/Ring/Extensions/UIImage+Helpers.swift
index 5a4f242..3e0c72b 100644
--- a/Ring/Ring/Extensions/UIImage+Helpers.swift
+++ b/Ring/Ring/Extensions/UIImage+Helpers.swift
@@ -37,7 +37,7 @@
     }
     // convenience function in UIImage extension to resize a given image
     func convert(toSize size: CGSize, scale: CGFloat) -> UIImage {
-        let imgRect = CGRect(origin: CGPoint(x:0.0, y:0.0), size: size)
+        let imgRect = CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: size)
         UIGraphicsBeginImageContextWithOptions(size, false, scale)
         self.draw(in: imgRect)
         let copied = UIGraphicsGetImageFromCurrentImageContext()
diff --git a/Ring/Ring/Extensions/UILabel+Ring.swift b/Ring/Ring/Extensions/UILabel+Ring.swift
index 106c380..f4ed5a3 100644
--- a/Ring/Ring/Extensions/UILabel+Ring.swift
+++ b/Ring/Ring/Extensions/UILabel+Ring.swift
@@ -25,7 +25,7 @@
         let attrString = NSMutableAttributedString(string: withText)
         let style = NSMutableParagraphStyle()
         style.lineSpacing = withLineSpacing
-        attrString.addAttribute(NSParagraphStyleAttributeName,
+        attrString.addAttribute(NSAttributedStringKey.paragraphStyle,
                                 value: style,
                                 range: NSRange(location: 0, length: withText.utf16.count))
         self.attributedText = attrString
diff --git a/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift b/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
index deacaad..5c8753c 100644
--- a/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
+++ b/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
@@ -68,7 +68,7 @@
         NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(withNotification:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
     }
 
-    func keyboardWillShow(withNotification notification: Notification) {
+    @objc func keyboardWillShow(withNotification notification: Notification) {
 
         let userInfo: Dictionary = notification.userInfo!
         guard let keyboardFrame: NSValue = userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue else { return }
@@ -83,7 +83,7 @@
         self.updateBottomOffset()
     }
 
-    func keyboardWillHide(withNotification notification: Notification) {
+    @objc func keyboardWillHide(withNotification notification: Notification) {
         self.tableView.contentInset.bottom = 0
         self.tableView.scrollIndicatorInsets.bottom = 0
         self.updateBottomOffset()
@@ -396,6 +396,7 @@
 
     }
 
+    // swiftlint:disable cyclomatic_complexity
     func formatCell(withCell cell: MessageCell,
                     cellForRowAt indexPath: IndexPath,
                     withMessageVM messageVM: MessageViewModel) {
@@ -486,6 +487,7 @@
             }
         }
     }
+    // swiftlint:enable cyclomatic_complexity
 }
 
 extension ConversationViewController: UITableViewDataSource {
diff --git a/Ring/Ring/Features/Conversations/SmartList/SmartlistViewController.swift b/Ring/Ring/Features/Conversations/SmartList/SmartlistViewController.swift
index 2fd81bc..30cddf3 100644
--- a/Ring/Ring/Features/Conversations/SmartList/SmartlistViewController.swift
+++ b/Ring/Ring/Features/Conversations/SmartList/SmartlistViewController.swift
@@ -26,7 +26,7 @@
 import SwiftyBeaver
 
 //Constants
-fileprivate struct SmartlistConstants {
+private struct SmartlistConstants {
     static let smartlistRowHeight: CGFloat = 64.0
     static let tableHeaderViewHeight: CGFloat = 24.0
     static let firstSectionHeightForHeader: CGFloat = 31.0 //Compensate the offset due to the label on the top of the tableView
@@ -113,7 +113,7 @@
         self.conversationsTableView.setEditing(editing, animated: true)
     }
 
-    func keyboardWillShow(withNotification notification: Notification) {
+    @objc func keyboardWillShow(withNotification notification: Notification) {
         let userInfo: Dictionary = notification.userInfo!
         guard let keyboardFrame: NSValue = userInfo[UIKeyboardFrameEndUserInfoKey] as? NSValue else { return }
         let keyboardRectangle = keyboardFrame.cgRectValue
@@ -126,7 +126,7 @@
         self.searchResultsTableView.scrollIndicatorInsets.bottom = keyboardHeight - tabBarHeight
     }
 
-    func keyboardWillHide(withNotification notification: Notification) {
+    @objc func keyboardWillHide(withNotification notification: Notification) {
         self.conversationsTableView.contentInset.bottom = 0
         self.searchResultsTableView.contentInset.bottom = 0
 
@@ -221,7 +221,7 @@
         let searchResultsDatasource = RxTableViewSectionedReloadDataSource<ConversationSection>(configureCell: configureCell)
 
         //Allows to delete
-        conversationsDataSource.canEditRowAtIndexPath = { _ in
+        conversationsDataSource.canEditRowAtIndexPath = { _, _  in
             return true
         }
 
@@ -336,7 +336,7 @@
 
 }
 
-extension SmartlistViewController : UITableViewDelegate {
+extension SmartlistViewController: UITableViewDelegate {
 
     func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
 
diff --git a/Ring/Ring/Features/Conversations/SmartList/SmartlistViewModel.swift b/Ring/Ring/Features/Conversations/SmartList/SmartlistViewModel.swift
index 5e642d8..92c16e8 100644
--- a/Ring/Ring/Features/Conversations/SmartList/SmartlistViewModel.swift
+++ b/Ring/Ring/Features/Conversations/SmartList/SmartlistViewModel.swift
@@ -84,7 +84,7 @@
                     return lastMessage1.receivedDate > lastMessage2.receivedDate
                 })
                 .filter({ self.contactsService.contact(withRingId: $0.recipientRingId) != nil
-                    || (!$0.messages.isEmpty && (self.contactsService.contactRequest(withRingId:$0.recipientRingId) == nil))
+                    || (!$0.messages.isEmpty && (self.contactsService.contactRequest(withRingId: $0.recipientRingId) == nil))
                 })
                 .flatMap({ conversationModel in
 
@@ -130,12 +130,12 @@
 
         self.hideNoConversationsMessage = Observable
             .combineLatest( self.conversations, self.searchBarText.asObservable(), resultSelector: { conversations, searchBarText in
-            return !conversations.first!.items.isEmpty || !searchBarText.characters.isEmpty
+            return !conversations.first!.items.isEmpty || !searchBarText.isEmpty
         }).observeOn(MainScheduler.instance)
 
         //Observes if the user is searching
         self.isSearching = searchBarText.asObservable().map({ text in
-            return !text.characters.isEmpty
+            return !text.isEmpty
         }).observeOn(MainScheduler.instance)
 
         //Observes search bar text
diff --git a/Ring/Ring/Features/Me/LinkNewDeviceViewController.storyboard b/Ring/Ring/Features/Me/LinkNewDeviceViewController.storyboard
index f1e3cfc..f172d57 100644
--- a/Ring/Ring/Features/Me/LinkNewDeviceViewController.storyboard
+++ b/Ring/Ring/Features/Me/LinkNewDeviceViewController.storyboard
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="2dj-eG-xeW">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="2dj-eG-xeW">
     <device id="retina4_7" orientation="portrait">
         <adaptation id="fullscreen"/>
     </device>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
@@ -25,7 +25,7 @@
                                 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                                 <edgeInsets key="layoutMargins" top="0.0" left="0.0" bottom="0.0" right="0.0"/>
                             </imageView>
-                            <visualEffectView opaque="NO" alpha="0.59999999999999998" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Tkx-Tz-Dro">
+                            <visualEffectView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Tkx-Tz-Dro">
                                 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                                 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="hhH-X0-zM1">
                                     <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
diff --git a/Ring/Ring/Features/Me/LinkNewDeviceViewController.swift b/Ring/Ring/Features/Me/LinkNewDeviceViewController.swift
index 5778a59..d290d56 100644
--- a/Ring/Ring/Features/Me/LinkNewDeviceViewController.swift
+++ b/Ring/Ring/Features/Me/LinkNewDeviceViewController.swift
@@ -46,21 +46,21 @@
         // initial state
         self.viewModel.isInitialState
             .bind(to: self.titleLable.rx.isHidden)
-            .addDisposableTo(self.disposeBag)
+            .disposed(by: self.disposeBag)
         self.viewModel.isInitialState.bind(to: self.passwordField.rx.isHidden)
-            .addDisposableTo(self.disposeBag)
+            .disposed(by: self.disposeBag)
         self.viewModel.isInitialState.bind(to: self.cancelButton.rx.isHidden)
-            .addDisposableTo(self.disposeBag)
+            .disposed(by: self.disposeBag)
         // error state
         self.viewModel.isErrorState.bind(to: self.errorMessage.rx.isVisible)
-            .addDisposableTo(self.disposeBag)
+            .disposed(by: self.disposeBag)
         // success state
         self.viewModel.isSuccessState
             .bind(to: self.explanationMessage.rx.isVisible)
-            .addDisposableTo(self.disposeBag)
+            .disposed(by: self.disposeBag)
         self.viewModel.isSuccessState
             .bind(to: self.pinLabel.rx.isVisible)
-            .addDisposableTo(self.disposeBag)
+            .disposed(by: self.disposeBag)
 
         self.viewModel.observableState
             .observeOn(MainScheduler.instance)
@@ -77,7 +77,7 @@
                 default:
                     break
                 }
-            }).addDisposableTo(self.disposeBag)
+            }).disposed(by: self.disposeBag)
 
         cancelButton.rx.tap.subscribe(onNext: { [unowned self] in
             self.dismiss(animated: true, completion: nil)
@@ -109,4 +109,3 @@
         self.explanationMessage.text = self.viewModel.explanationMessage
     }
 }
-
diff --git a/Ring/Ring/Features/Me/LinkNewDeviceViewModel.swift b/Ring/Ring/Features/Me/LinkNewDeviceViewModel.swift
index e8a5418..0dca2b5 100644
--- a/Ring/Ring/Features/Me/LinkNewDeviceViewModel.swift
+++ b/Ring/Ring/Features/Me/LinkNewDeviceViewModel.swift
@@ -152,17 +152,15 @@
                             default:
                                 self.generatingState.value = GeneratingPinState.error(error: PinError.defaultError)
                             }
-
                         }
                     })
                     .disposed(by: self.disposeBag)
             } else {
                 self.generatingState.value = GeneratingPinState.error(error: PinError.defaultError)
             }
-        })
-        { error in
+        }, onError: { error in
             self.generatingState.value = GeneratingPinState.error(error: PinError.passwordError)
-        }.addDisposableTo(self.disposeBag)
+        }).disposed(by: self.disposeBag)
     }
 
     func refresh() {
diff --git a/Ring/Ring/Features/Walkthrough/CreateAccount/CreateAccountViewController.swift b/Ring/Ring/Features/Walkthrough/CreateAccount/CreateAccountViewController.swift
index e008e16..927e33f 100644
--- a/Ring/Ring/Features/Walkthrough/CreateAccount/CreateAccountViewController.swift
+++ b/Ring/Ring/Features/Walkthrough/CreateAccount/CreateAccountViewController.swift
@@ -113,13 +113,10 @@
             switch state {
             case .started:
                 self?.showAccountCreationInProgress()
-                break
             case .success:
                 self?.hideAccountCreationHud()
-                break
             default:
                 self?.hideAccountCreationHud()
-                break
             }
         }, onError: { [weak self] (error) in
             self?.hideAccountCreationHud()
diff --git a/Ring/Ring/Features/Walkthrough/CreateAccount/CreateAccountViewModel.swift b/Ring/Ring/Features/Walkthrough/CreateAccount/CreateAccountViewModel.swift
index 5709dc8..94cc381 100644
--- a/Ring/Ring/Features/Walkthrough/CreateAccount/CreateAccountViewModel.swift
+++ b/Ring/Ring/Features/Walkthrough/CreateAccount/CreateAccountViewModel.swift
@@ -280,4 +280,3 @@
                                            password: self.password.value)
     }
 }
-
diff --git a/Ring/Ring/Features/Walkthrough/LinkDevice/LinkDeviceViewModel.swift b/Ring/Ring/Features/Walkthrough/LinkDevice/LinkDeviceViewModel.swift
index 753aa49..bc84677 100644
--- a/Ring/Ring/Features/Walkthrough/LinkDevice/LinkDeviceViewModel.swift
+++ b/Ring/Ring/Features/Walkthrough/LinkDevice/LinkDeviceViewModel.swift
@@ -72,4 +72,3 @@
                                               password: self.password.value)
     }
 }
-
diff --git a/Ring/Ring/Features/Walkthrough/WalkthroughCoordinator.swift b/Ring/Ring/Features/Walkthrough/WalkthroughCoordinator.swift
index 09fcad4..82c341a 100644
--- a/Ring/Ring/Features/Walkthrough/WalkthroughCoordinator.swift
+++ b/Ring/Ring/Features/Walkthrough/WalkthroughCoordinator.swift
@@ -66,13 +66,10 @@
             switch state {
             case .welcomeDone(let walkthroughType):
                 self.showCreateProfile(with: walkthroughType)
-                break
             case .profileCreated(let walkthroughType):
                 self.showFinalStep(with: walkthroughType)
-                break
             case .accountCreated, .deviceLinked:
                 self.rootViewController.dismiss(animated: true, completion: nil)
-                break
             }
         }).disposed(by: self.disposeBag)
 
diff --git a/Ring/Ring/Features/Walkthrough/Welcome/WelcomeViewController.storyboard b/Ring/Ring/Features/Walkthrough/Welcome/WelcomeViewController.storyboard
index 6b1db22..f494b7a 100644
--- a/Ring/Ring/Features/Walkthrough/Welcome/WelcomeViewController.storyboard
+++ b/Ring/Ring/Features/Walkthrough/Welcome/WelcomeViewController.storyboard
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13196" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="ILs-xb-iKr">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="ILs-xb-iKr">
     <device id="retina4_7" orientation="portrait">
         <adaptation id="fullscreen"/>
     </device>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13174"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
         <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
diff --git a/Ring/Ring/Models/AccountCredentialsModel.swift b/Ring/Ring/Models/AccountCredentialsModel.swift
index 4ddfddd..ad49edf 100644
--- a/Ring/Ring/Models/AccountCredentialsModel.swift
+++ b/Ring/Ring/Models/AccountCredentialsModel.swift
@@ -36,9 +36,9 @@
  - keep the credentials of an account.
  */
 class AccountCredentialsModel: Object {
-    dynamic var username: String = ""
-    dynamic var password: String = ""
-    dynamic var accountRealm: String = ""
+    @objc dynamic var username: String = ""
+    @objc dynamic var password: String = ""
+    @objc dynamic var accountRealm: String = ""
 
     /**
      Constructor.
diff --git a/Ring/Ring/Models/ContactModel.swift b/Ring/Ring/Models/ContactModel.swift
index 266c1c9..fe0febd 100644
--- a/Ring/Ring/Models/ContactModel.swift
+++ b/Ring/Ring/Models/ContactModel.swift
@@ -29,7 +29,7 @@
         self.ringId = ringId
     }
 
-    init(withDictionary dictionary: [String : String]) {
+    init(withDictionary dictionary: [String: String]) {
 
         if let ringId = dictionary["id"] {
             self.ringId = ringId
diff --git a/Ring/Ring/Models/ContactRequestModel.swift b/Ring/Ring/Models/ContactRequestModel.swift
index 22d3eb8..d5fe432 100644
--- a/Ring/Ring/Models/ContactRequestModel.swift
+++ b/Ring/Ring/Models/ContactRequestModel.swift
@@ -43,7 +43,7 @@
         self.accountId = accountId
     }
 
-    init(withDictionary dictionary: [String : String], accountId: String) {
+    init(withDictionary dictionary: [String: String], accountId: String) {
 
         if let ringId = dictionary[ContactRequestKey.from.rawValue] {
             self.ringId = ringId
diff --git a/Ring/Ring/Models/ConversationModel.swift b/Ring/Ring/Models/ConversationModel.swift
index 020579b..7cee811 100644
--- a/Ring/Ring/Models/ConversationModel.swift
+++ b/Ring/Ring/Models/ConversationModel.swift
@@ -23,8 +23,8 @@
 class ConversationModel: Object {
 
     let messages = List<MessageModel>()
-    dynamic var recipientRingId: String = ""
-    dynamic var accountId: String = ""
+    @objc dynamic var recipientRingId: String = ""
+    @objc dynamic var accountId: String = ""
 
     convenience init(withRecipientRingId recipientRingId: String, accountId: String) {
         self.init()
diff --git a/Ring/Ring/Models/DeviceModel.swift b/Ring/Ring/Models/DeviceModel.swift
index 5a18407..0e32611 100644
--- a/Ring/Ring/Models/DeviceModel.swift
+++ b/Ring/Ring/Models/DeviceModel.swift
@@ -23,8 +23,8 @@
 
 class DeviceModel: Object {
 
-    dynamic var deviceId = ""
-    dynamic var deviceName: String?
+    @objc dynamic var deviceId = ""
+    @objc dynamic var deviceName: String?
 
     convenience init(withDeviceId deviceId: String, deviceName: String?) {
         self.init()
diff --git a/Ring/Ring/Models/MessageModel.swift b/Ring/Ring/Models/MessageModel.swift
index 1ab7f40..de90b6b 100644
--- a/Ring/Ring/Models/MessageModel.swift
+++ b/Ring/Ring/Models/MessageModel.swift
@@ -22,12 +22,12 @@
 
 class MessageModel: Object {
 
-    dynamic var id: String = ""
-    dynamic var receivedDate: Date = Date()
-    dynamic var content: String = ""
-    dynamic var author: String = ""
-    dynamic var status: MessageStatus = .unknown
-    dynamic var isGenerated: Bool = false
+    @objc dynamic var id: String = ""
+    @objc dynamic var receivedDate: Date = Date()
+    @objc dynamic var content: String = ""
+    @objc dynamic var author: String = ""
+    @objc dynamic var status: MessageStatus = .unknown
+    @objc dynamic var isGenerated: Bool = false
 
     convenience init(withId id: String, receivedDate: Date, content: String, author: String) {
         self.init()
diff --git a/Ring/Ring/Protocols/Coordinator.swift b/Ring/Ring/Protocols/Coordinator.swift
index f77dd97..7a3cea7 100644
--- a/Ring/Ring/Protocols/Coordinator.swift
+++ b/Ring/Ring/Protocols/Coordinator.swift
@@ -86,16 +86,14 @@
         case .present: self.rootViewController.present(viewController,
                                                        animated: animation,
                                                        completion: nil)
-            break
         case .popup:
             viewController.modalPresentationStyle = .overCurrentContext
             viewController.modalTransitionStyle = .coverVertical
             self.rootViewController.present(viewController,
                                             animated: animation,
                                             completion: nil)
-            break
-        case .show: self.rootViewController.show(viewController, sender: nil)
-            break
+        case .show:
+            self.rootViewController.show(viewController, sender: nil)
         case .appear:
             viewController.modalPresentationStyle = .overFullScreen
             viewController.modalTransitionStyle = .crossDissolve
diff --git a/Ring/Ring/Services/ConversationsService.swift b/Ring/Ring/Services/ConversationsService.swift
index 44bb35f..8957177 100644
--- a/Ring/Ring/Services/ConversationsService.swift
+++ b/Ring/Ring/Services/ConversationsService.swift
@@ -125,6 +125,7 @@
         })
     }
 
+    // swiftlint:disable function_parameter_count
     func saveMessage(withId messageId: String,
                      withContent content: String,
                      byAuthor author: String,
@@ -170,6 +171,7 @@
 
         })
     }
+    // swiftlint:enable function_parameter_count
 
     func findConversation(withRingId ringId: String,
                           withAccountId accountId: String) -> ConversationModel? {
@@ -309,23 +311,25 @@
         }).first
 
         //Find message
-        if let message = conversation?.messages.filter({ messages in
+        if let messages: [MessageModel] = conversation?.messages.filter({ (messages) -> Bool in
             return  !messages.id.isEmpty && messages.id == String(messageId) &&
-                    ((status.rawValue > messages.status.rawValue && status != .failure) ||
+                ((status.rawValue > messages.status.rawValue && status != .failure) ||
                     (status == .failure && messages.status == .sending))
-        }).first {
-            self.setMessageStatus(withMessage: message,
-                                  withStatus: status)
-                .subscribe(onCompleted: { [unowned self] in
-                    self.log.info("Message status updated")
-                    var event = ServiceEvent(withEventType: .messageStateChanged)
-                    event.addEventInput(.messageStatus, value: status)
-                    event.addEventInput(.messageId, value: String(messageId))
-                    event.addEventInput(.id, value: accountId)
-                    event.addEventInput(.uri, value: uri)
-                    self.responseStream.onNext(event)
-                })
-                .disposed(by: disposeBag)
+        }) {
+            if let message = messages.first {
+                self.setMessageStatus(withMessage: message,
+                                      withStatus: status)
+                    .subscribe(onCompleted: { [unowned self] in
+                        self.log.info("Message status updated")
+                        var event = ServiceEvent(withEventType: .messageStateChanged)
+                        event.addEventInput(.messageStatus, value: status)
+                        event.addEventInput(.messageId, value: String(messageId))
+                        event.addEventInput(.id, value: accountId)
+                        event.addEventInput(.uri, value: uri)
+                        self.responseStream.onNext(event)
+                    })
+                    .disposed(by: disposeBag)
+            }
         }
 
         log.debug("messageStatusChanged: \(status.rawValue) for: \(messageId) from: \(accountId) to: \(uri)")
