- 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년 6월 10일 일요일
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일 월요일
에디터( 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로 구현되어 있다고 한다.
아래의 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 참조
- 자바와 하스켈에서 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 참조
2018년 2월 21일 수요일
2018년 2월 1일 목요일
참고하는 안드로이드 소스
Plaid
SdkSearch
AdaptiveIconPlayground
Conductor
FlexboxLayout
android-architecture
android-ktx
user interface samples
material-component
Android RecyclerView and ViewPager2 source code
Insetter
tivi
Okio :Kotlin으로 재작성
SdkSearch
AdaptiveIconPlayground
Conductor
FlexboxLayout
android-architecture
android-ktx
user interface samples
material-component
Android RecyclerView and ViewPager2 source code
Insetter
tivi
Okio :Kotlin으로 재작성
피드 구독하기:
글 (Atom)
Generic interfaces 요점
https://go.dev/blog/generic-interfaces Generic interface를 정의할 때 최소한의 제약만을 정의하고 실제 구현체들이 자신만의 필요한 제약을 추가할 수 있도록 하는 것이 좋다. pointer receiver를...