diff --git a/README.md b/README.md index ae18fd9..0900419 100644 --- a/README.md +++ b/README.md @@ -1,94 +1,43 @@ +![](loverde_company_logo_full.png) -![](loverde_company_logo_full.png) -Loverde Co. Essentials Swift Scripts ----- +# Loverde Co. Essentials -This is a repository of essential scripts written in Swift for Loverde Co. used to save time on re-writing and keeping it on all other projects. So this Cocoapods will evolve with Swift and will improve with every release! +Essential Swift scripts, extensions, SwiftUI components, and UIKit-era helpers, +shared across Loverde Co. projects. Evolves with Swift, improves every release. ## Requirements -- iOS 15.* or newer, Swift 5.* or newer. -## Features -- [x] Many usefull scripts extensions -- [x] `API` — typed async networking + multipart uploads -- [x] SwiftUI components (`LCENavigationView`) and UIKit-era helpers +- iOS 15 or newer · Swift 5 or newer + +## Installation — Swift Package Manager + +```swift +dependencies: [ + .package(url: "https://git.loverde.com.br/Loverde-Company-LTDA/LCEssentials", .upToNextMajor(from: "2.0.0")) +] +``` + +Or add it in Xcode via **File ▸ Add Package Dependencies…** with the URL: + +``` +https://git.loverde.com.br/Loverde-Company-LTDA/LCEssentials +``` + +```swift +import LCEssentials +``` ## Documentation | Guide | Covers | | --- | --- | -| **[API.md](Documentation/API.md)** | `API` networking — requests, multipart uploads, client certificates, error handling, and why it beats a hand-rolled `URLSession` | +| **[API.md](Documentation/API.md)** | `API` networking — typed requests, multipart uploads, client certificates, error handling, and why it beats a hand-rolled `URLSession` | | **[Extensions.md](Documentation/Extensions.md)** | Foundation / value-type / string / collection / numeric / date / crypto extensions and the `LCEssentials` namespace | -| **[SwiftUI.md](Documentation/SwiftUI.md)** | SwiftUI components and `View` helpers | -| **[UIKit.md](Documentation/UIKit.md)** | Programmatic layout & constraints, view/control extensions, navigation, tables, and drop-in components | +| **[SwiftUI.md](Documentation/SwiftUI.md)** | SwiftUI components (`LCENavigationView`) and `View` helpers | +| **[UIKit.md](Documentation/UIKit.md)** | Programmatic layout & constraints, view/control extensions, navigation, tables, and drop-in components (`LCSnackBarView`, image picker/zoom, GIF loading) | +--- -Installation ----- -#### Swift Package Manager (SPM) -``` swift -dependencies: [ - .package(url: "https://git.loverde.com.br/Loverde-Company-LTDA/LCEssentials", .upToNextMajor(from: "1.0.0")) -] -``` +Daniel Arantes Loverde — -You can also add it via XCode SPM editor with URL: - -``` swift -https://git.loverde.com.br/Loverde-Company-LTDA/LCEssentials -``` - -## Usage example - -* Background Trhead - -```swift -LCEssentials.backgroundThread(delay: 0.6, background: { - //Do something im background - }) { - //When finish, update UI - } -``` -* NavigationController with Completion Handler - -```swift -self.navigationController?.popViewControllerWithHandler(completion: { - //Do some stuff after pop - }) - -//or more simple -self.navigationController?.popViewControllerWithHandler { - //Do some stuff after pop -} -``` -* Networking with `API` - -```swift -struct User: Decodable, Sendable { let id: Int; let name: String } - -let user: User = try await API.shared.request( - url: "https://api.example.com/users/{id}", - method: .get, - pathParams: ["id": "42"] -) -``` - -Full guide — requests, uploads, client certificates, error handling, and why it -beats a hand-rolled `URLSession`: **[Documentation/API.md](Documentation/API.md)** - -## Another components -> LCESnackBarView - **great way to send feedback to user** - -And then import `LCEssentials ` wherever you import UIKit or SwiftUI - -``` swift -import LCEssentials -``` - -Any question or doubts, please send thru email - -Daniel Arantes Loverde - - -[![Alt text](https://loverde.com.br/_signature/loverde_github_mail.gif "My Resume")](https://github.com/loverde-co/resume/) - -Autor: Daniel Arantes Loverde +[GitHub](https://github.com/loverde-co/resume/)