Coder Social home page Coder Social logo

krzysztofzablocki / kzfilewatchers Goto Github PK

View Code? Open in Web Editor NEW
1.1K 1.1K 63.0 2.22 MB

A micro-framework for observing file changes, both local and remote. Helpful in building developer tools.

Home Page: http://merowing.info

License: MIT License

Swift 93.31% Ruby 6.69%

kzfilewatchers's Introduction

Hi there πŸ‘‹

I am Principal engineer and creator of apps and tools that are trusted by over 80,000 teamsβ€”including industry leaders Apple, Disney, and Airbnb.

I've just released a video course that you can join if you want to save lots of time creating apps for Apple platforms.

πŸš€ I'm available for consulting and speaking engagements. Feel free to reach out to me to discuss opportunities.

In the past, I led iOS development at The New York Times, worked on apps such as Headspace, The Browser Company, and created my own indie apps like Foldify.

Community Work

You can sponsor my work and get premium content on my blog.

My Expertise

I focus on creating maintainable architecture and improving developer experience and efficiency by:

  • πŸ€” Designing flexible architecture that is easy to maintain
  • βš™οΈ Creating automation for common code tasks and workflows
  • πŸ‘₯ Establishing best practices for architecture, testing, and workflows
  • πŸ“‹ As a consultant, I usually:
    • πŸ€” Perform code reviews for entire projects and provide clients with practical recommendations to improve their team efficiency and satisfaction (through better development experience and automation)
    • πŸ‘₯ Help establish best practices and provide architecture recommendations
    • πŸ› οΈ Design and implement flexible and pragmatic solutions for hard problems
  • πŸ§™ And much more...

Talking with Me

  • 🐦 My Twitter: @merowing_
  • πŸ’¬ Pronouns: He/Him

You can learn more about me and my past experience on my blog.

kzfilewatchers's People

Contributors

ctxppc avatar hboon avatar iankeen avatar krzysztofzablocki avatar lkuczborski avatar morzv avatar noremac avatar sandeepaggarwal avatar tomassliz avatar vknabel avatar yonaskolb avatar

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  avatar  avatar  avatar

kzfilewatchers's Issues

Objc Interoperability

Hi, I want to add interoperability with Objective-C by writing some wrappers above classes and enum, without modifying original sources.
It could be useful for project with legacy code base.

Version 1.1.0 doesn't work as a Swift package.

Hi, great project thanks for making this. I've just been integrating it into our project and noticed there was an issue using the Swift package. Seems that #26 fixed the issue (#25), but the repo hasn't been tagged since. We can happily use master but I was wondering if there's any chance of tagging a new version at some stage to make it possible to use versions again?

Thanks again!

[Question] KZFileWatchers Fatal Error, Xcode 8.2.1, Swift 3.0.2

Hi, from New Zealand! :-)

I like the idea of this framework and hopefully will be using it in an app I am developing, along with Freddy (for JSON data), and ReSwift (reactive states).

I downloaded this repo on 20 April 2017, and put only the source files into my project.

Recently, I have had a fatal runtime error on this piece of code in the Daemon class:
try! fileWatcher.start(closure: { result in

The full error is this:
fatal error: 'try!' expression unexpectedly raised an error: trips.FileWatcher.Error.failedToStart("Failed to open file"): file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-800.0.63/src/swift/stdlib/public/core/ErrorType.swift, line 178

As seen in this screenshot of Xcode: http://imgur.com/a/cVQZT

I have adapted the Daemon code to initialize with an URL, then pass that as a path String to FileWatcher.Local as:
fileWatcher = FileWatcher.Local(path: String(describing: jsonURL))

This is shown by the full URL (where 'Store' and 'state.trip' both exist):
file:///Users/mikenorman/Library/Developer/CoreSimulator/Devices/72D4C7B2-B12E-4E0D-B520-A194237BCABA/data/Containers/Data/Application/FCA0A655-5F08-40C9-AAF4-0658C8346439/Library/Store/state.trip

I am currently testing this to the iPhone 6s Simulator, which is working fine for any other builds.
The file I am trying to 'watch' is a JSON file (state.trip) in a 'Store' folder in the app's Library folder.

Is this an invalid operation for the i386 architecture? I only want to use this on iOS.
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_i386_INVOP, subcode=0x0)

I am not sure why it is throwing that fatal error, and any help will be awesome.

Thanks

--mike

Swift package manifest doesn't vend any products

Hi! This is a great little project! However, the Swift package manifest doesn't declare any products. When I try to use the package, SPM (tools version 5.5) doesn't accept the target's name as a dependency. The issue can be fixed by declaring a product that uses that target.

Support newest Xcode & Swift

Hi,
I would like to update the project to Xcode 9.3 and Swift 4.1. I would love to make PR but firstly I want to hear if this change is wanted or not. I noticed that used pods versions are very old and that some small code improvements can be done.

FTP support

Hey there
I want to connect a real FTP address with user:pass in xcode 9, can be use your framework?

Like this url.

Bad implementation of time intervals

you have a bug in your computation of default time intervals.
1/60 is an action on integers which results in a rounded number, specifically in a '0'

you should change the expression into: '1/60.0' if you want a floating point expression

TextEdit is breaking the dispatch_source observation

Hi there,
Thanks for this project. I am trying this out at present but I am not sure how it works.In the sample source example ,when I run the app and open the text file the changes that are typed in the text file are reflected on the app only when the file is saved . This happens only the first time , rest of the time if I change the text and save again nothing gets changed. This is contrary to what is happening in the GIF that has been attached to the project. Please tell tell how to make sure it works that way.

RemoteFileWatcher not making a callback on the main thread

The callback in Remote.swift is being executed on a background thread and it leads to crashes whenever someone wants to use the callback data without realizing that the callback is. being executed on the background thread.

This behaviour is also leading to random crashing issues in the unit tests (Exactly when the test are run twice).

I have opened a PR for the same - #23

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.