Git Product home page Git Product logo

getstream / twitter-clone Goto Github PK

View Code? Open in Web Editor NEW
96.0 7.0 13.0 75.35 MB

Learn how to build a functional Twitter clone using Stream, 100ms, Algolia, RevenueCat and Mux 😎

Home Page: https://getstream.io/resources/projects/twitter-clone/

License: MIT License

Swift 99.68% Shell 0.32%
direct-messaging ios ios-app ios-swift real-time-audio swiftui-app swiftui-demo twitter-clone twitter-clone-app audio-room chat-messing ios-twitter-clone swiftui-twitter-clone 100ms algolia mux revenuecat stream

twitter-clone's Introduction

Build a Twitter Clone With SwiftUI in a Weekend 😎

Build a Twitter Clone With SwiftUI in a Weekend

Eight tutorials aimed at teaching you how to build a functional Twitter clone using APIs and SwiftUI. In this project, we will use Stream for Chat and Activity Feeds, Algolia for search, RevenueCat for subscriptions, 100ms for audio rooms and Mux for video playback.

Header image

Key Features

Partners Main Features Description Preview
Stream Homepage Timeline Feeds Drive social engagement by integrating Stream Feeds and Chat. Stream feeds
100ms Twitter Spaces Integrate live audio streaming capabilities with 100ms to recreate Twitter Spaces. https://www.100ms.live/
Algolia Search & Follow Users Leverage Algolia’s advanced search functionality to help users find friends and connect with one another. Algolia
Mux Media Upload Use Mux to upload and play back videos in your app. Media upload with Mux
RevenueCat Twitter Blue Power your platform’s monetization model by using RevenueCat to integrate in-app purchases and subscriptions. RevenueCat subscription

The following links are the various parts of the tutorial series.

  1. Building the Timeline
  2. Adding Stream Feeds to the Timeline
  3. Enabling Support For Media Tweets and Video Playback
  4. Searching and Following Users
  5. Messaging and DMs
  6. Conversations With Spaces
  7. Twitter Blue and In-app Subscriptions
  8. Brining it all together

Getting Started

Node backend

Please run the Node sample backend from this Git repository: GetStream/stream-node-simple-integration-sample

iOS Frontend

The folder TwitterClone contains the iOS codebase

To get started with it, you need to install Tuist and run tuist generate in the directory TwitterClone. Then open the TwitterClone.xcworkspace file.

Tuist badge

To install Tuist on your system:

Run:

curl -Ls https://install.tuist.io | bash

Fetching external dependencies

When you get freshly cloned this repository or dependencies have been updated. Run:

tuist fetch

Generate and open project files

To generate the Xcode project files and open the project in Xcode, run:

tuist generate

iOS package graph

We work towards a µFramework based packaging system

To generate a fresh graph, in case you updated the project's package structure or dependencies. Run:

tuist graph --skip-test-targets

twitter-clone's People

Contributors

aerickson14 avatar amosgyamfi avatar daemonloki avatar jeroenleenarts avatar khushal87 avatar pawan-100ms avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

twitter-clone's Issues

Create Audio Space

  • List of spaces is synced live (using ChannelListController)
  • Allow to request to speak (baseline is there, just needs to be implemented)
  • 100ms integration not properly tested
  • Stop watching of channel events
  • Handle when app goes to background

Not able to generate project using Tuist

I am new to Tuist and while following your tutorial, I am not able to generate Tuist project using tuist generate command. I am getting error as:

Resolved cache profile 'Development' from Tuist's defaults
No files found at: .../ios/twitter-clone/TwitterClone/Targets/Auth/Resources/**
No files found at: .../ios/twitter-clone/TwitterClone/Targets/Keychain/Resources/**
StreamChatSwiftUI is not a valid configured external dependency for platform ios

Is there any pre-configuration required in order to generate the project? I doubt that manifest file might need a fix. Thanks

-

sorry, disregard this

Create initial timeline view

Timelines are user specific and based on followed users

Let’s have everyone follow a default set of accounts to populate the initial timeline.

Twitter’s onboarding prompts new users to follow at least 5 people so we can take some inspiration from there.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.