Skip to content

A minimalist Twitter client iOS app to demo the usage of OAuth 1.0 and the implementation of a modern generics-based networking stack.

Notifications You must be signed in to change notification settings

manishkumar03/LittleBirdie

Repository files navigation

LittleBirdie


A Minimalist Twitter Client for iOS

Overview

LittleBirdie is a minimalist Twitter client app for iOS written in Swift. I wrote this app to explore the usage of OAuth 1.0 and also to experiment with writing a modern networking stack for iOS. The accompanying blog post explains the OAuth 1.0 flow in detail.

Features

  • OAuth 1.0: No third-party libraries; implemented OAuth 1.0 from scratch, including the functions required to compute HMAC-SHA1 hash and derive OAuth signature etc.
  • Modern Networking Stack: A neteworking stack based on generics. The usage of APIRequest, APIResponse and RequestAdapter makes the networking stack flexible and extensible.
  • MVVM Design Pattern: Shows how to use MVVM the right way by using data binding so that any change in model automatically triggers the view refresh.
  • Insightful: Copious amount of comments and an accompanying blog post describe the thought process behind the design choices.

Setup

  1. Register your app on the Twitter Developer Portal.
  2. Obtain the Consumer_Key and the Consumer_Secret for that app.
  3. Decide on a callback scheme. LittleBirdie uses muskitwitter but you can use your own.
  4. Update these values in the TwitterAPIKeys.swift file.

About

A minimalist Twitter client iOS app to demo the usage of OAuth 1.0 and the implementation of a modern generics-based networking stack.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages