profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/malcommac/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Daniele Margutti malcommac Mobile Tech Leader @ Immobiliare.it Rome, Italy http://www.danielemargutti.com iOS & macOS Engineer, UI/UX Lover. Continuous improvement is better than delayed perfection.

malcommac/Hydra 1933

⚡️ Lightweight full-featured Promises, Async & Await Library in Swift

malcommac/ImageSizeFetcher 444

Finds the type/size of an image given its URL by fetching as little data as needed

malcommac/Flow 424

Declarative approach to populate and manage UITableViews (see https://github.com/malcommac/FlowKit)

malcommac/DMLazyScrollView 295

Lazy Loading UIScrollView for iOS (with support for infinite scrolling)

malcommac/DMPagerViewController 283

DMPagerViewController is page navigation controller like the one used in Twitter or Tinder

malcommac/FlowKit 217

A declarative type-safe framework for building fast and flexible list with Tables & Collection

malcommac/DMCircularScrollView 209

Infinite/Circular Scrolling Implementation for UIScrollView

malcommac/DMSlidingCell 156

Swipe To Reveal UITableViewCell Implementation as like in Twitter

malcommac/DMSplitView 114

New NSSplitView class with multiple subviews resize behaviors and animated transitions

malcommac/DMScrollingTicker 112

Advanced horizontal scrolling ticker for iOS

fork malcommac/Alamofire

Elegant HTTP Networking in Swift

fork in 2 days

fork malcommac/Pulse

Logger and network inspector for Apple platforms

https://kean.blog/pulse/home

fork in 2 days

startedalexito4/slox

started time in 4 days

fork malcommac/DifferenceKit

💻 A fast and flexible O(n) difference algorithm framework for Swift collection.

https://ra1028.github.io/DifferenceKit

fork in 7 days

fork malcommac/Leku

:earth_africa: Map location picker component for Android. Based on Google Maps. An alternative to Google Place Picker.

https://adevintaspain.github.io/Leku/

fork in 7 days

issue closedmalcommac/SwiftDate

Baddest bitches

Biggest hoes

closed time in a month

prettyboi22

push eventmalcommac/SwiftMsgPack

rinsuki

commit sha 24328503d1587f5fad81ff78466e332ee6bb2c09

Support NSNull serialization

view details

rinsuki

commit sha a79383425c597d5b37df7b62114633cd29acd6e9

Use tab indent instead of spaces

view details

Daniele Margutti

commit sha c8e24b27a2d7b023a1e9a892d75aa751d0b0026e

Merge pull request #7 from rinsuki/implement/handling-nsnull Support NSNull serialization

view details

push time in a month

PR merged malcommac/SwiftMsgPack

Reviewers
Support NSNull serialization enhancement

sometimes I need to serialize NSNull to msgpack's null, but this library seems doesn't supporting NSNull, so I added NSNull handling.

+4 -0

1 comment

1 changed file

rinsuki

pr closed time in a month

pull request commentmalcommac/SwiftMsgPack

Support NSNull serialization

Nice! thank you!

rinsuki

comment created time in a month

push eventmalcommac/ScrollingStackContainer

Daniele Margutti

commit sha f5033200759dc6e1747fe76aa95a376abf8b33d6

Added link to ScrollStackController

view details

push time in a month

release malcommac/ScrollStackController

1.4.2

released time in a month

created tagmalcommac/ScrollStackController

tag1.4.2

🧩 Easy scrollable layouts in UIKit

created time in a month

issue commentmalcommac/ScrollStackController

Demo project is broken

Fixed in 1.4.2. thanks!

graemesi

comment created time in a month

push eventmalcommac/ScrollStackController

Daniele Margutti

commit sha f52bd158987f0a1c263d08035b2e1f2e23ccf997

Merge tag '1.4.1' into develop 1.4.1

view details

Daniele Margutti

commit sha 75bdc2630c2bb52a0d222c31e34c369cb0cca64f

Merge branch 'master' into develop

view details

Eytan Schulman

commit sha 9ea4ad75f88c77f33a81a2fac5282fe1f88f2819

Added minimum iOS version to SPM description

view details

Daniele Margutti

commit sha 10bec3f0295636ca2f422e9e8620332ecd707318

Merge pull request #18 from eytanschulman/master Added minimum iOS version to SPM description

view details

Roman Blum

commit sha 39c4a34f813b41fee14ae40d1d5d7f2d1b95e276

Update Package.swift

view details

Roman Blum

commit sha 7e5aa46b62c5c9d87a8bd710655ca08ef1792d4f

Update .gitignore

view details

Roman Blum

commit sha 5daf8010a6bc4109c041a936d9622fa6b6c99c54

Add missing @discardableResult

view details

Roman Blum

commit sha f7eedf0c845e54261f7e9d5073a411a1c4949693

Update .gitignore

view details

Daniele Margutti

commit sha f19499a0a51f17a28e95d328dd6927105c97db99

Merge pull request #19 from rmnblm/develop @discardableResult in setRows/addRow/addRows, remove .swiftpm, cleanup of Package.swift

view details

Daniele Margutti

commit sha 48aac74e674575d2a7193174fddc648ba037612d

Fix protocol warning with class/AnyObject in Xcode 12.5+

view details

Daniele Margutti

commit sha 90b2db45567327dc33398217beb3de12ced9cd8a

Updated project settings

view details

Daniele Margutti

commit sha 1aec0c4001d922db76a363290d75b11b40da9077

fix #20: remove any fixed dimension constraint when using automatic sizing in row's contentView

view details

Daniele Margutti

commit sha 2ad28c383ea2a4ad20d07925f1e8401475c71c0b

fix #16: fix demo project

view details

Daniele Margutti

commit sha db64a5892704163860af3329146a22ac8888cc62

Fixed several issues on layout

view details

Daniele Margutti

commit sha 23d78fca7d7d2bff873edbd6d01286213e9d5d32

Updated podspec

view details

Daniele Margutti

commit sha ffe49f735697f4fd86e6b3b71f48ea6e0fb76683

Merge branch 'release/1.4.2'

view details

push time in a month

issue closedmalcommac/ScrollStackController

Autosizing issue reusing a fixed-dimension controller

When you are adding a controller to the stack setting the size as fixed the library add an height/width constant constraint to setup desired dimension.
If you plan to reuse the controller instance or change the sizing from fixed to automatic dimension, applied constraint is kept in place and the autosizing is broken returning the wrong size for the contentView of the associated ScrollStackRow instance:

The solution is to remove any height/width constant constraints before re-adding the controller to the stack:

    private func removeFixedDimensionConstraintsIfNeeded(_ contentView: UIView) {
        let fixedDimensions = contentView.constraints.filter({
            $0.firstAttribute == .height || $0.firstAttribute == .width
        })
        contentView.removeConstraints(fixedDimensions)
    }

The method above is called when evaluating the dynamic size of the controller's contentView inside setupRowSizeToFitLayout() method of the ScrollStackRow.swift:

private func setupRowSizeToFitLayout()  {
        guard let stackView = stackView, let contentView = contentView else { return }
        
        // If user changed the way of how the controller's view is resized
        // (ie from fixed height to auto-dimension) we should need to remove
        // attached constraints about height/width in order to leave the viww to
        // auto resize according to its content.
        removeFixedDimensionConstraintsIfNeeded(contentView)
        
        var bestSize: CGSize!
        if stackView.axis == .vertical {
            let maxAllowedSize = CGSize(width: stackView.bounds.size.width, height: CGFloat.greatestFiniteMagnitude)
            bestSize = contentView.systemLayoutSizeFitting(maxAllowedSize, withHorizontalFittingPriority: .required, verticalFittingPriority: .defaultLow)
        } else {
            let maxAllowedSize = CGSize(width: CGFloat.greatestFiniteMagnitude, height: stackView.bounds.size.height)
            bestSize = contentView.systemLayoutSizeFitting(maxAllowedSize, withHorizontalFittingPriority: .defaultLow, verticalFittingPriority: .required)
        }
        
        setupRowToFixedValue(bestSize.height)
    }

This solves the issue. It will be applied in 1.42.

closed time in a month

malcommac

issue closedmalcommac/ScrollStackController

Demo project is broken

When building and running the demo project on Xcode 12.0 and iOS 13.5 or iOS 14.0:

  1. The Xcode debug console is filled with "Unable to simultaneously satisfy constraints" messages
  2. None of the child view controllers are shown and the six buttons at the bottom of the view don't work It looks like this was broken by the v1.4.1 release

ios14-xcode12

closed time in a month

graemesi

push eventmalcommac/ScrollStackController

Daniele Margutti

commit sha ffe49f735697f4fd86e6b3b71f48ea6e0fb76683

Merge branch 'release/1.4.2'

view details

Daniele Margutti

commit sha 0d8e744503dce2ef7294fe92b598507be21c1a73

Merge tag '1.4.2' into develop 1.4.2

view details

push time in a month

push eventmalcommac/ScrollStackController

Daniele Margutti

commit sha 23d78fca7d7d2bff873edbd6d01286213e9d5d32

Updated podspec

view details

push time in a month

push eventmalcommac/ScrollStackController

Daniele Margutti

commit sha db64a5892704163860af3329146a22ac8888cc62

Fixed several issues on layout

view details

push time in a month

push eventmalcommac/ScrollStackController

Daniele Margutti

commit sha 2ad28c383ea2a4ad20d07925f1e8401475c71c0b

fix #16: fix demo project

view details

push time in a month

push eventmalcommac/ScrollStackController

Daniele Margutti

commit sha 1aec0c4001d922db76a363290d75b11b40da9077

fix #20: remove any fixed dimension constraint when using automatic sizing in row's contentView

view details

push time in a month

issue openedmalcommac/ScrollStackController

Autosizing issue reusing a fixed-dimension controller

When you are adding a controller to the stack setting the size as fixed the library add an height/width constant constraint to setup desired dimension.
If you plan to reuse the controller instance or change the sizing to automatic constraint is kept in place and the autosizing is broken returning the wrong size.

The solution is to remove any height/width constant constraints before re-adding the controller to the stack.

    private func removeFixedDimensionConstraintsIfNeeded(_ contentView: UIView) {
        let fixedDimensions = contentView.constraints.filter({
            $0.firstAttribute == .height || $0.firstAttribute == .width
        })
        contentView.removeConstraints(fixedDimensions)
    }

The method above is called when evaluating the dynamic size of the controller's contentView inside setupRowSizeToFitLayout() method of the ScrollStackRow.swift:

private func setupRowSizeToFitLayout()  {
        guard let stackView = stackView, let contentView = contentView else { return }
        
        // If user changed the way of how the controller's view is resized
        // (ie from fixed height to auto-dimension) we should need to remove
        // attached constraints about height/width in order to leave the viww to
        // auto resize according to its content.
        removeFixedDimensionConstraintsIfNeeded(contentView)
        
        var bestSize: CGSize!
        if stackView.axis == .vertical {
            let maxAllowedSize = CGSize(width: stackView.bounds.size.width, height: CGFloat.greatestFiniteMagnitude)
            bestSize = contentView.systemLayoutSizeFitting(maxAllowedSize, withHorizontalFittingPriority: .required, verticalFittingPriority: .defaultLow)
        } else {
            let maxAllowedSize = CGSize(width: CGFloat.greatestFiniteMagnitude, height: stackView.bounds.size.height)
            bestSize = contentView.systemLayoutSizeFitting(maxAllowedSize, withHorizontalFittingPriority: .defaultLow, verticalFittingPriority: .required)
        }
        
        setupRowToFixedValue(bestSize.height)
    }

This solves the issue.

created time in a month

push eventmalcommac/Glider

Daniele Margutti

commit sha 65933717e5d76f228a551cccb0f172728dd34c9e

fix podspec

view details

push time in a month

push eventmalcommac/Glider

Daniele Margutti

commit sha de0ba08fca691d7029abe148524ef04663356627

fix podspec

view details

Daniele Margutti

commit sha 1d4c7e451789e2cc7fcb32fe958eb9ab8073d7ca

fix podspec

view details

push time in a month

delete tag malcommac/Glider

delete tag : 0.0.1

delete time in a month

created tagmalcommac/Glider

tag0.0.1

✈️ Lightweight yet powerful logging library. It's the Winston.js for Swift!

created time in a month

push eventmalcommac/Glider

Daniele Margutti

commit sha a144802001b27be57793279ee5b0ed553ea3c506

Fixed podspec

view details

Daniele Margutti

commit sha 8998e83a6c97dee3e687ad1db58fc962ba2841e1

Fix dependency podspec

view details

push time in a month

delete tag malcommac/Glider

delete tag : 0.0.1

delete time in a month