Projects
#About These Notes
In recent years, I've come to see creating open-source projects as an especially life-enriching practice. It's not only a joyful and high-quality leisure activity but also a driver of curiosity and learning. Beneficial both personally and professionally.
Overview
Project | Active Stage | Current State | Repository |
---|---|---|---|
SwiftletModel | 2024-2025 | in active development | Type-safe, zero-boilerplate, in-memory graph model engine for Swift. |
SwiftySegmentControl | 2022 | is use, lazy maintainance | Custom segmented picker for SwiftUI |
Puredux | 2021 | in use + minor improvements & maintenance | Puredux is a UDF architecture framework in Swift. |
[[Vapor RestKit]] | 2020 – 2021 | lazy maintenance + Vapor 5.0 upgrade plans | Fast pace REST API library for Vapor |
SwiftyUIKit | 2021 | in use + lazy maintenance | Featherweight lib for building an autolayout-powered UIView layout in a clean SwiftUI-style |
Koalas | 2020 | made but haven't touched since then | Tabular data manipulation is Swift inspired by Pandas |
SwiftletModel
Not only a lightweight CoreData/SwiftData alternative, but also a type-safe, normalized, in-memory graph model engine — a place to merge, shape, and manage business entity data from multiple sources, effortlessly. More info: SwiftletModel
- Entities as Plain Structs: Define your entities using simple Swift structs.
- Bidirectional Relations: Manage relationships between entities effortlessly with type safety.
- Normalized In-Memory Storage: Store your data in a normalized form to maintain consistency and efficiency.
- On-the-Fly Denormalization: Transform your data into any required shape instantly.
- Incomplete Data Handling: Seamlessly handle scenarios involving partial or missing data.
- Indexing: Sort and filter data efficiently, enforce unique constraints, and perform full-text search. B-tree, Unique, and Full-Text BM25-ranked indexes help boost performance.
- Codable Out of the Box: Easily encode and decode your entities for persistence, response mapping, or other purposes.
Puredux
Puredux is an architecture framework for SwiftUI and UIKit designed to streamline state management with a focus on unidirectional data flow and separation of concerns. More info: Puredux
Features:
- Unidirectional MVI Architecture: Supports a unidirectional data flow to ensure predictable state management and consistency.
- SwiftUI and UIKit Compatibility: Works seamlessly with both SwiftUI and UIKit, offering bindings for easy integration.
- Single Store/Multiple Stores Design: Supports both single and multiple store setups for flexible state management of apps of any size and complexity.
- Separation of Concerns: Emphasizes separating business logic and side effects from UI components.
- Performance Optimization: Offers granular performance tuning with state deduplication, debouncing, and offloading heavy UI-related work to the background.
Vapor RestKit
Library that allows to quickly build robust and consistent Restful API with Server Side Swift framework Vapor.
Features:
- CRUDs with Resource and Nested Resource Controllers
- Parent-Child and Siblings relations for Nested Resource Controllers
- Nested Resource Controllers for Authenticatable Resource
- Filter query
- Sorting query
- Eager loading query
- Fluent Model convenience extensions
- Cursor Pagination
Koalas
Tabular data manipulation is Swift inspired by Pandas from python data analyses stack.
Features:
- DataSeries, DataFrame, DataPanel for 1D, 2D, 3D data sets
- Missing data handling
- Automatic and explicit data alignment
- Memberwise arithmetic operations
- Flexible reshaping of data sets
- IO tools: read/write to csv, JSON encoding/decoding
- Data series-specific functionality: rolling and expanding window functions, shifting, conditional operations
SwiftySegmentControl
Custom segmented picker for SwiftUI
SwfityUIKit
SwiftyUIKit is a featherweight lib that allows to build an autolayout-powered UIView layout in a clean SwiftUI-style while using pure UIKit API for views configuration and additional layout tweaking.
Comments