Top Related Projects
An Android library that allows you to easily create applications with slide-in menus. You may use it in your Android apps provided that you cite this project and include the license in your app. Thanks!
The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.
Side menu with some categories to choose.
iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure swift.
Simple side/slide menu control for iOS, no code necessary! Lots of customization. Add it to your project in 5 minutes or less.
The idea of ResideMenu is from Dribbble 1 and 2. It has come true and run in iOS devices. iOS ResideMenu This project is the RefsideMenu Android version. The visual effect is partly referred to iOS version of ResideMenu. And thanks to the authors for the above idea and contribution.
Quick Overview
RESideMenu is an iOS library that provides a customizable side menu interface, similar to those found in popular apps like Facebook and Path. It offers smooth animations, gesture-based interactions, and easy integration into existing iOS projects.
Pros
- Simple to implement and customize
- Supports both left and right side menus
- Smooth animations and gesture-based interactions
- Compatible with storyboards and XIBs
Cons
- Not actively maintained (last update was in 2017)
- Limited documentation and examples
- May not be fully compatible with the latest iOS versions
- Lacks some advanced features found in more modern alternatives
Code Examples
- Initialize and present the side menu:
RESideMenu *sideMenu = [[RESideMenu alloc] initWithContentViewController:contentViewController
leftMenuViewController:leftMenuViewController
rightMenuViewController:rightMenuViewController];
self.window.rootViewController = sideMenu;
- Show left or right menu programmatically:
[self.sideMenuViewController presentLeftMenuViewController];
// or
[self.sideMenuViewController presentRightMenuViewController];
- Customize appearance:
sideMenu.backgroundImage = [UIImage imageNamed:@"background.jpg"];
sideMenu.menuPreferredStatusBarStyle = UIStatusBarStyleLightContent;
sideMenu.contentViewShadowColor = [UIColor blackColor];
sideMenu.contentViewShadowOffset = CGSizeMake(0, 0);
sideMenu.contentViewShadowOpacity = 0.6;
sideMenu.contentViewShadowRadius = 12;
sideMenu.contentViewShadowEnabled = YES;
Getting Started
- Add RESideMenu to your project using CocoaPods:
pod 'RESideMenu', '~> 4.0.7'
- Import RESideMenu in your view controller:
#import <RESideMenu/RESideMenu.h>
- Create and present the side menu:
UIViewController *contentVC = [self.storyboard instantiateViewControllerWithIdentifier:@"ContentViewController"];
UIViewController *leftMenuVC = [self.storyboard instantiateViewControllerWithIdentifier:@"LeftMenuViewController"];
UIViewController *rightMenuVC = [self.storyboard instantiateViewControllerWithIdentifier:@"RightMenuViewController"];
RESideMenu *sideMenu = [[RESideMenu alloc] initWithContentViewController:contentVC
leftMenuViewController:leftMenuVC
rightMenuViewController:rightMenuVC];
self.window.rootViewController = sideMenu;
Competitor Comparisons
An Android library that allows you to easily create applications with slide-in menus. You may use it in your Android apps provided that you cite this project and include the license in your app. Thanks!
Pros of SlidingMenu
- More customizable with various animation styles and shadow effects
- Supports both left and right sliding menus
- Includes a built-in ListView for menu items
Cons of SlidingMenu
- Less actively maintained (last update in 2016)
- Slightly more complex implementation due to additional features
- May require more setup time for basic functionality
Code Comparison
RESideMenu:
RESideMenu *sideMenu = [[RESideMenu alloc] initWithContentViewController:contentViewController
leftMenuViewController:leftMenuViewController
rightMenuViewController:rightMenuViewController];
self.window.rootViewController = sideMenu;
SlidingMenu:
SlidingMenu menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setShadowWidthRes(R.dimen.shadow_width);
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
Both libraries offer similar core functionality for creating side menus in mobile applications. RESideMenu is designed for iOS, while SlidingMenu is for Android. RESideMenu provides a simpler setup process and is more recently maintained. SlidingMenu offers more customization options but may require more initial configuration.
The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.
Pros of MaterialDrawer
- More comprehensive and feature-rich, offering a wide range of customization options
- Better integration with Material Design principles and components
- Actively maintained with regular updates and improvements
Cons of MaterialDrawer
- Steeper learning curve due to its extensive feature set
- Potentially larger app size and resource consumption
- May be overkill for simple navigation drawer requirements
Code Comparison
RESideMenu:
RESideMenu *sideMenu = [[RESideMenu alloc] initWithContentViewController:contentViewController
leftMenuViewController:leftMenuViewController
rightMenuViewController:rightMenuViewController];
self.window.rootViewController = sideMenu;
MaterialDrawer:
drawer = DrawerBuilder()
.withActivity(this)
.withToolbar(toolbar)
.addDrawerItems(
PrimaryDrawerItem().withName("Home"),
SecondaryDrawerItem().withName("Settings")
)
.build()
Key Differences
- RESideMenu is written in Objective-C for iOS, while MaterialDrawer is a Kotlin library for Android
- MaterialDrawer offers more customization options and follows Material Design guidelines
- RESideMenu provides a simpler implementation but with fewer features compared to MaterialDrawer
Side menu with some categories to choose.
Pros of Side-Menu.Android
- More visually appealing with smooth animations and customizable design
- Actively maintained with recent updates and bug fixes
- Supports both left and right side menus
Cons of Side-Menu.Android
- Limited to Android platform, while RESideMenu supports iOS
- Slightly more complex implementation compared to RESideMenu
- Fewer customization options for menu behavior
Code Comparison
Side-Menu.Android:
ResideMenu resideMenu = new ResideMenu(this);
resideMenu.setBackground(R.drawable.menu_background);
resideMenu.attachToActivity(this);
resideMenu.addMenuItem(menuItem, ResideMenu.DIRECTION_LEFT);
RESideMenu:
RESideMenu *sideMenu = [[RESideMenu alloc] initWithContentViewController:contentViewController
leftMenuViewController:leftMenuViewController
rightMenuViewController:rightMenuViewController];
self.window.rootViewController = sideMenu;
Both libraries offer simple implementation, but Side-Menu.Android provides more granular control over menu items and appearance. RESideMenu's implementation is more straightforward, especially for setting up the initial menu structure.
iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure swift.
Pros of SlideMenuControllerSwift
- Written in Swift, providing better performance and safety features
- Supports both left and right side menus
- Customizable animation and gesture options
Cons of SlideMenuControllerSwift
- Less mature and potentially less stable than RESideMenu
- Fewer customization options for menu appearance
- Limited documentation compared to RESideMenu
Code Comparison
SlideMenuControllerSwift:
let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftMenuViewController, rightMenuViewController: rightMenuViewController)
self.window?.rootViewController = slideMenuController
self.window?.makeKeyAndVisible()
RESideMenu:
RESideMenu *sideMenuViewController = [[RESideMenu alloc] initWithContentViewController:contentViewController
leftMenuViewController:leftMenuViewController
rightMenuViewController:rightMenuViewController];
self.window.rootViewController = sideMenuViewController;
[self.window makeKeyAndVisible];
Both libraries offer similar functionality for implementing side menus in iOS applications. SlideMenuControllerSwift is written in Swift, which may be preferable for modern iOS development, while RESideMenu is implemented in Objective-C. SlideMenuControllerSwift provides more flexibility with animation and gesture options, but RESideMenu has a larger user base and more extensive documentation. The code snippets show that both libraries have similar initialization processes, with SlideMenuControllerSwift using Swift syntax and RESideMenu using Objective-C syntax.
Simple side/slide menu control for iOS, no code necessary! Lots of customization. Add it to your project in 5 minutes or less.
Pros of SideMenu
- Written in Swift, providing better performance and native iOS integration
- More customizable with various transition styles and menu types
- Actively maintained with regular updates and bug fixes
Cons of SideMenu
- Steeper learning curve due to more configuration options
- May require more setup code for basic implementations
- Potentially larger file size due to additional features
Code Comparison
RESideMenu:
RESideMenu *sideMenu = [[RESideMenu alloc] initWithContentViewController:contentViewController
leftMenuViewController:leftMenuViewController
rightMenuViewController:rightMenuViewController];
self.window.rootViewController = sideMenu;
SideMenu:
let menu = SideMenuNavigationController(rootViewController: YourMenuViewController())
menu.leftSide = true
SideMenuManager.default.leftMenuNavigationController = menu
SideMenuManager.default.addPanGestureToPresent(toView: self.navigationController!.navigationBar)
Summary
SideMenu offers more modern Swift-based implementation with extensive customization options, making it suitable for complex projects. RESideMenu, while simpler to set up, is written in Objective-C and has fewer features. SideMenu is actively maintained, whereas RESideMenu hasn't been updated in years. Choose SideMenu for ongoing support and advanced functionality, or RESideMenu for quick, basic implementations in Objective-C projects.
The idea of ResideMenu is from Dribbble 1 and 2. It has come true and run in iOS devices. iOS ResideMenu This project is the RefsideMenu Android version. The visual effect is partly referred to iOS version of ResideMenu. And thanks to the authors for the above idea and contribution.
Pros of AndroidResideMenu
- Native Android implementation, potentially better performance on Android devices
- Supports both left and right side menus out of the box
- Includes additional customization options like shadow effects and scaling
Cons of AndroidResideMenu
- Limited to Android platform, not suitable for cross-platform development
- Less actively maintained, with fewer recent updates and contributions
- Smaller community and fewer resources available for support
Code Comparison
RESideMenu (Objective-C):
RESideMenu *sideMenu = [[RESideMenu alloc] initWithContentViewController:contentViewController
leftMenuViewController:leftMenuViewController
rightMenuViewController:rightMenuViewController];
self.window.rootViewController = sideMenu;
AndroidResideMenu (Java):
ResideMenu resideMenu = new ResideMenu(this);
resideMenu.setBackground(R.drawable.menu_background);
resideMenu.attachToActivity(this);
resideMenu.setMenuItems(menuItems);
Both libraries offer simple setup, but AndroidResideMenu provides more Android-specific customization options, while RESideMenu focuses on iOS-style implementation with potential for cross-platform use.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
RESideMenu
iOS 7/8 style side menu with parallax effect inspired by Dribbble shots (first and second).
Since version 4.0 you can add menu view controllers on both left and right sides of your content view controller.
Requirements
- Xcode 6 or higher
- Apple LLVM compiler
- iOS 6.0 or higher
- ARC
Demo
Build and run the RESideMenuExample
project in Xcode to see RESideMenu
in action. For storyboards integration demo, build and run RESideMenuStoryboardsExample
.
Installation
CocoaPods
The recommended approach for installating RESideMenu
is via the CocoaPods package manager, as it provides flexible dependency management and dead simple installation.
For best results, it is recommended that you install via CocoaPods >= 0.28.0 using Git >= 1.8.0 installed via Homebrew.
Install CocoaPods if not already available:
$ [sudo] gem install cocoapods
$ pod setup
Change to the directory of your Xcode project:
$ cd /path/to/MyProject
$ touch Podfile
$ edit Podfile
Edit your Podfile and add RESideMenu:
platform :ios, '6.0'
pod 'RESideMenu', '~> 4.0.7'
Install into your Xcode project:
$ pod install
Open your project in Xcode from the .xcworkspace file (not the usual project file)
$ open MyProject.xcworkspace
Please note that if your installation fails, it may be because you are installing with a version of Git lower than CocoaPods is expecting. Please ensure that you are running Git >= 1.8.0 by executing git --version
. You can get a full picture of the installation details by executing pod install --verbose
.
Manual Install
All you need to do is drop RESideMenu
files into your project, and add #include "RESideMenu.h"
to the top of classes that will use it.
Example Usage
In your AppDelegate's - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
create the view controller and assign content and menu view controllers.
// Create content and menu controllers
//
DEMONavigationController *navigationController = [[DEMONavigationController alloc] initWithRootViewController:[[DEMOHomeViewController alloc] init]];
DEMOLeftMenuViewController *leftMenuViewController = [[DEMOLeftMenuViewController alloc] init];
DEMORightMenuViewController *rightMenuViewController = [[DEMORightMenuViewController alloc] init];
// Create side menu controller
//
RESideMenu *sideMenuViewController = [[RESideMenu alloc] initWithContentViewController:navigationController
leftMenuViewController:leftMenuViewController
rightMenuViewController:rightMenuViewController];
sideMenuViewController.backgroundImage = [UIImage imageNamed:@"Stars"];
// Make it a root controller
//
self.window.rootViewController = sideMenuViewController;
Present the menu view controller:
[self.sideMenuViewController presentLeftMenuViewController];
or
[self.sideMenuViewController presentRightMenuViewController];
Switch content view controllers:
#import <RESideMenu/RESideMenu.h>
....
[self.sideMenuViewController setContentViewController:viewController animated:YES];
[self.sideMenuViewController hideMenuViewController];
Storyboards Example
- Create a subclass of
RESideMenu
. In this example we call itDEMORootViewController
. - In the Storyboard designate the root view's owner as
DEMORootViewController
. - Make sure to
#import "RESideMenu.h"
inDEMORootViewController.h
. - Add more view controllers to your Storyboard, and give them identifiers "leftMenuViewController", "rightMenuViewController" and "contentViewController". Note that in the new XCode the identifier is called "Storyboard ID" and can be found in the Identity inspector.
- Add a method
awakeFromNib
toDEMORootViewController.m
with the following code:
- (void)awakeFromNib
{
self.contentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"contentViewController"];
self.leftMenuViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"leftMenuViewController"];
self.rightMenuViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"rightMenuViewController"];
}
Customization
You can customize the following properties of RESideMenu
:
@property (assign, readwrite, nonatomic) NSTimeInterval animationDuration;
@property (strong, readwrite, nonatomic) UIImage *backgroundImage;
@property (assign, readwrite, nonatomic) BOOL panGestureEnabled;
@property (assign, readwrite, nonatomic) BOOL panFromEdge;
@property (assign, readwrite, nonatomic) NSUInteger panMinimumOpenThreshold;
@property (assign, readwrite, nonatomic) BOOL interactivePopGestureRecognizerEnabled;
@property (assign, readwrite, nonatomic) BOOL scaleContentView;
@property (assign, readwrite, nonatomic) BOOL scaleBackgroundImageView;
@property (assign, readwrite, nonatomic) BOOL scaleMenuView;
@property (assign, readwrite, nonatomic) BOOL contentViewShadowEnabled;
@property (assign, readwrite, nonatomic) UIColor *contentViewShadowColor;
@property (assign, readwrite, nonatomic) CGSize contentViewShadowOffset;
@property (assign, readwrite, nonatomic) CGFloat contentViewShadowOpacity;
@property (assign, readwrite, nonatomic) CGFloat contentViewShadowRadius;
@property (assign, readwrite, nonatomic) CGFloat contentViewScaleValue;
@property (assign, readwrite, nonatomic) CGFloat contentViewInLandscapeOffsetCenterX;
@property (assign, readwrite, nonatomic) CGFloat contentViewInPortraitOffsetCenterX;
@property (assign, readwrite, nonatomic) CGFloat parallaxMenuMinimumRelativeValue;
@property (assign, readwrite, nonatomic) CGFloat parallaxMenuMaximumRelativeValue;
@property (assign, readwrite, nonatomic) CGFloat parallaxContentMinimumRelativeValue;
@property (assign, readwrite, nonatomic) CGFloat parallaxContentMaximumRelativeValue;
@property (assign, readwrite, nonatomic) CGAffineTransform menuViewControllerTransformation;
@property (assign, readwrite, nonatomic) BOOL parallaxEnabled;
@property (assign, readwrite, nonatomic) BOOL bouncesHorizontally;
@property (assign, readwrite, nonatomic) UIStatusBarStyle menuPreferredStatusBarStyle;
@property (assign, readwrite, nonatomic) BOOL menuPrefersStatusBarHidden;
If you set a backgroundImage, don't forget to set the Menu View Controller's background color to clear color.
You can implement RESideMenuDelegate
protocol to receive the following messages:
- (void)sideMenu:(RESideMenu *)sideMenu didRecognizePanGesture:(UIPanGestureRecognizer *)recognizer;
- (void)sideMenu:(RESideMenu *)sideMenu willShowMenuViewController:(UIViewController *)menuViewController;
- (void)sideMenu:(RESideMenu *)sideMenu didShowMenuViewController:(UIViewController *)menuViewController;
- (void)sideMenu:(RESideMenu *)sideMenu willHideMenuViewController:(UIViewController *)menuViewController;
- (void)sideMenu:(RESideMenu *)sideMenu didHideMenuViewController:(UIViewController *)menuViewController;
Contact
Roman Efimov
License
RESideMenu is available under the MIT license.
Copyright © 2013 Roman Efimov.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Top Related Projects
An Android library that allows you to easily create applications with slide-in menus. You may use it in your Android apps provided that you cite this project and include the license in your app. Thanks!
The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.
Side menu with some categories to choose.
iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure swift.
Simple side/slide menu control for iOS, no code necessary! Lots of customization. Add it to your project in 5 minutes or less.
The idea of ResideMenu is from Dribbble 1 and 2. It has come true and run in iOS devices. iOS ResideMenu This project is the RefsideMenu Android version. The visual effect is partly referred to iOS version of ResideMenu. And thanks to the authors for the above idea and contribution.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot