Top Related Projects
:octocat: RAMAnimatedTabBarController is a Swift UI module library for adding animation to iOS tabbar items and icons. iOS library made by @Ramotion
Animated side menu with customizable UI
Folding Tab Bar and Tab Bar Controller
:octocat: AdaptiveController is a 'Progressive Reduction' Swift UI module for adding custom states to Native or Custom iOS UI elements. Swift UI component by @Ramotion
:octocat: PaperOnboarding is a material design UI slider. Swift UI library by @Ramotion
:octocat: ⭕️ CircleMenu is a simple, elegant UI menu with a circular layout and material design animations. Swift UI library made by @Ramotion
Quick Overview
Bubble Icon Tabbar is a custom tab bar component for iOS applications, created by Cuberto. It features a unique and visually appealing animation where icons transform into bubbles when selected, providing a playful and engaging user interface element for navigation.
Pros
- Visually appealing and unique animation that enhances user experience
- Customizable appearance to match app design
- Smooth and fluid transitions between tab selections
- Easy integration into existing iOS projects
Cons
- Limited to iOS platform, not available for Android or web applications
- May not fit all app designs or user interface guidelines
- Potential performance impact on older devices due to animations
- Requires custom implementation, not a standard UIKit component
Code Examples
- Initializing the BubbleTabBar:
let tabBar = BubbleTabBar(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 65))
view.addSubview(tabBar)
- Adding items to the tab bar:
let item1 = BubbleTabBarItem(image: UIImage(named: "home"), title: "Home")
let item2 = BubbleTabBarItem(image: UIImage(named: "search"), title: "Search")
tabBar.items = [item1, item2]
- Customizing the appearance:
tabBar.backgroundColor = .white
tabBar.tintColor = .blue
tabBar.unselectedItemTintColor = .gray
- Handling tab selection:
tabBar.delegate = self
// In the delegate method
func bubbleTabBar(_ bubbleTabBar: BubbleTabBar, didSelectItemAt index: Int) {
print("Selected tab at index: \(index)")
}
Getting Started
- Add the BubbleTabBar files to your Xcode project.
- Import the module in your view controller:
import BubbleTabBar
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let tabBar = BubbleTabBar(frame: CGRect(x: 0, y: view.frame.height - 65, width: view.frame.width, height: 65))
view.addSubview(tabBar)
let item1 = BubbleTabBarItem(image: UIImage(named: "home"), title: "Home")
let item2 = BubbleTabBarItem(image: UIImage(named: "search"), title: "Search")
tabBar.items = [item1, item2]
tabBar.delegate = self
}
}
extension ViewController: BubbleTabBarDelegate {
func bubbleTabBar(_ bubbleTabBar: BubbleTabBar, didSelectItemAt index: Int) {
// Handle tab selection
}
}
Competitor Comparisons
:octocat: RAMAnimatedTabBarController is a Swift UI module library for adding animation to iOS tabbar items and icons. iOS library made by @Ramotion
Pros of animated-tab-bar
- More customizable animation options
- Supports both Swift and Objective-C
- Larger community and more frequent updates
Cons of animated-tab-bar
- Steeper learning curve due to more complex implementation
- Requires more setup code compared to bubble-icon-tabbar
Code Comparison
animated-tab-bar:
let tabBar = RAMAnimatedTabBarController()
let item1 = RAMAnimatedTabBarItem(title: "Home", image: UIImage(named: "home"), tag: 1)
item1.animation = RAMBounceAnimation()
tabBar.viewControllers = [homeVC]
tabBar.animatedItems = [item1]
bubble-icon-tabbar:
let tabBar = BubbleTabBar()
let item1 = BubbleTabBarItem(image: UIImage(named: "home"), title: "Home")
tabBar.items = [item1]
tabBar.delegate = self
Both libraries offer unique tab bar animations for iOS applications. animated-tab-bar provides more customization options and supports multiple programming languages, but it may require more setup and has a steeper learning curve. bubble-icon-tabbar, on the other hand, offers a simpler implementation with a focus on the bubble animation effect. The choice between the two depends on the specific project requirements and the developer's preference for customization versus ease of use.
Animated side menu with customizable UI
Pros of Side-Menu.iOS
- Offers a customizable side menu with smooth animations
- Provides a more traditional navigation pattern familiar to many users
- Allows for more menu items and complex hierarchies
Cons of Side-Menu.iOS
- Takes up more screen real estate when open
- May require additional user interaction to access menu items
- Less suitable for apps with only a few main sections
Code Comparison
Side-Menu.iOS:
let menuLeftNavigationController = UISideMenuNavigationController(rootViewController: YourViewController)
SideMenuManager.default.leftMenuNavigationController = menuLeftNavigationController
SideMenuManager.default.addPanGestureToPresent(toView: self.navigationController!.navigationBar)
SideMenuManager.default.addScreenEdgePanGesturesToPresent(toView: self.navigationController!.view)
bubble-icon-tabbar:
let tabBar = BubbleTabBar()
tabBar.dataSource = self
tabBar.delegate = self
view.addSubview(tabBar)
The Side-Menu.iOS code focuses on setting up a side menu with navigation controllers and gesture recognizers, while bubble-icon-tabbar implements a custom tab bar with a data source and delegate pattern. Side-Menu.iOS requires more setup code but offers more customization options, whereas bubble-icon-tabbar provides a simpler implementation for basic tab-based navigation.
Folding Tab Bar and Tab Bar Controller
Pros of FoldingTabBar.iOS
- More visually striking and unique animation effect
- Offers customizable color schemes and icons
- Provides a compact view option for additional space-saving
Cons of FoldingTabBar.iOS
- Less frequently updated (last update in 2017)
- More complex implementation due to its advanced animation features
- Limited to iOS platform only
Code Comparison
FoldingTabBar.iOS:
let tabBarController = YALFoldingTabBarController()
tabBarController.viewControllers = [firstViewController, secondViewController]
tabBarController.leftBarItems = [firstItem, secondItem]
tabBarController.rightBarItems = [thirdItem, fourthItem]
bubble-icon-tabbar:
let tabBar = BubbleTabBar()
tabBar.dataSource = self
tabBar.delegate = self
view.addSubview(tabBar)
FoldingTabBar.iOS offers a more elaborate setup with separate left and right bar items, while bubble-icon-tabbar provides a simpler implementation with a data source and delegate pattern. The FoldingTabBar.iOS code snippet demonstrates its unique folding animation feature, whereas bubble-icon-tabbar focuses on a clean, bubble-style interface.
Both libraries aim to enhance the standard tab bar experience, but FoldingTabBar.iOS offers more visual flair at the cost of complexity, while bubble-icon-tabbar provides a more straightforward, modern approach with broader platform support and more recent updates.
:octocat: AdaptiveController is a 'Progressive Reduction' Swift UI module for adding custom states to Native or Custom iOS UI elements. Swift UI component by @Ramotion
Pros of adaptive-tab-bar
- More customizable with adaptive icons and colors based on user interactions
- Supports both Swift and Objective-C
- Includes a demo app for easy implementation and testing
Cons of adaptive-tab-bar
- Less recent updates and potentially outdated for newer iOS versions
- More complex implementation due to additional features
- Requires more setup and configuration
Code Comparison
adaptive-tab-bar:
let tabBarItem = RAMAnimatedTabBarItem(title: "Home", image: UIImage(named: "Home"), selectedImage: UIImage(named: "Home_selected"))
tabBarItem.animation = RAMBounceAnimation()
bubble-icon-tabbar:
let tabBar = BubbleTabBar()
tabBar.dataSource = self
tabBar.delegate = self
The adaptive-tab-bar code shows more detailed configuration for individual tab bar items, including animations. The bubble-icon-tabbar code is simpler, focusing on setting up the tab bar itself with data source and delegate.
adaptive-tab-bar offers more built-in customization options, while bubble-icon-tabbar provides a cleaner, more modern interface with a unique bubble animation effect. bubble-icon-tabbar is more recently updated and likely better suited for current iOS development, but may offer fewer out-of-the-box customization options compared to adaptive-tab-bar.
:octocat: PaperOnboarding is a material design UI slider. Swift UI library by @Ramotion
Pros of paper-onboarding
- Offers a more comprehensive onboarding experience with multiple screens and transitions
- Provides customizable animations and visual effects for a polished user experience
- Supports both Swift and Objective-C, making it versatile for iOS developers
Cons of paper-onboarding
- More complex implementation compared to bubble-icon-tabbar's simpler tab bar approach
- Requires more setup and configuration to achieve desired onboarding flow
- May be overkill for apps that only need a basic navigation system
Code Comparison
paper-onboarding:
let onboarding = PaperOnboarding()
onboarding.dataSource = self
onboarding.delegate = self
view.addSubview(onboarding)
bubble-icon-tabbar:
let tabBar = BubbleTabBar()
tabBar.delegate = self
tabBar.dataSource = self
view.addSubview(tabBar)
Both libraries use similar patterns for setup, but paper-onboarding is focused on creating an onboarding experience, while bubble-icon-tabbar is designed for navigation. The implementation complexity reflects their different purposes, with paper-onboarding potentially requiring more configuration to achieve the desired onboarding flow.
:octocat: ⭕️ CircleMenu is a simple, elegant UI menu with a circular layout and material design animations. Swift UI library made by @Ramotion
Pros of circle-menu
- Offers a unique circular menu design, providing a visually appealing and interactive user experience
- Supports customizable animations and transitions for menu items
- Includes built-in support for various icon libraries and custom icons
Cons of circle-menu
- May require more screen space compared to the compact bubble-icon-tabbar
- Could be less intuitive for users accustomed to traditional tab bar layouts
- Potentially more complex to implement and customize for specific use cases
Code Comparison
bubble-icon-tabbar:
let tabBarController = BubbleTabBarController()
tabBarController.viewControllers = [firstVC, secondVC, thirdVC]
tabBarController.tabBar.tintColor = .systemBlue
circle-menu:
let menuButton = CircleMenu(
frame: CGRect(x: 200, y: 200, width: 50, height: 50),
normalIcon:"icon_menu",
selectedIcon:"icon_close",
buttonsCount: 4,
duration: 4,
distance: 120)
menuButton.delegate = self
view.addSubview(menuButton)
Both libraries offer unique approaches to navigation and menu design in iOS applications. bubble-icon-tabbar provides a more traditional tab bar experience with added visual flair, while circle-menu introduces a novel circular menu concept. The choice between the two depends on the specific design requirements and user experience goals of the application.
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
BubbleTabBar
Requirements
- iOS 9.3+
- xCode 10
Example
To run the example project, clone the repo, and run ExampleApp
scheme from BubbleTabBar.xcodeproj
Installation
Carthage
Make the following entry in your Cartfile:
github "Cuberto/bubble-icon-tabbar"
Then run carthage update
.
If this is your first time using Carthage in the project, you'll need to go through some additional steps as explained over at Carthage.
Manual
Add content of folder BubbleTabBar/Classes
to your project
Usage
With Storyboard
-
Create a new UITabBarController in your storyboard or nib.
-
Set the class of the UITabBarController to
BubbleTabBarController
in your Storyboard or nib. -
Add a custom image icon and title for UITabBarItem of each child ViewContrroller
-
If you need cutom color for each tab set
CBTabBarItem
class to tab bar items and usetintColor
property
Without Storyboard
- Import
BubbleTabBar
- Instantiate
BubbleTabBarController
- Add some child conrollers and don't forget to set them tabBar items with title and image
- If you need cutom color for each tab use
CBTabBarItem
instead of UITabBarItem settintColor
property
Android
Similar library BubbleTabBar by Cuberto
Author
Cuberto Design, info@cuberto.com
License
BubbleTabBar is available under the MIT license. See the LICENSE file for more info.
Top Related Projects
:octocat: RAMAnimatedTabBarController is a Swift UI module library for adding animation to iOS tabbar items and icons. iOS library made by @Ramotion
Animated side menu with customizable UI
Folding Tab Bar and Tab Bar Controller
:octocat: AdaptiveController is a 'Progressive Reduction' Swift UI module for adding custom states to Native or Custom iOS UI elements. Swift UI component by @Ramotion
:octocat: PaperOnboarding is a material design UI slider. Swift UI library by @Ramotion
:octocat: ⭕️ CircleMenu is a simple, elegant UI menu with a circular layout and material design animations. Swift UI library made by @Ramotion
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