Retrofit2를 사용하여 Multipart Form-Data형태로 파일과 Body를 업로드하는 방법에 대해 정리해보고자 합니다. MultiPart에 대해서 잘 모르는 분들을 위해 간단하게 MultiPart에 대해 정리해보고자 합니다. Multipart/form-data File Upload Feature를 구현할 때, Client가 만약 Web Browser라면 Form을 통해서 사용자로부터 파일을 받고 올리게 됩니다. 이때 Web Browser가 보내는 HTTP 메시지에서 Content-Type 속성이 multipart/form-data로 지정되며, 정해진 형식에 따라 메시지를 인코딩하여 전송합니다. 이를 처리하기 위한 서버는 멀티파트 메시지에 대해서 각 파트별로 분리하여 개별 파일의 정보를 얻게 ..
Android 에서 Recycler View를 사용할 때 Adapter에 데이터 List를 넘겨주게 된다. 아래 처럼 말이다. ArrayList imageUrls; StoryImageAdapter adapter = new StoryImageAdapter(context, imageUrls); 이 때 imageUrls라는 ArrayList에 데이터를 넣고 Adapter Constructor의 매개 변수로 넘겨주게 되는데 보통은 아래처럼 데이터를 넣어 주게 된다. public void setImageUrlSet(ArrayList urls) { this.imageUrls = urls; } 위의 코드는 urls라는 매개 변수 값을 받아와서 imageUrls라는 ArrayList에 대입해주는 구문인데 자세히 살펴보..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/oW3R9/btqw796WMNX/tjQrAT3ECacUPSAdVWAvWK/img.png)
이번 포스트에서는 Lottie 사용법에 대해 간단하게 알아보려고 합니다. 그동안 우리가 만들어온 어플리케이션들이 뭔가 밋밋하고 생동감 넘치지 않은 느낌이 들었던 경험이 한 번쯤은 가지고 있을 것입니다. 그러한 밋밋함을 채워줄 무언가를 소개해드리려고 합니다. AirBnB에서 개발한 Lottie Animation 라이브러리 입니다. Lottie란? After Effect에서 제작한 Motion Graphic을 Android에서 그대로 보여줄 수 있는 것으로써 OOM(OUT OF MEMORY)에 대해서도 신경을 많이 쓴 라이브러리 입니다. 이전에 Facebook에서 KeyFrame이라는 라이브러리를 개발했었는데 이보다 더 많은 기능을 제공하는 라이브러리가 바로 Lottie가 되겠습니다. Lottie는 실제 A..
이번 포스트에서는 RxJava를 사용하여 간단하게 EditText에 Debounce를 구현하는 시간을 가져보도록 하겠습니다. 우선 시작하기에 앞서 Debounce가 무엇인지 알아보고 가도록 하겠습니다. Debounce vs. Throttle Debounce를 더 잘 설명하기 위해 비슷한 개념 중 하나인 Throttle과 함께 설명하도록 하겠습니다. Scrolling Event가 발생 할 때 마다 호출되는 Call Back이 있다고 가정해보도록 합시다. 이 말은 1px만 스크롤되어도 이벤트가 발생한다는 것을 의미합니다. 이런 Scrolling Event에 매 번 Call Back이 발생한다면 어떨까요? 그리고 그 Call Back이 수행하는 일이 리소스를 굉장히 많이 먹는 작업이라면 어떨까요? Thrott..
안드로이드를 처음 배울 때 우리는 레이아웃을 XML을 사용하여 구현하였다. 그리고 activity class에서 view를 binding하여 기능을 구현하곤 하였다. 아래처럼 말이다. public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); } } 보통 위와 같이 findViewById 메소드를 사용하여 구현하였을 것..
이번 포스트는 Android에서 커스텀 Fragment Pager Adapter를 활용하여 간단하게 Fragment View Pager를 구현해보도록 하겠습니다. RecyclerView나 ListView보다 더 간단한 코드를 통해 Fragment View Pager를 구현할 수 있습니다. 1. XML Layout 구성하기 우선 Activity에 ViewPager를 추가해줍니다. (사이즈는 Max로 해주셔도 되고 본인취향입니다.) 간단하게 ViewPager를 match_parent, match_parent로 하여 레이아웃을 구성해보았습니다. 이제 ViewPager에 추가해 볼 Fragment Layout를 짜보도록 하겠습니다. 레이아웃은 간단하게 구성합니다. fragment_start_1.xml fragm..
Context의 정의 Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc. Application 환경에 대한 전역 정보를 접근하기 위한 인터페이스. 추상 클래스이며 ..
Android Activity의 4가지 런치모드에는 다음과 같이 존재한다. Standard SingleTop SingleTask SingleInstance Standard방식 일반적인 모드다. 동일한 액티비티던 다른 액티비티던 계속 엑티비티 스택에 쌓아 올린다. SingleTop방식 statndard 모드와 다르게 "최상위 스택에 있는 엑티비티"를 또 다시 호출할경우 새로 스택에 쌓지않고 기존에 있는 액티비티를 재활용하고 이때 해당 엑티비티 (그림에서 A) 는 onNewIntent() 메서드가 호출되고 새로운 intent 를 넘김으로써, 엑티비티가 다시 호출 됬음을 알린다. 이때 주의할 점은 "최상위 스택"에 있지 않는 엑티비티의 경우 그냥 standard 모드 처럼 새로운 엑티비티가 생성되고 스택에 쌓..
- Total
- Today
- Yesterday
- 아이폰
- 컬렉션
- 스위프트
- retrofit
- Kotlin
- android
- 코틀린
- Auto Layout
- Notissu
- 오토레이아웃
- Apple Watch
- watchos
- CloudComputing
- java
- SwiftUI
- Elliotable
- 안드로이드
- Swift
- apple
- 함수형프로그래밍
- 상속
- 애플워치
- ios
- Reactive programming
- databinding
- 함수형
- C++
- Rxjava
- 알고리즘
- XCode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |