* Updates swiftlint config
* Fixes swiftlint erros and warnings
* Makes ChattoApp compatible with Xcode 8 b2
* Carthage compatibility with Xcode 8 b2
* Updates .travis.yml to use stable image with Xcode 8.1
* Runs the Swift 3 migrator in ChattoApp.
Affects ChattoApp, ChattoAppTests, Chatto and ChattoAdditions. Does not migrate ChattoTests or ChattoAdditionsTests
* Configures Chatto And ChattoAdditions projects to use Swift 3
* Updates .travis.yml to use Xcode 8 and iPhone 7
* Uses flatMap instead of filter and force cast
* Fixes createCollectionViewLayout not being a function
* Removes useless init overrides
* Fix for new implicit unwrapping optional non-propagation rule
* Removes useless casting
* Audits accessor levels in Observable
* Fixes UIControlState.Normal replaced by UIControlState()
* Favours private over fileprivate where possible
* Audits open/public access level
* Removes conditional if for Swift 2
* Removes label from simulateTapOnTextViewForDelegate
* Audits open/public access levels
- Just one capture session per input component.
- Avoids starting/stoping capture during collection reloads, which can make the live camera take longer to capture or even hang.
- Moves creation/destruction of capture session to the background: when opening/closing the input component many times it was resulting in capture start / stop blocking the main thread for some seconds on iOS 8
- Queues updates in the collection view: doing a reloadData right after reloadItemsAtIndexPaths (update video) results in the visible cells not being refreshed
MessageModelProtocol should not require setter for status property.
MessageViewModelProtocol should not require messageModel property.
Both are convenience shortcuts for DemoChatApp and should be removed since they are not used by ChattoAdditions framework.