πŸ“‹

Resume - Hiroshi Kimura(Muukii)

レジγƒ₯パ

🌲

I'm Hiroshi Kimura. I'm using Muukii as handle name. My profession is development iOS Application. In Japan, I work for an IT company providing own services, and mainly I create iOS Application. I like creating iOS Application that has nice UI and good performances. To get this efficiently, it's a good way to create as a library. Then sometimes I share that library on the internet. I hope every mobile application get more goodness efficiently with my libraries.

iOS Application Development

Strong point (what I like)

πŸ’Ž Making User Interface

Smooth UI

Focusing to make UI that has no drop frames.

Using Texture

πŸ’‘Why we use

I spent a lot of time to find a way of speeding up UI. (Especially, scrolling TableView, CollectionView) And I found that AutoLayout system sometimes increase the cost of layout. So, I've tried to use other layout engines (Yoga, LayoutKit, Texture) Our team decided to use Texture in our application. Because Texture has also a lot of optimizations for UI rendering.

🌟

During using Texture, I've tried to create a small library to be more easily usage in Swift Especially, this library is so inspired by SwiftUI Syntax. Using ProperyWrapper and Function builders. https://github.com/muukii/TextureSwiftSupport

πŸ’‘What the product gets by using Texture

πŸ’‘ What I get by using Texture

Animations

The animation has 2 types roughly.

  • Static Animation
    • Calculation all values before starting animation.
  • Dynamic Animation
    • Calculation next value dynamically.
    • e.g. facebook/pop, UIDynamicAnimator.

According to Fluid Interfaces, I use UIViewPropertyAnimator aggressively.

The one of Fluid Interfaces meaning is interruptible.

Apple has started using the half modal UI on several built-in applications. (Maps, Stocks, Shortcuts) Unfortunately, Apple does not provide API to third party application.

So, I created a library that make us can use the half modal UI anywhere.

Making micro UI Component to save development time.

TODO

πŸ’Ž Thinking Application Architecture

MVC / MVVM / Flux like

Around 2012-2015, I use a lot of shared instances (like xxxManager). But, this approach made so complicated source code. I know shared-instances is not actual bad things, but using that makes the developer can write the code they want to do. And, separating each environment (e.g. multi-user) will be harder.

Around 2016, RxSwift became a part of trend. Our development team started to use RxSwift with MVVM architecture. However, using RxSwift with two way binding was so hard. Basically, the codebase will get more complicated. So next, What we thought was bring the concept of flux into ViewModel. And I created a library to get the more simplified syntax.

🌟

Verge - Unidirectional State Management library https://github.com/muukii/Verge/commit/9701318654a15350c4d1f44ba3a5304e7521ee38

In 2018, I created the design website at Eureka, Inc. This built with GatsbyJS. It has given me a lot of inspiration and experiences. Especially, Component Oriented Programming(Building UI). With this, I have been able to get more understanding of Texture's layout system. It's really similar to writing JSX. Even now, these experiences help me.

Multi-module application

πŸ’Ž Contribute more productivity

OpenSource work

My OpenSource work focuses on Swift and iOS Development. I'm really interested in how much the code I make works well in the real-world. Especially, most of the libraries are used on production at @eure.

  • making library (as a OSS, micro extension)

Setting up Automation

I have experience that setting up following automations.

  • Uploading to AppStoreConnect, Fabric, Firebase
  • Synchronization dSYM from AppStoreConnect to Crashlytics

These automations are built with Fastlane.

Running on Bitrise or Jenkins.

Previously, I have an experience that makes CI/CD application from scratch with Swift. With this, I get a super expensive experience of creating an application like Jenkins. It's so difficult. We have to think about so many things, queueing, managing system resources, etc...

🌟

The source code of that application is here. https://github.com/eure/Tower

πŸ’Ž People Management

WIP

I have experience in managing around 10 engineers.

  • Including junior to senior

Japanese - ζ—₯本θͺž

WIP

πŸš€
Development Tools for iOS