2018년 6월 10일 일요일

안드로이드 아키텍쳐 패턴을 알아보자

- Clean architecture에 대한 설명

Architecting Android...Reloaded

위 블로그 내용에 대한 Github 소스

https://github.com/android10/Android-CleanArchitecture-Kotlin

- Clean architecture boilerplate using the Model-View-Intent pattern

https://github.com/bufferapp/android-clean-architecture-mvi-boilerplate

- Redux 스타일로 구현하는 방식에 대한 설명. 총 8편의 씨리즈로 되어 있다.

Reactive apps with MVI

- Coordinator Pattern에 대해 알아본다.

In-app navigation with coordinators

위 블로그 내용에 대한 Github 소스

https://github.com/sockeqwe/CoordinatorsAndroid

- 많이 이야기되는 패턴에 대한 장단점 나열

결론으로 Redux 쓰지말고 MVVM 쓰라고 함

MVC/MVP/MVVM/CLEAN/VIPER/REDUX/MVI/PRNSAASPFRUICC

2018년 5월 24일 목요일

오늘의 스터디 - 2018년 2월 23일

Beyond the Basics of Image Optimization

- the old ones
PNG vs JPEG vs GIF

- the new ones
PNG vs JPG vs WebP vs HEIF

mozjpeg

optipng

img-loader for webpack

Blur Up

the contrast swap technique

Never use GIFs

Image processing pipeline: Download -> Decode -> VRAM -> Composite

2018년 5월 7일 월요일

참고하는 Swift 소스

RxSwift

ReSwift

Alamofire

IGListKit
 
GPUImage2

에디터( Editor ) 어떻게 만들지?

Text Editor: Data Structures

아래의 4가지 data type 에 대해 설명한다.

1. Array

Redis로 유명한 Antirez가 재미로 만든 kilo를 기반으로 하여 에디터 만들기를 설명하는 블로그가 있다. 처음 시작으로 좋을 듯.

2. Rope

Rust로 만든 에디터인 xi-editor가 rope로 구현되어 있다.

3. Gap Buffer

Emacs가 Gap Buffer를 사용하여 구현되어 있다고 한다.

4. Piece Table

Atom, Visual Studio Code가 Piece Table로 구현되어 있다고 한다.

2018년 3월 2일 금요일

자바 스터디

String concatenation in Java 9: Untangling invokeDynamic

- 자바와 하스켈에서 Expression problem을 어떻게 해결할 수 있을지 본다.

http://koerbitz.me/posts/Sum-Types-Visitors-and-the-Expression-Problem.html

http://koerbitz.me/posts/Solving-the-Expression-Problem-in-Haskell-and-Java.html

Expression problem: http://www.haruair.com/blog/3338

- C++에서 vtable이 어떻게 구현되는지 간단히 살펴본다.

http://www.michaelburge.us/2017/10/15/haskell-typeclasses-vs-cpp-classes.html

Java language oddities

Arrays are objects

Bytes and shorts are second-class citizens

Private fields and methods are accessible without reflection

Variance in Java and Scala

? extends T : read only인 이유 설명
? super T : write only인 이유 설명
-> 둘 다 실제 타입이 무엇인지 알지 못하기 때문에 발생한다.
-> design note 참조

Generic interfaces 요점

 https://go.dev/blog/generic-interfaces  Generic interface를 정의할 때 최소한의 제약만을 정의하고 실제 구현체들이 자신만의 필요한 제약을 추가할 수 있도록 하는 것이 좋다. pointer receiver를...