User Interface Library for iOS

Overview

Sejima: User Interface Library in Swift

Documentation Language: Swift 2, 3 and 4 Platform: iOS 11+ Carthage Compatible CocoaPods Codacy Badge Build Status License: MIT GitHub contributors Donate

Why Sejima

Because in modern mobile applications, you often reuse user interface components. To avoid code duplication, we have tried to provide you with global standard user interface components.

Although Apple has introduce @IBInspectable properties to help define components directly in storyboard files.

All Sejima components expose its components properties using @IBInspectable so you can define user interface directly in your .xib/.storyboard files or using UIAppearance.

Requirements

  • iOS 9.1+
  • Xcode 9.0+

Installation

use CocoaPods with Podfile

pod 'Sejima'

open your favorite terminal, go to your project root path:

pod install

use Carthage with Cartfile

github "MoveUpwards/Sejima"

open your favorite terminal, go to your project root path and run:

carthage update

Components

Sketch template

Features

You can open the sketch template file provided with the source code to have a look at all the components.

  • MUHeader: Component that define a title and a detail description.

  • MUTopBar: Component that define a title and a button on left side.

  • MUButton: UIButton with more customizable options.

  • MUHorizontalPager: UIScrollView + isPagingEnabled with more customizable options.

  • MUPageControl: UIPageControl with more customizable options.

  • MUTextField: UITextField with more customizable options.

  • MUNavigationBar: Component that define a left button along with a main button with a separator.

  • MUAvatar: UIImage with possible design round, square or custom.

  • MUPinCode: Component to handle pin code usage with possibly being alpha-numeric, emoji, numeric.

  • MUSegmentedControl: UISegmentedControl like with more designable options.

  • MUProportionalBar: An horizontal progress bar with multiple sections.

  • MUTrimmer: A draggable component usually used to trim vidéo.

  • MUToast: A toast message component.

  • MURadarGraph: A spider graph to visualize multiple charts.

  • MUCircularProgress: A circular progress with customizable options.

  • MUCard: A card with Title and Subtitle and content view.

  • MUCollectionButton: A group of UIButton with customizable options.

Example

Walkthrough

Read the Medium article on how to build this Walkthrough

  1. MUHeader
  2. MUPageControl
  3. MUButton
  4. MUHorizontalPager

Walkthrough

Login

  1. MUTopBar
  2. MUTextField
  3. MUButton

Login

Sketch template

To help you design applications using Sejima components in Sketch we provide a Sketch template with all our components available in Symbols.

Sketch template

Contributing

Please read our Contributing Guide before submitting a Pull Request to the project.

Support

For more information on the upcoming version, please take a look to our ROADMAP.

Community support

For general help using Strapi, please refer to the official Sejima documentation. For additional help, you can use one of this channel to ask question:

Professional support

We provide a full range of solutions to get better and faster results. We're always looking for the next challenge: consulting, training, develop mobile and web solution, etc.

Drop us an email to see how we can help you.

License

Folding cell is released under the MIT license. See LICENSE for details.

If you use the open-source library in your project, please make sure to credit and backlink to www.moveupwards.dev

You might also like...
An iOS Library that makes shadows management easy on UIView.
An iOS Library that makes shadows management easy on UIView.

ShadowView is an iOS Shadow library that makes view's shadow implementation easy and sweet 🎉 🎊 . Add simple shadows to add a gaussian blurred projec

StarryStars is iOS GUI library for displaying and editing ratings
StarryStars is iOS GUI library for displaying and editing ratings

StarryStars StarryStars is iOS GUI library for displaying and editing ratings Features StarryStars' RatingView is both IBDesignable and IBInspectable

A library to imitate the iOS 10 Maps UI.
A library to imitate the iOS 10 Maps UI.

Pulley A library to imitate the drawer in Maps for iOS 10/11. The master branch follows the latest currently released version of Swift. If you need an

A nice iOS View Capture Swift Library which can capture all content.
A nice iOS View Capture Swift Library which can capture all content.

SwViewCapture A nice iOS View Capture Library which can capture all content. SwViewCapture could convert all content of UIWebView to a UIImage. 一个用起来还

A minimalistic looking banner library for iOS. It supports multiple customizable kinds of Banner types
A minimalistic looking banner library for iOS. It supports multiple customizable kinds of Banner types

A minimalistic looking banner library for iOS. It supports multiple customizable kinds of Banner types

:octocat:💧 A slider widget with a popup bubble displaying the precise value selected. Swift UI library made by @Ramotion
:octocat:💧 A slider widget with a popup bubble displaying the precise value selected. Swift UI library made by @Ramotion

FLUID SLIDER A slider widget with a popup bubble displaying the precise value selected written on Swift. We specialize in the designing and coding of

A library, which adds the ability to hide navigation bar when view controller is pushed via hidesNavigationBarWhenPushed flag
A library, which adds the ability to hide navigation bar when view controller is pushed via hidesNavigationBarWhenPushed flag

HidesNavigationBarWhenPushed A library, which adds the ability to hide navigation bar when view controller is pushed via hidesNavigationBarWhenPushed

A drop-in universal library helps you to manage the navigation bar styles and makes transition animations smooth between different navigation bar styles
A drop-in universal library helps you to manage the navigation bar styles and makes transition animations smooth between different navigation bar styles

A drop-in universal library helps you to manage the navigation bar styles and makes transition animations smooth between different navigation bar styles while pushing or popping a view controller for all orientations. And you don't need to write any line of code for it, it all happens automatically.

Powerful and easy-to-use vector graphics Swift library with SVG support
Powerful and easy-to-use vector graphics Swift library with SVG support

Macaw Powerful and easy-to-use vector graphics Swift library with SVG support We are a development agency building phenomenal apps. What is Macaw? Mac

Comments
  • Use Sejima in a Widget

    Use Sejima in a Widget

    Currently, to use Sejima in Widget we need to set: Require Only App-Extension-Safe API => NO

    To avoid it, we need to remove MUKeyboard file, so a good thing should be to extract MUCore as a parent framework.

    opened by damien-nd 1
  • Feature/graph view

    Feature/graph view

    • See if we need more options in MUGraphView.swift.

    • Sorry for the documentation's files.

    • We have to update to swift 5 for Sample.app + Playground.playground.

    opened by damien-nd 0
  • MUGraphView

    MUGraphView

    Displays a graph of output. [See APLGraphView.h .m]

    The MUGraphView needs to be able to update the scene quickly in order to track the data at a fast enough frame rate. There is too much content to draw the entire graph every frame and sustain a high frame rate. This class therefore uses CALayers to cache previously drawn content and arranges them carefully to create an illusion that we are redrawing the entire graph every frame.

    enhancement 
    opened by MoveUpwardsDev 0
  • MUToast layout issue with UIAppearance proxy usage

    MUToast layout issue with UIAppearance proxy usage

    When modifying MUToast appearance using UIAppearance proxy, the layout is wrong due to new value not being taken into account when calculating expected size.

    These value shall only be modifiable through MUToast instance.

    bug 
    opened by MoveUpwardsDev 0
Releases(0.6.2)
  • 0.6.2(Jul 1, 2019)

    Remove index in button tap callback

    toast.add(view: cancel) { view in
        print("Button did tap cancel")
    }
    toast.add(view: okay) { view in
        print("Button did tap ok")
        toast.hide()
    }
    
    Source code(tar.gz)
    Source code(zip)
  • 0.6.1(Jun 27, 2019)

    usage

    First you can define the layout basics using UIAppearance

    MUToast.appearance().displayDuration = 0
    MUToast.appearance().cornerRadius = 4
    MUToast.appearance().titleColor = .white
    MUToast.appearance().backgroundColor = .black
    MUToast.appearance().indicatorColor = .red
    MUToast.appearance().indicatorWidth = 10
    MUToast.appearance().detailColor = .white
    
    MUButton.appearance().borderWidth = 2
    MUButton.appearance().cornerRadius = 4.0
    

    Then you customize your toast view

    let toast = MUToast()
    toast.icon = #imageLiteral(resourceName: "reddit")
    toast.buttonHeight = 30.0
    toast.spacing = 8
    toast.buttonSpacing = 16
    toast.displayPosition = .bottom
    toast.title = "Sorry, can't reach Reddit"
    toast.titleFont = .boldSystemFont(ofSize: 18)
    toast.detail = "Add multiple line detail text if needed"
    toast.detailFont = .systemFont(ofSize: 14)
    

    Then init buttons objects you want to add in your toast

    let cancel = MUButton()
    cancel.title = "CANCEL"
    cancel.titleFont = .boldSystemFont(ofSize: 14)
    cancel.buttonBackgroundColor = .clear
    cancel.borderColor = .orange
    
    let okay = MUButton()
    okay.title = "OKAY"
    okay.titleFont = .boldSystemFont(ofSize: 14)
    okay.buttonBackgroundColor = .red
    okay.borderColor = .red
    

    Add button along with an options closure that will be triggered every time the button get tapped

    toast.add(view: cancel) { (button, index) in
        print("Button at index \(index) did tap")
    }
    toast.add(view: okay) { (button, index) in
        print("Button at index \(index) did tap")
    }
    

    Then show your toast

    
    
    toast.show(in: vc, onTap: {
        print("toast has been tapped")
    }, completion: { dismiss in
        print("toast has been dismissed > ", dismiss)
    })
    
    Source code(tar.gz)
    Source code(zip)
  • 0.5.8(Jun 3, 2019)

  • 0.5.7(May 31, 2019)

    • Add progress type MUCircularProgressType .indeterminate and .determinate
    /// Define the type of the circular progress.
    public enum MUCircularProgressType: Int {
        /// Circular progress with min and max value
        case determinate
        /// Circular progress with indeterminate loading
        case indeterminate
    }
    
    • Add rotation for .indeterminate type.
    /// Define the progress style
    open var progressType: MUCircularProgressType = .determinate
    
    /// Specifies the animation duration for the indeterminate rotation of the progress line.
    @objc open dynamic var rotateDuration: TimeInterval = 1.0
    
    Source code(tar.gz)
    Source code(zip)
  • 0.5.6(May 16, 2019)

  • 0.5.4(May 10, 2019)

  • 0.5.3(May 7, 2019)

    Documentation

    Update overall documentation to reach 100% coverage

    MURadarGraph

    Provide text vertical and horizontal offset to tweak graph legend

    Source code(tar.gz)
    Source code(zip)
  • 0.5.2(Apr 2, 2019)

  • 0.5.1(Apr 2, 2019)

    Add marker view to give some visual information with color Make title vertical centered when no detail test given Title and Detail text font can't be modified using UIAppearance due to layout calculation issue

    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(Mar 28, 2019)

    New components

    MUBarGraph #53 MUMeasurePicker #58 MUDateSlider #51 MUTabBar #55 MUOverlay #50

    Deprecated components

    MUCardPager is now deprecated use MUHorizontalPager

    Fix

    Fix the indicator value not displaying the value #60

    Source code(tar.gz)
    Source code(zip)
  • 0.4.2(Mar 21, 2019)

  • 0.4.0(Mar 20, 2019)

  • 0.3.0(Mar 19, 2019)

  • 0.2.1(Mar 15, 2019)

  • 0.2.0(Mar 13, 2019)

  • 0.1.9(Mar 7, 2019)

  • 0.1.8(Mar 5, 2019)

  • 0.1.7(Mar 4, 2019)

  • 0.1.6(Mar 1, 2019)

  • 0.1.5(Mar 1, 2019)

  • 0.1.4(Feb 27, 2019)

  • 0.1.3(Feb 27, 2019)

  • 0.1.2(Feb 27, 2019)

  • 0.1.1(Feb 27, 2019)

    The release include the following components:

    • MUHeader
    • MUHorizontalPager
    • MUPageControl
    • MUButton

    Check README for more details https://github.com/MoveUpwards/Sejima#examples

    Source code(tar.gz)
    Source code(zip)
Owner
Move Upwards
Move Upwards
🍞 Toast for Swift - Toaster Android-like toast with very simple interface

Toaster Android-like toast with very simple interface. (formerly JLToast) Screenshots Features Queueing: Centralized toast center manages the toast qu

Suyeol Jeon 1.6k Jan 3, 2023
UI framework that allows developers to integrate an amazing selection interface into their applications

UI framework that allows developers to integrate an amazing selection interface into their applications! Each bubble has a set of parameters, which could be configured individually.

AJIJIi 5 Jul 12, 2022
Full configurable spreadsheet view user interfaces for iOS applications. With this framework, you can easily create complex layouts like schedule, gantt chart or timetable as if you are using Excel.

kishikawakatsumi/SpreadsheetView has moved! It is being actively maintained at bannzai/SpreadsheetView. This fork was created when the project was mov

Kishikawa Katsumi 34 Sep 26, 2022
Provides an iOS view controller allowing a user to draw their signature with their finger in a realistic style.

Swift version now available! Mimicking pen-on-paper signatures with a touch screen presents a difficult set of challenges. The rate touch events are e

Uber Open Source 1.3k Jan 6, 2023
Dump local MacOS user hashes to a hashcat-compatible string.

mimic Dumps local MacOS user hashes to a hashcat-compatible string. Simply uses Objective-C instead of dscl/defaults read or other noisy binaries, to

null 0 Dec 29, 2021
BulletinBoard is an iOS library that generates and manages contextual cards displayed at the bottom of the screen

BulletinBoard is an iOS library that generates and manages contextual cards displayed at the bottom of the screen. It is especially well

Alexis (Aubry) Akers 5.3k Jan 2, 2023
A library to recreate the iOS Apple Music now playing transition

DeckTransition DeckTransition is an attempt to recreate the card-like transition found in the iOS 10 Apple Music and iMessage apps. Hereʼs a GIF showi

Harshil Shah 2.2k Dec 15, 2022
⚡️ A library of widgets and helpers to build instant-search applications on iOS.

By Algolia. InstantSearch family: InstantSearch iOS | InstantSearch Android | React InstantSearch | InstantSearch.js | Angular InstantSearch | Vue Ins

Algolia 567 Dec 20, 2022
Non-intrusive iOS UI library to implement overlay based interfaces

OverlayContainer is a UI library written in Swift. It makes easier to develop overlay based interfaces, such as the one presented in the Apple Maps, S

Applidium 1k Jan 4, 2023