/twitter-clone

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

Primary LanguageSwiftMIT LicenseMIT

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