explaingit

mutualmobile/mmdrawercontroller

6,721Objective-CAudience · developerComplexity · 2/5Setup · easy

TLDR

An iOS library that adds a sliding side drawer (hamburger menu) to your app with configurable gestures and animations, supports left and right panels simultaneously, with no need to build the behavior from scratch.

Mindmap

mindmap
  root((MMDrawerController))
    Layout
      Center view
      Left drawer
      Right drawer
    Gestures
      Edge pan
      Nav bar pan
      Tap to close
    Animations
      Built-in styles
      Custom callback
      Percentage-based
    Integration
      CocoaPods install
      View controller setup
      CocoaDocs reference
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add a left-side navigation drawer to an iOS app with a few lines of setup code using CocoaPods.

USE CASE 2

Build an app with both left and right slide-out panels that users open with swipe gestures.

USE CASE 3

Customize the drawer opening animation using the percentage callback to animate opacity, scale, or position.

USE CASE 4

Control whether the user can interact with the content behind an open drawer.

Tech stack

Objective-CiOSCocoaPods

Getting it running

Difficulty · easy Time to first run · 30min

Install via CocoaPods, documentation is available on CocoaDocs.

In plain English

MMDrawerController is an iOS library for adding a side drawer to a mobile app. A side drawer, sometimes called a hamburger menu, is a panel that slides in from the left or right edge of the screen to reveal navigation options or other content. This library handles that sliding panel behavior so iOS developers do not have to build it from scratch. The library supports drawers on both the left and right sides simultaneously. A center view controller sits in the middle, and the left and right drawer view controllers slide in from their respective edges. The developer creates these three view controllers and passes them to the library, which handles the rest of the layout and animation. Gesture controls are configurable. Developers can specify which actions open or close the drawer, such as panning anywhere on the navigation bar, panning from the edge of the screen, tapping the center view, or panning the drawer itself. Custom gesture logic is also supported through a callback block where the developer can write their own rules for when a gesture should be recognized. The visual transition during open and close is also customizable. The library provides a callback that fires as the drawer moves, giving the developer a percentage value they can use to animate things like opacity, scale, or position. The library also ships with several prebuilt animation styles. When a drawer is open, the developer can control whether the user can interact with the content behind it: no interaction, full interaction, or navigation bar only. The library is installable via CocoaPods, a package manager for iOS projects, and documentation is available on CocoaDocs.

Copy-paste prompts

Prompt 1
Help me set up MMDrawerController in my iOS app using CocoaPods and create a basic left navigation drawer.
Prompt 2
How do I configure MMDrawerController to only open the drawer when the user pans from the screen edge, not from anywhere on screen?
Prompt 3
Show me how to add a custom fade animation to MMDrawerController that changes opacity as the drawer slides open.
Prompt 4
I want tapping the center view to close the MMDrawerController drawer, how do I configure that gesture?
Open on GitHub → Explain another repo

← mutualmobile on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.