q-municate-ios:Q-municate iOS存储库

  • i2_974617
  • 3.2MB
  • zip
  • 0
  • VIP专享
  • 0
  • 2022-05-01 04:37
q-municate-ios:Q-municate iOS存储库
  • q-municate-ios-master
  • Screenshots
  • UserInfoScreen.png
  • SettingsUpdateScreen.png
  • FeedbackScreen.png
  • WelcomeScreen.png
  • ChatScreen.png
  • DialogsListScreen.png
  • GroupChatScreen.png
  • EmailLoginScreen.png
  • NewMessageScreen.png
  • SettingsScreen.png
  • ContactsListScreen.png
  • ContactsSearch.png
  • AudioCallScreens.png
  • VideCallScreens.png
  • ForgotPasswordScreen.png
  • GroupInfoScreen.png
  • README.md
  • .gitignore
# Source code removed from the public access, if you are interested in Q-municate please [contact us](https://communication.quickblox.com/q-municate#rec209621870) ![](https://d2mxuefqeaa7sj.cloudfront.net/s_7BF69620C1058AA11632E980A66E2B94CAE1B1639FF018694E91270C4F3093C2_1517567392151_retina_cover-min.png) Q-municate is an open source code of chat application with full range of communication features on board (such as messaging, file transfer, push notifications, audio/video calls, etc.). We are inspired to give you chat application out of the box. You can customise this application depending on your needs. As always QuickBlox backend is at your service: https://quickblox.com/plans/ Find the source code and more information about Q-municate, as well as installation guide, in our Developers section: https://quickblox.com/developers/q-municate This guide is brought to you from QuickBlox iOS team in order to explain how you can build a communication app on iOS using QuickBlox API. It is a step by step guide designed for all developer levels including beginners as we move from simple to more complex implementation. Depending on your skills and your project requirements you may choose which parts of this guide are to follow. Enjoy and if you need assistance from QuickBlox iOS team feel free to let us know by creating an [issue](https://github.com/QuickBlox/q-municate-ios/issues). Q-municate is a fully fledged chat application using the Quickblox API. <!-- TOC --> - [Q-municate 3.0.0](#q-municate-300) - [1. Requirements & Software Environment](#1-requirements--software-environment) - [2. QuickBlox modules](#2-quickblox-modules) - [3. Features](#3-features) - [4. Screens](#4-screens) - [5. Audio and Video Calls](#5-audio-and-video-calls) - [6. Extensions](#6-extensions) - [7. Code explanation](#7-code-explanation) - [8. How to build your own Chat app](#8-how-to-build-your-own-chat-app) - [9. Contributing](#9-contributing) - [Features](#features) - [Issues](#issues) - [10. License](#10-license) <!-- /TOC --> ## 1. Requirements & Software Environment - [Xcode 10](https://developer.apple.com/xcode/whats-new/) and later. - iOS 10.3 and later. - [QuickBlox iOS SDK](http://quickblox.com/developers/IOS) 2.17.4 and later. - [QuickBlox WebRTC SDK](http://quickblox.com/developers/Sample-webrtc-ios) 2.7.4 and later. - [Bolts](https://github.com/BoltsFramework/Bolts-ObjC#bolts) 1.9.0 version. - [Facebook iOS SDK](https://developers.facebook.com/docs/ios) 5.6.0 version. - [Firebase](https://fabric.io/kits/ios/digits) 6.9.0 version. **1.1** [**QuickBlox iOS SDK**](http://quickblox.com/developers/IOS) [![CocoaPods](https://img.shields.io/cocoapods/v/QuickBlox.svg)](https://cocoapods.org/pods/QuickBlox) [![CocoaPods](https://img.shields.io/cocoapods/dt/QuickBlox.svg)](https://cocoapods.org/pods/QuickBlox) [![CocoaPods](https://img.shields.io/cocoapods/dm/QuickBlox.svg)](https://cocoapods.org/pods/QuickBlox) QuickBlox - Communication & cloud backend platform which brings superpowers to your mobile apps. **1.2 WebRTC** [![CocoaPods](https://img.shields.io/cocoapods/v/Quickblox-WebRTC.svg)](https://cocoapods.org/pods/Quickblox-WebRTC) [![CocoaPods](https://img.shields.io/cocoapods/dt/Quickblox-WebRTC.svg)](https://cocoapods.org/pods/Quickblox-WebRTC) [![CocoaPods](https://img.shields.io/cocoapods/dm/Quickblox-WebRTC.svg)](https://cocoapods.org/pods/Quickblox-WebRTC) Q-municate uses [WebRTC](https://en.wikipedia.org/wiki/WebRTC) for video and audio calling meaning it’s a great cross-platform solution. WebRTC itself it open-source, so you can modify the code as much as you wish, or you can trust the thousands of skilled developers who contributed to it’s development. [The VideoChat code sample](https://github.com/QuickBlox/quickblox-ios-sdk/tree/master/sample-videochat-webrtc) allows you to easily add video calling and audio calling features into your iOS app. Enable a video call function similar to FaceTime or Skype using code sample as a basis. ## 2. QuickBlox modules Q-municate application uses following: - [Authentication](http://quickblox.com/developers/Authentication_and_Authorization) - [Users](http://quickblox.com/developers/Users) - [Chat](http://quickblox.com/developers/Chat) - [Video calling](http://quickblox.com/developers/VideoChat) - [Content](http://quickblox.com/developers/Content) - [Push Notifications](http://quickblox.com/developers/Messages) ## 3. Features It includes such features as: - The App supports both landscape and portrait mode. - The iOS application has English language interface and easy to add localisation. - Three sign-up methods as well as login – [Facebook](https://developers.facebook.com/docs/ios/), [Firebase](https://firebase.google.com/docs/ios/setup) (phone number) and with email/password - Call Kit - Share extension - Siri extension for messaging - View list of all active chat dialogs with message history (private and group chat dialogs) - View, edit and leave group chat dialogs - View and remove private chat dialogs - Search: local dialogs search, contacts search and global users search - Create and participate in private and group dialogs - Managing, updating and removing dialogs - Audio and Video calls (using QuickBlox WebRTC Framework) - Edit own user profile - Reset password and logout - See other users profile - Pull to refresh for dialogs list, contacts list and user info page > Please note all these features are available in open source code, so you can customise your app depending on your needs. ## 4. Screens **4.1 Welcome** ![Figure 4.1 Welcome screen](https://d2mxuefqeaa7sj.cloudfront.net/s_93E53399630C968604A237F0EAB1B99A1C51B88BD402C4A305A46BBA63CA3D8B_1516977157374_welcome.png) Available features: - Connect with Phone – this button allows user to enter the App with his/her phone number using Firebase. If tapped will be shown User Agreement pop-up. - Login by email or social button – By tapping this button action sheet with extra login methods will pop up. There is such methods as Facebook login and login by email/password. - Login with Facebook allows user to enter the App with his/her Facebook credentials. If tapped will be shown User Agreement pop-up. - If App has passed Facebook authorisation successfully, the App will redirect user into chat dialogs list screen. - Login by email/password allows user to enter the App if he/she provides correct and valid email and password. By tapping on this button user will be redirected to the login screen. > Please note, that there is no longer a possibility to sign up user using email and password method. You can only sign up using Phone number and/or Facebook credentials. **4.2 Login with email/password** ![Figure 4.2 Login with email screen](https://d2mxuefqeaa7sj.cloudfront.net/s_93E53399630C968604A237F0EAB1B99A1C51B88BD402C4A305A46BBA63CA3D8B_1516977175593_login_email.png) Available features: - Fields set: - Email – text/numeric/symbolic fields 3 chars min - no border, mandatory (email symbols validation included) - Password – text/numeric/symbolic field 8-40 chars (should contain alphanumeric and punctuation characters only) , mandatory - Buttons: - Back - returns user back to welcome screen - Done - performing login after fields validation using provided email and password - Forgot password - opens forgot password screen **4.3 Forgot password** ![Figure 4.3 Forgot password screen](https://d2mxuefqeaa7sj.cloudfront.net/s_93E53399630C968604A237F0EAB1B99A1C51B88BD402C4A305A46BBA63CA3D8B_1516977185493_forgot_password.png) - Fields set: - Email – text/numeric/symbolic fields 3 chars min - no border, mandatory (email symbols validation included) - Buttons: - Back - returns user back to welcome screen - Reset - performing password reset **4.4 Tab Bar** Tab bar is a main controller of the application. It consists of such pages: - Chat dialogs list (main page) - Contacts lis