profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/inamiy/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Yasuhiro Inami inamiy @delyjp Tokyo, Japan Functional Programmer at @delyjp / KURASHIRU / クラシル. Interests: Swift / Haskell / PureScript / Elm / Rust / TypeScript / Category Theory

inamiy/Cassowary 463

An incremental linear constraint-solving algorithm (Auto Layout) in Swift.

inamiy/Flexbox 72

Swift wrapper of facebook/yoga (CSS Flexbox layout engine).

inamiy/Actomaton 61

🎭 Swift async/await & Actor-powered effectful state-management framework.

inamiy/DebugLog 44

DebugLog macro alternative for Swift.

inamiy/Await 43

Swift port of C# Await using Cocoa's Run Loop mechanism.

inamiy/Actomaton-Gallery 17

🖼 Gallery App for Actomaton (async/await + Elm Architecture) + SwiftUI.

inamiy/FunAsync 13

⏳ Collection of Swift 5.5 async/await utility functions.

inamiy/FunOptics 9

🔍Simple functional Optics in Swift

inamiy/AVFoundation-Combine 8

AVFoundation + Combine extensions

inamiy/AnyScheduler 7

iOS 13 Combine's type-erased AnyScheduler.

PR merged inamiy/Actomaton-Gallery

Add Actomaton-Basic example project

This PR adds Actomaton-Basic.xcodeproj for simple demo, as Actomaton-Gallery is becoming becoming a large demo app.

+609 -0

0 comment

11 changed files

inamiy

pr closed time in an hour

delete branch inamiy/Actomaton-Gallery

delete branch : Actomaton-Basic

delete time in an hour

push eventinamiy/Actomaton-Gallery

Yasuhiro Inami

commit sha c41ccf649da0a8a348220e46e9a2a034656a3acf

Add Actomaton-Basic example project

view details

Yasuhiro Inami

commit sha 42493bf587c6d4540abcb31e87b20f1bc95cd5cd

Merge pull request #8 from inamiy/Actomaton-Basic Add Actomaton-Basic example project

view details

push time in an hour

PR opened inamiy/Actomaton-Gallery

Add Actomaton-Basic example project

This PR adds Actomaton-Basic.xcodeproj for simple demo, as Actomaton-Gallery is becoming becoming a large demo app.

+609 -0

0 comment

11 changed files

pr created time in an hour

create barnchinamiy/Actomaton-Gallery

branch : Actomaton-Basic

created branch time in an hour

push eventinamiy/Actomaton-Gallery

Yasuhiro Inami

commit sha f4a1aae7b398673a04170a40e93ff7e227e34917

Organize Examples directory

view details

push time in an hour

push eventinamiy/Actomaton-Gallery

Yasuhiro Inami

commit sha 4cff413b8379538b3f7aa5317091b7ae749932d9

Add VideoDetector example

view details

Yasuhiro Inami

commit sha f83210af8a482058fdfa3601217ab1b47d2b5a60

Merge pull request #7 from inamiy/VideoDetector Add VideoDetector example

view details

push time in an hour

delete branch inamiy/Actomaton-Gallery

delete branch : VideoDetector

delete time in an hour

PR merged inamiy/Actomaton-Gallery

Add VideoDetector example

Added VideoDetector example using Camera + Vision, ported from:

  • https://github.com/inamiy/Harvest-SwiftUI-VideoDetector

(NOTE: SwiftyTesseract is excluded in this PR)

+1497 -17

0 comment

23 changed files

inamiy

pr closed time in an hour

PR opened inamiy/Actomaton-Gallery

Add VideoDetector example

Added VideoDetector example using Camera + Vision, ported from:

  • https://github.com/inamiy/Harvest-SwiftUI-VideoDetector

(NOTE: SwiftyTesseract is excluded in this PR)

+1497 -17

0 comment

23 changed files

pr created time in an hour

create barnchinamiy/Actomaton-Gallery

branch : VideoDetector

created branch time in an hour

startedtaketo1024/swm-eigen

started time in 2 days

startedtokorom/SharePlaySample

started time in 3 days

create barnchinamiy/Actomaton

branch : remove-Publisher.toAsyncStream

created branch time in 3 days

startednoppefoxwolf/DebugMenu

started time in 3 days

push eventinamiy/Actomaton-Gallery

Yasuhiro Inami

commit sha 72cb1dd119207722ff9ba5f8555b6726d5992e45

Add `Actomaton-UIKit-Gallery` using `RouteStore`

view details

Yasuhiro Inami

commit sha 5f446ccb511bfae4fa0b8835a4a4642065d57c1f

Merge pull request #6 from inamiy/UIKit-Gallery Add `Actomaton-UIKit-Gallery` using `RouteStore`

view details

push time in 3 days

delete branch inamiy/Actomaton-Gallery

delete branch : UIKit-Gallery

delete time in 3 days

PR merged inamiy/Actomaton-Gallery

Add `Actomaton-UIKit-Gallery` using `RouteStore`

This PR adds Actomaton-UIKit-Gallery example project which demonstrates:

  1. Pure UIKit + multi-Actomatons
  2. SwiftUI (reusing existing gallery example) + UIHostingController + multi-Actomatons

with UIKit-based routing (e.g. UINavigationController, UITabBarController).

This PR uses following new features from:

  • https://github.com/inamiy/Actomaton/pull/7

RouteStore

A subclass of Store that also emits route: AnyPublisher<Route, Never> as output, which is a common pattern in UIKit-based MVVM that triggers actions outside of its domain.

Note that RouteStore has a type of Reducer<Action, State, SendRouteEnvironment<Environment, Route>>, and may additionally need contramap(environment:) in case of migrating from SwiftUI-based reducer.

let store = RouteStore(
    state: state,
    reducer: reducer, // NOTE: has type of Reducer<Action, State, SendRouteEnvironment<Environment, Route>>
    environment: environment,
    routeType: Route.self // for quick type-inference
)

And common ViewController-builder and routing code will look like this:

func build() -> UIViewController {
    let store = RouteStore(
        state: state,
        reducer: reducer,
        environment: environment,
        routeType: Route.self
    )

    let vc = HostingViewController(
        store: store,
        makeView: MyView.init
    )

    store.subscribeRoutes { route in
        switch route {
        case let .showExample(example):
            let newVC = example.build()
            vc.navigationController?.pushViewController(newVC, animated: true)
        }
    }
}

HostingViewController

A wrapper of UIHostingController that takes Store and View's initializer to be lazily instantiated on viewDidLoad.

+1519 -0

0 comment

26 changed files

inamiy

pr closed time in 3 days

PR opened inamiy/Actomaton-Gallery

Add `Actomaton-UIKit-Gallery` using `RouteStore`

This PR adds Actomaton-UIKit-Gallery example project which demonstrates:

  1. Pure UIKit + multi-Actomatons
  2. SwiftUI (reusing existing gallery example) + UIHostingController + multi-Actomatons

with UIKit-based routing (e.g. UINavigationController, UITabBarController).

This PR uses following new features from:

  • https://github.com/inamiy/Actomaton/pull/7

RouteStore

A subclass of Store that also emits route: AnyPublisher<Route, Never> as output, which is a common pattern in UIKit-based MVVM that triggers actions outside of its domain.

Note that RouteStore has a type of Reducer<Action, State, SendRouteEnvironment<Environment, Route>>, and may additionally need contramap(environment:) in case of migrating from SwiftUI-based reducer.

let store = RouteStore(
    state: state,
    reducer: reducer, // NOTE: has type of Reducer<Action, State, SendRouteEnvironment<Environment, Route>>
    environment: environment,
    routeType: Route.self // for quick type-inference
)

And common ViewController-builder and routing code will look like this:

func build() -> UIViewController {
    let store = RouteStore(
        state: state,
        reducer: reducer,
        environment: environment,
        routeType: Route.self
    )

    let vc = HostingViewController(
        store: store,
        makeView: MyView.init
    )

    store.subscribeRoutes { route in
        switch route {
        case let .showExample(example):
            let newVC = example.build()
            vc.navigationController?.pushViewController(newVC, animated: true)
        }
    }
}

HostingViewController

A wrapper of UIHostingController that takes Store and View's initializer to be lazily instantiated on viewDidLoad.

+1519 -0

0 comment

26 changed files

pr created time in 3 days

create barnchinamiy/Actomaton-Gallery

branch : UIKit-Gallery

created branch time in 3 days

push eventinamiy/Actomaton

Yasuhiro Inami

commit sha 25b75e9f093bfa61e4aa772c7f060d1b5c5d86e6

[ActomatonStore] Add `RouteStore`

view details

Yasuhiro Inami

commit sha 27de5b536ad6b8921299ab93f2caafc9cc028d1a

[ActomatonStore] Add `HostingViewController`

view details

Yasuhiro Inami

commit sha 4bc47a28e30b0dd449556df3068f1f4466794bdd

Merge pull request #7 from inamiy/RouteStore [ActomatonStore] Add `RouteStore` & `HostingViewController` (UIKit support)

view details

push time in 3 days

delete branch inamiy/Actomaton

delete branch : RouteStore

delete time in 3 days

PR merged inamiy/Actomaton

[ActomatonStore] Add `RouteStore` & `HostingViewController` (UIKit support) enhancement

This PR adds following features (especially for working with UIKit)

RouteStore

A subclass of Store that also emits route: AnyPublisher<Route, Never> as output, which is a common pattern in UIKit-based MVVM that triggers actions outside of its domain.

Note that RouteStore has a type of Reducer<Action, State, SendRouteEnvironment<Environment, Route>>, and may additionally need contramap(environment:) in case of migrating from SwiftUI-based reducer.

let store = RouteStore(
    state: state,
    reducer: reducer, // NOTE: has type of Reducer<Action, State, SendRouteEnvironment<Environment, Route>>
    environment: environment,
    routeType: Route.self // for quick type-inference
)

HostingViewController

A wrapper of UIHostingController that takes Store and View's initializer to be lazily instantiated on viewDidLoad.

+128 -1

0 comment

3 changed files

inamiy

pr closed time in 3 days

PR opened inamiy/Actomaton

[ActomatonStore] Add `RouteStore` & `HostingViewController` (UIKit support) enhancement

This PR adds following features (especially for working with UIKit)

RouteStore

A subclass of Store that also emits route: AnyPublisher<Route, Never> as output, which is a common pattern in UIKit-based MVVM that triggers actions outside of its domain.

Note that RouteStore has a type of Reducer<Action, State, SendRouteEnvironment<Environment, Route>>, and may additionally need contramap(environment:) in case of migrating from SwiftUI-based reducer.

let store = RouteStore(
    state: state,
    reducer: reducer, // NOTE: has type of Reducer<Action, State, SendRouteEnvironment<Environment, Route>>
    environment: environment,
    routeType: Route.self // for quick type-inference
)

HostingViewController

A wrapper of UIHostingController that takes Store and View's initializer to be lazily instantiated on viewDidLoad.

+128 -1

0 comment

3 changed files

pr created time in 3 days

push eventinamiy/Actomaton

Yasuhiro Inami

commit sha 25b75e9f093bfa61e4aa772c7f060d1b5c5d86e6

[ActomatonStore] Add `RouteStore`

view details

Yasuhiro Inami

commit sha 27de5b536ad6b8921299ab93f2caafc9cc028d1a

[ActomatonStore] Add `HostingViewController`

view details

push time in 3 days

push eventinamiy/Actomaton

Yasuhiro Inami

commit sha 5c20aec8b98812881a1331f88ea16a0b098ab11d

[ActomatonStore] Add `RouteStore` & `HostingViewController`

view details

push time in 3 days

push eventinamiy/Actomaton

Yasuhiro Inami

commit sha f08658a0c207d8238bb6b6348eb75b62d0f26a12

subscribeRoutes

view details

push time in 3 days

startedsonsongithub/museum2tch

started time in 3 days

startedkishikawakatsumi/AUCapture

started time in 4 days

push eventinamiy/Actomaton

Yasuhiro Inami

commit sha db03cf4e450823a6c69996ba51fcc00e35607127

hostVC

view details

push time in 4 days