GithubHelp home page GithubHelp logo

malcommac / flow Goto Github PK

View Code? Open in Web Editor NEW
423.0 19.0 21.0 33.05 MB

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

License: MIT License

Ruby 0.54% Swift 99.46%
tableview uitableview uitableviewdatasource uitableviewdelegate swift declarative

flow's Introduction

Hello ๐Ÿ‘‹ I'm Daniele and I work as Mobile Tech Lead Manager at ImmobiliareLabs, the IT dept of Immobiliare.it.
I'm a passionate software engineer with a love for minimalism, product design and sushi.
I started programming on macOS in 2000 and iOS on 2007.

malcommac

OpenSource Projects

Maintaing and developing tools consumes resources and time.
While I enjoy making them your support is foundamental to allow me continue its development.
Consider becoming a Sponsor](https://github.com/sponsors/malcommac) of my works.

RealHTTP is lightweight await/async http client made for Swift.

RealFlags makes it easy to configure feature flags in your codebase.

Before async await there was promises. Hydra is a fast full-featured promise library for Swift.

Async/await client to interact with GitLab API v4 with Swift

With over 3 milion of downloads on CocoaPods, since 2015 SwiftDate is the #1 toolkit to parse, validate, manipulate, compare and display dates.

It allows you to use all system's location based services (plus external services like Google Maps, MapBox, OpenStreet and Nokia Here) directly from an easy to use and elegant APIs set.

SwiftRichString is a library which allows to create and manipulate attributed strings easily on all Apple Platforms.

Create complex scrollable layout using UIViewControllers or plain UIViews and simplify your code.

flow's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flow's Issues

Flow's mentioned twice in the README.md

Hey! I noticed, you've mentioned Flow twice in your README under "Other projects". I'd make a PR to fix it, but I'm not sure which description you'd prefer ยฏ\_(ใƒ„)_/ยฏ (both're excellent!)

screen shot 2017-10-18 at 10 25 14 pm

swift-3 branch incompatible with Xcode 8

Attempting to build and run the FlowDemoApp project in Xcode 8.3.3 fails with two issues:

  1. 'Swift Language Version' in the app and test targets still reference Swift 4 instead of Swift 3 (do a global search for 'SWIFT_VERSION' to find these).

  2. The file "ProfileHeader.xib" has been saved in Xcode 9 format with 'Use Safe Areas Layout Guides' enabled. Disabling that checkbox and changing the file's 'Opens in:' popup to Xcode 8.x fixes this.

Update README

The current README shows import Flow in the code examples, while Xcode wants me to use import FlowTables using the current version.

Crash when removing section

A crash occur when you try to remove a section from a table using removeSection() functions.
This happens because didEndDisplaying event of SectionProtocol (header/footer) cannot be called anymore from table's datasource tableView(_ tableView: UITableView, didEndDisplayingHeaderView view: UIView, forSection section: Int) function.

Confusing row setup examples in README

In the Prepare a Row section of the README:

let rowItaly = Row<CountryCell>(model: italy, { row in
    row.onDequeue = { _ in
        self.countryNameLabel.text = country.name.capitalized()
    ...

In earlier code sample its never made explicit where countryNameLabel comes from, but its somewhat obvious that its a property of a CountryCell. And country comes from thin are, but is clearly supposed to be the model, italy in this specific case.

So in the last line I quote above, should self and country instead be row.cell and row.model?

In this section where the example adds a single row, the model is kind of useless because the code could just reference italy in line. Where the model is useful is when adding many instances of the same model, and currently the reader is left to make that connection herself. You might instead want this section to show how to make a row that doesn't use a model, and have it focus on the event properties, then mention the model in the following section "Prepare Rows for an array of model" where the present example omits the callback altogether.

Are there cases when you can do that, omit that callback, maybe if the model is just a string and one is using default UITableViewCell title layout? If you want to show some examples that do that and how the code is simpler for those cases, you should talk about it explicitly and don't just omit the callback from one example without explanation.

Cool project, I think I'll use it in the future.

Create a cell declarative

i like to avoid Interface Builder and XIB Files.

is it possible to create a cell manually without IB?

Row doesn't show with custom identifier

When you setup a custom identifier in IB with storyboards and in your custom UITableViewCell you write
public static var reuseIdentifier: String = "something"
the cell doesn't show up.

I suppose an overlapping with reuseIdentifier in UITableViewCell class because I renamed the static variable reuseIdentifier into DeclarativeCell with a different name (I used, as example, flowReuseIdentifier) and it works.

I could open a PR because I need to test with XIB too.

Some rows are hidden if not scroll

I've got many different rows which are created in some utility (and dedicated) functions. In every function I return an array [RowProtocol]. The behavior is that when I reload, some of before rows are hidden, until I scroll the tableView. Contents are loaded after fetching data from server.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.