swift-log
swift-composable-architecture
swift-log | swift-composable-architecture | |
---|---|---|
7 | 59 | |
3,315 | 11,409 | |
1.7% | 3.4% | |
4.9 | 9.6 | |
10 days ago | 6 days ago | |
Swift | Swift | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
swift-log
-
Swift for C++ Practitioners, Part 1: Intro and Value Types
How recent were your experiences?
The server-side Swift ecosystem has matured over the past few years, with specific attention from teams at Apple.
For example, regarding JSON, there has been a rewrite of the JSON encoder/decoder that results in a 200% - 500% speed up in deserialization! You can read about the (still ongoing) improvements to Foundation at https://github.com/apple/swift-foundation
Regarding logging, Apple has been pushing the development of community around the swift-log package at https://github.com/apple/swift-log. Maybe you’ve seen this, but just wanted to share!
One last thing: the Swift VSCode extension is actually really good! Not sure when you used it last, but I’ve been using it on a regular basis and it’s been great — and is only getting better. Here’s the link to the extension if you’re curious: https://marketplace.visualstudio.com/items?itemName=sswg.swi...
It’s true that Swift has had its various issues, but there’s a very real push by the core team and community to bring the language to new heights and places. Cross-platform support is getting better and better (check out what The Browser Company is doing with Swift on Windows) and a big source of performance bottlenecks are being addressed with the development of non-copyable and non-escaping (Rust-like move-only types)!
Sorry that’s a lot, but I just wanted to point out that there’s a lot of hope in Swift and really interesting things are happening for the project!
-
Swift outside the Apple ecosystem?
Also, Apple seems to be putting a ton of work into the Swift-on-server ecosystem. They've released packages for things like tracing, metrics, service discovery, logging, etc. And most of those are basically shared interfaces, and then Apple (or the community) will write backend implementations, like one for statsd which implements the stuff from swift-metrics.
-
When to use os_log vs print?
I liked os.log, but since I'm doing swift services on Linux I moved to SwiftLog. It's kind of bare bones, but you can attach it to different back ends. I'm just dumping logs to a file. Apple has made it open source.
-
How to log only in debug mode? including network logs
Does anyone have experience with this? I've seen people mentioning to use Cocoalumberjack but not sure if its the right package (meaning if its not overkill). Apple have an open source logging library as well for this.
-
Trouble building for ios device
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "com_github_buildbuddy_io_rules_xcodeproj", sha256 = "564381b33261ba29e3c8f505de82fc398452700b605d785ce3e4b9dd6c73b623", url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.9.0/release.tar.gz", ) http_archive( name = "cgrindel_rules_spm", sha256 = "03718eb865a100ba4449ebcbca6d97bf6ea78fa17346ce6d55532312e8bf9aa8", strip_prefix = "rules_spm-0.11.0", url = "https://github.com/cgrindel/rules_spm/archive/v0.11.0.tar.gz", ) load( "@cgrindel_rules_spm//spm:defs.bzl", "spm_pkg", "spm_repositories", ) load( "@cgrindel_rules_spm//spm:deps.bzl", "spm_rules_dependencies", ) spm_rules_dependencies() load( "@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl", "xcodeproj_rules_dependencies", ) xcodeproj_rules_dependencies() load( "@build_bazel_rules_apple//apple:repositories.bzl", "apple_rules_dependencies", ) apple_rules_dependencies() load( "@build_bazel_rules_swift//swift:repositories.bzl", "swift_rules_dependencies", ) swift_rules_dependencies() load( "@build_bazel_rules_swift//swift:extras.bzl", "swift_rules_extra_dependencies", ) swift_rules_extra_dependencies() load( "@build_bazel_apple_support//lib:repositories.bzl", "apple_support_dependencies", ) apple_support_dependencies() spm_repositories( name = "swift_pkgs", platforms = [ ".macOS(.v10_15)", ], dependencies = [ spm_pkg( url = "https://github.com/apple/swift-log.git", exact_version = "1.4.2", products = ["Logging"], ), spm_pkg( url = "https://github.com/pointfreeco/swift-composable-architecture.git", exact_version = "0.43.0", products = ["ComposableArchitecture"], ), spm_pkg( name = "Bow", url = "https://github.com/bow-swift/bow.git", exact_version = "0.8.0", products = ["Bow", "BowEffects", "BowOptics"], ), spm_pkg( url = "https://github.com/grpc/grpc-swift.git", exact_version = "1.7.3", products = ["GRPC"], ), spm_pkg( url = "https://github.com/hyperoslo/Cache", exact_version = "6.0.0", products = ["Cache"], ), ], )
-
Recommended library to log to file at high velocity?
I ended up modifying https://github.com/apple/swift-log, and added a LogHandler impls to dump to SQLite, os_log, Crashlytics, internal metrics APIs, etc.
-
Dangerous Logging in Swift
This is Foundation API, not Swift stdlib. One thing Swift probably can do, is to have the first parameter typed as `StaticString`. I am not sure if the header for NSLog has enough annotations to do so.
OTOH: https://github.com/apple/swift-log
swift-composable-architecture
-
Kaleidoscope of iOS app architectures
TCA for short. Very scalable, quite promising, quite popular. A decent alternative for MVVM enhanced by the Clean Architecture. You can learn more about it in a Point-Free tutorial and on GitHub.
-
My largest project yet: A fully themable, powerful task manager and daily planner built with SwiftUI. Available on iPhone and iPad for free (no ads, IAP or data collected).
🙏 Built with SwiftUI and The Composable Architecture (TCA): This isn’t a feature, but I just want to express my gratitude to the creators and maintainers of these two frameworks, which have played a huge part in making me fall in love with iOS development.
-
Koji je vas odnos prema alternativnim hype-ovanim paradimama programiranja, frameworcima i tehnologijama?
Razliciti alternativni frameworci i arhitekture - Recimo, na pamet mi padaju Composable Architecture (https://github.com/pointfreeco/swift-composable-architecture) i RIBs arhitektura (https://github.com/uber/RIBs). Ok, ove arhitekture resavaju neke probleme. Ali da li problemi koje te arhitekture resavaju solidan developer ne moze sam da resi bez vendor locka za kreatore tih arhitektura. Jesu one open-source, ali meni je rizik da se vezujem za bilo sta sto sutra moze da prestane da se odrzava.
- SwiftUI Structure and Architecture
-
What design patterns exist and which should I learn for SwiftUI?
I came across this post discussing MVM, MVVM, MVP, and composable architecture.
-
What is a piece of code (or Framework, extension, etc.) that you add in every new project?
At a minimum, Composable Architecture, and now Dependencies from Point-Free.
-
Ideal architecture for an app entirely in SwiftUI? Example code repo would be great
I’ve built a couple of apps with this framework: https://github.com/pointfreeco/swift-composable-architecture
- Use of EnvironmentObjects for sharing ObservableObjects
-
Best way forward coming from the Javascript / Typescript world?
While there are apps that use a Redux-style architecture, the arch is still in its infancy in the community. There are a number of implementations each with their own take on Redux. TCA is probably the one with the most name recognition and documentation.
-
Should You Still Learn UIKit?
Learn it if the project at hand requires it. A lot of older, more mature apps will still use UIKit, so it’s likely if you plan to work an iOS developer job that you will need it. But it’s getting to the point where a lot of the forward thinking shops are already starting to integrate SwiftUI. (Me being one of them) which, btw, a lot of people will say SwiftUI isn’t quite there yet, and I mostly disagree. SwiftUI is good for a great many use cases. Yes, there are still pain points, but you can write most of the apps you’d need to write in SwiftUI. And there are great architectural frameworks out there that actually give SwiftUI an opinionated way to structure apps that is testable and maintainable. Check out pointfreeco’s The Composable Architecture (https://github.com/pointfreeco/swift-composable-architecture)
What are some alternatives?
swift-nio - Event-driven network application framework for high performance protocol servers & clients, non-blocking.
Clean Architecture for SwiftUI + Combine - SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.
SwiftyBeaver - Convenient & secure logging during development & release in Swift 4 & 5
redux - A JS library for predictable global state management
async-http-client - HTTP client library built on SwiftNIO
tca-swiftui-navigation-demo - Demo project that shows how to implement navigation in SwiftUI iOS application using Swift Composable Architecture
Cache - :package: Nothing but Cache.
iOS-Viper-Architecture - This repository contains a detailed sample app that implements VIPER architecture in iOS using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.
rules_xcodeproj - Bazel rules for generating Xcode projects.
GRDB.swift - A toolkit for SQLite databases, with a focus on application development
swift-statsd-client - metrics backend for swift-metrics that uses the statsd protocol
TCA-tutorial