Various usages of the Macaw library

Overview

Macaw-Examples

Macaw Examples is a place where you can find various usages of the Macaw library.


We are a development agency building phenomenal apps.




Launching Example

  • clone the repo [email protected]:exyte/Macaw-Examples.git
  • open terminal and run cd <MacawExamplesRepo>/{ExampleName}/
  • run pod install to install all dependencies
  • run open {ExampleName}.xcworkspace/ to open project in the Xcode

Examples

GettingStarted

A simple application with animated bar charts. Step by step tutorial is presented on the Getting Started wiki page.

HealthStat

Activity Monitor app concept shows number of steps, running level and daily summary.

PeriodicTable

Do you like chemistry? This iPad application shows full power of Macaw: affine transformations, user events, animation and various effects.

DesignAwardedApps

Recreating Auxy, Streaks and Zova interfaces with Macaw.

LiquidSwipe

Liquid Swipe concept showing amination with smooth tranformation for forward and backward swiping. Inspired with Cuberto's framework.

FanMenu

FanMenu – an animated circular menu control.

Requirements

  • iOS 8.0+ / Mac OS X 10.9+
  • Xcode 8.0+

License

Macaw Examples are available under the MIT license. See the LICENSE file for more info.

You might also like...
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

Lightweight touch visualization library in Swift. A single line of code and visualize your touches!
Lightweight touch visualization library in Swift. A single line of code and visualize your touches!

TouchVisualizer is a lightweight pure Swift implementation for visualising touches on the screen. Features Works with just a single line of code! Supp

Wallet is a library to manage cards and passes.
Wallet is a library to manage cards and passes.

Wallet Wallet is a replica of the Apple's Wallet interface. Add, delete or present your cards and passes. Feel free to use this pod in your project an

SwiftUI: Components Library Inspired by Twitter's Bootstrap
SwiftUI: Components Library Inspired by Twitter's Bootstrap

bootswiftui SwiftUI: Components Library Inspired by Twitter's Bootstrap Warning This is just SwiftUI exercise. Please do not consider using this repo

macOS GUI Library for the Nim Programming Language
macOS GUI Library for the Nim Programming Language

NimCocoa NimCocoa is an experimental implementation of a Native GUI for the Nim programming language running on macOS. Rather than rely on low level c

SwiftUI library for a walkthrough or onboarding flow with tap actions
SwiftUI library for a walkthrough or onboarding flow with tap actions

Concentric Onboarding iOS library for a walkthrough or onboarding flow with tap actions written with SwiftUI We are a development agency building phen

ScrollViewPlus is a small library that provides some helpful extension and capabilities for working with NSScrollView.

ScrollViewPlus is a small library that provides some helpful extension and capabilities for working with NSScrollView.

Customizable School Timetable Library
Customizable School Timetable Library

JHTimeTable SwiftUI Customizable School TimeTable Library 설치 Swift Package Manager 사용하기 JHTimeTable뷰를 선언합니다. JHTimeTable(lineColor : .secondary,

FSPagerView is an elegant Screen Slide Library implemented primarily with UICollectionView.
FSPagerView is an elegant Screen Slide Library implemented primarily with UICollectionView.

FSPagerView is an elegant Screen Slide Library implemented primarily with UICollectionView. It is extremely helpful for making Banner、Product Show、Welcome/Guide Pages、Screen/ViewController Sliders.

Comments
  • PeriodicTable issue

    PeriodicTable issue

    스크린샷 2021-08-06 오후 8 27 34 스크린샷 2021-08-06 오후 8 27 48 스크린샷 2021-08-06 오후 8 28 36

    I created a mobile app that is very similar to PeriodicTable. but my app not run Which NSCoder type goes into parameters when invoking PeriodicTable? Sorry, my app doesn't use storyboard. And if you're using a storyboard, nothing will appear on the screen. Help me, please.

    opened by leejinseong9410 5
  • Crash for iOS 13

    Crash for iOS 13

    class NodeRenderer {

    weak var view: MView?
    
    fileprivate let onNodeChange: () -> Void
    fileprivate let disposables = GroupDisposable()
    fileprivate var active = false
    weak var animationCache: AnimationCache?
    
    init(node: Node, view: MView?, animationCache: AnimationCache?) {
        self.view = view
        self.animationCache = animationCache
    
        onNodeChange = { [unowned node, weak view] in
            guard let isAnimating = animationCache?.isAnimating(node) else {
                return
            }
    
            if isAnimating {
                return
            }
    
                DispatchQueue.main.async {
                print("setNeedsDisplay=6")
                    view?.setNeedsDisplay()
                }
        }
    
        addObservers()
    }
    

    view?.setNeedsDisplay() needs to be wrapped with DispatchQueue.main.async {}. If not, we have crash for iOS 13. But after we wrap it, it is very slow when changing color of shape. I found the reason. When changing color of shape, this framework is doing rerendering for whole group using group rendering. Now it needs to be called for main thread as you can see above. But the speed is very slow because of calling main thread much time. How can we fix this issue? Please let me know if you have any thought.

    opened by golden779 1
  • Speed issue

    Speed issue

    I'm trying to change color of shape using following code: @discardableResult public func replaceColors(node: Node, color: Fill?) -> Bool { if let shape = node as? Shape { shape.fill = color return true } return false }

    At that moment, following code will be called:

    group.contentsVar.onChange { [weak self] _ in self?.updateRenderers() }

    private func updateRenderers() { renderers.forEach { $0.dispose() } renderers.removeAll()

        if let updatedRenderers = group?.contents.compactMap ({ child -> NodeRenderer? in
            guard let interval = renderingInterval else {
                print("setNeedsDisplay=6-2")
                return RenderUtils.createNodeRenderer(child, view: view, animationCache: animationCache)
            }
    
            let index = AnimationUtils.absoluteIndex(child, useCache: true)
            if index > interval.from && index < interval.to {
                print("setNeedsDisplay=6-3")
                return RenderUtils.createNodeRenderer(child, view: view, animationCache: animationCache, interval: interval)
            }
    
            return .none
    
        }) {
            renderers = updatedRenderers
        }
    }
    

    Btw when the color of shape is changed, updateRenderers() will be called much time. It lowered the speed of the app. How can we call updateRenderers() only once for changed shape?

    opened by golden779 0
Owner
Exyte
Exyte
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
: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

Ramotion 1.9k Dec 23, 2022
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

Danil Gontovnik 55 Oct 19, 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
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.

Zhouqi Mo 3.3k Dec 21, 2022
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

Exyte 5.9k Jan 1, 2023
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
A SwiftUI Library for creating resizable partitions for View Content.

Partition Kit Recently Featured In Top 10 Trending Android and iOS Libraries in October and in 5 iOS libraries to enhance your app! What is PartitionK

Kieran Brown 230 Oct 27, 2022
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

Pierre 404 Dec 8, 2022