Last updated 2 min read

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.