A self-taught Senior Engineer (Android, iOS, Flutter, NestJs, ...) with 7+ years of experience (since 2018 Summer)
- ๐ช Has a strong knowledge of
Clean Architecture,MVVM,MVI,Reactive Programming(RxJava/RxKotlin, RxSwift, rxdart, RxJs, Kotlinx Coroutines Flow, ...),Kotlin/Android,Dart/Flutter,iOS/Swift. Official RxDart maintainer ๐ค - ๐ฑ Currently learning
C#,.NETandASP.NET Core: netauth-ddd-cqrs-clean, Dotnet-Playground - ๐ซ Contact
Rx Mobile Teamvia https://rx-mobile-team.github.io/profile/ for freelance jobs ๐ค
Visitor count
- FlowExt (https://search.maven.org/artifact/io.github.hoc081098/FlowExt, https://github.com/hoc081098/FlowExt) - Kotlinx Coroutines Flow Extensions. Extensions to the Kotlin Flow library.
- kmp-viewmodel (https://search.maven.org/artifact/io.github.hoc081098/kmp-viewmodel, https://github.com/hoc081098/kmp-viewmodel) - ๐ Kotlin Multiplatform ViewModel. Kotlin Multiplatform MVVM. Common/Shared ViewModel in Kotlin Multiplatform - A Kotlin Multiplatform library that provides shared MVVM for UI applications.
- solivagant (https://search.maven.org/artifact/io.github.hoc081098/solivagant-navigation, https://github.com/hoc081098/solivagant) - ๐ Compose Multiplatform Navigation - ๐ธ Pragmatic, type safety navigation for Compose Multiplatform. Based on Freeletics Khonshu Navigation.
โฅ๏ธ ViewModel, SavedStateHandle, Lifecycle, Multi-Backstacks, Transitions, Back-press handling, and more... - kotlin-channel-event-bus (https://search.maven.org/artifact/io.github.hoc081098/channel-event-bus, https://github.com/hoc081098/kotlin-channel-event-bus) - A Kotlin Multiplatform library that provides a simple event bus implementation using KotlinX Coroutines Channels. Multi-keys, multi-producers, single-consumer and thread-safe event bus backed by
kotlinx.coroutines.channels.Channels.
-
ViewBindingDelegate (https://jitpack.io/#hoc081098/ViewBindingDelegate, https://github.com/hoc081098/ViewBindingDelegate) - Simple one-liner
ViewBindinginFragmentsandActivitieswith Kotlin Property Delegates. -
Contributed to https://github.com/freeletics/khonshu
- PhDownloader (https://cocoapods.org/pods/PhDownloader, https://github.com/hoc081098/PhDownloader) - Simple, reactive and functional downloader for
iOS Swiftwith the power ofRxSwift,RxAlamofire.
- RxDart official maintainer https://github.com/ReactiveX/rxdart/commits?author=hoc081098 - An implementation of the popular
ReactiveXapi for asynchronous programming, leveraging the nativeDart StreamsAPI. - rx_shared_preferences (https://pub.dev/packages/rx_shared_preferences, https://github.com/hoc081098/rx_shared_preferences) - Reactive shared preferences for
Flutter. - rx_redux (https://pub.dev/packages/rx_redux, https://github.com/hoc081098/rx_redux) -
Reduximplementation based onDart Stream, with the power ofRxDart. Reactive redux store forDart&Flutter. - disposebag (https://pub.dev/packages/disposebag, https://github.com/hoc081098/disposebag) - A package helps to cancel
StreamSubscriptions and closeSinks. - flutter_disposebag (https://pub.dev/packages/flutter_disposebag, https://github.com/Flutter-Dart-Open-Source/flutter_disposebag) - Automatically disposes
StreamSubscriptions and closesSinks when disposingState<T>. - sqlbrite (https://pub.dev/packages/sqlbrite, https://github.com/hoc081098/sqlbrite) - Reactive stream wrapper around
sqfliteforFlutterinspired bysqlbrite. - stream_loader (https://pub.dev/packages/stream_loader, https://github.com/hoc081098/stream_loader) - Loading content asynchronously with Dart stream.
- rxdart_ext (https://pub.dev/packages/rxdart_ext, https://github.com/hoc081098/rxdart_ext) - Some extension methods and classes built on top of
RxDart. - rx_storage (https://pub.dev/packages/rx_storage, https://github.com/Flutter-Dart-Open-Source/rx_storage) - Reactive storage for
Dart/Flutter.RxDartStorage forDart/Flutter. - listenable_stream (https://pub.dev/packages/listenable_stream, https://github.com/Flutter-Dart-Open-Source/listenable_stream) - Convert
Listenable(eg.ChangeNotifier),ValueListenable(eg.ValueNotifier) toStream/ValueStream. - distinct_value_connectable_stream (https://pub.dev/packages/distinct_value_connectable_stream, https://github.com/hoc081098/distinct_value_connectable_stream) - Distinct value connectable stream for
RxDart, useful forBLoCpattern. - did_change_dependencies (https://pub.dev/packages/did_change_dependencies, https://github.com/hoc081098/did_change_dependencies) - Return a
Streamthat emitsnulland done event whendidChangeDependenciesis called for the first time. - dart_either (https://pub.dev/packages/dart_either, https://github.com/hoc081098/dart_either) - Either monad for Dart, including monad comprehensions.
- flutter_bloc_pattern (https://pub.dev/packages/flutter_bloc_pattern, https://github.com/hoc081098/flutter_bloc_pattern) - Base class,
BLoCprovider andrxdartbuilder forBLoCpattern inFlutter. - flutter_provider (https://pub.dev/packages/flutter_provider, https://github.com/hoc081098/flutter_provider) - Flutter generic provider using InheritedWidget. An helper to easily exposes a value using InheritedWidget without having to write one.
- cancellation_token_hoc081098 (https://pub.dev/packages/cancellation_token_hoc081098, https://github.com/hoc081098/cancellation_token_hoc081098) - Dart Cancellation Token. Inspired by CancellationToken in C#. A Dart utility package for easy async task cancellation.
- http_client_hoc081098 (https://pub.dev/packages/http_client_hoc081098, https://github.com/hoc081098/http_client_hoc081098) - Simple and powerful HTTP client for Flutter and Dart application.
https://profile-summary-for-github.com/user/hoc081098
- Looking at
Dpclass in Jetpack Compose - Why do @Composable functions in Jetpack Compose usually useDp.Unspecifiedas default value? Why not use null? The optimization of Jetpack Compose under the hood. - Bร n vแป Subject trong Rx (Subjects in Rx) - Serially rule in RxSwift, RxJava, RxKotlin and more.
- Grouping trong Kotlin (Grouping in Kotlin) -
groupingBy,groupBy,reduce, lazy-evaluation in Kotlin.





