본문 바로가기

반응형

Android

MVP 디자인 패턴이란? 오늘은 mvp에 대해 알아보려 합니다. 왜냐하면!!!? 제가 지금까지 7~8개월을 mvp 패턴을 이용해 만들어 왔지만... 아무도 얘기해주는 사람이 없었기에 막 쓰고 있었던것이었던것이었습니다....(선임이나 누가 도와줬으면...) 아무래도 스타텁에 다니다 보니 혼자 개발했고, 스터디에서도 혼자 개발하다보니 참 하하하호호호 하네요 MVP에 대해 "잘" 알고 넘어가야 MVVM에 대해 이해하기가 편할거 같아 다시 공부하면서 정리해봤던 내용들입니다. MVP : 컨트롤러의 책임에 묶이지 않고도 V와 Activity가 자연스럽게 결합하도록 합니다. Model : "*비즈니스 로직"으로, 내부적으로 쓰이는 데이터를 저장하고 처리하는 역할. 데이터 + 상태 + 비즈니스 로직 입니다. Data를 말함. 단순 데이터가 아.. 더보기
kotlin Extension 으로 핸드폰 크기 확인 안녕하세요~ 오랜만에 글을 쓰러 왔습니다... 이직을 했더니 회사가 바쁘...네요... 이제 다시 블로그를 시작하려 합니다.(오랜만에 오니 뭐가 많이 바뀌었네요...어렵다...) 많이들 찾아주셔서 감사합니당 :) 오늘은 제가 사용하고 있는 간단한 "핸드폰 크기 판단" 을 위한 kotlin extension 을 설명해드리려고 합니다!!! 짝짝짝~~ 박수~~~점... 거두절미하고 바로 .... fun Context.isNote(): Boolean = resources?.configuration?.smallestScreenWidthDp?.let { it >= 000 } ?: false fun Context.isNote(): Boolean = resources?.configuration?.smallestScre.. 더보기
android 에서 font 사용 시 필요한 "용량"!!! 직장 또는 협업을 하다보면, 디자이너가 요청하는 "폰트"가 다를 것입니다... 이건 매우매우 중요하죠.. 하지만 아무 폰트나 가져다 쓰기에는 용량이 너무 크죠!?!?!?! 아래의 링크를 따라가면, 필요한 otf 파일을 다운받아서 사용하는데 용량이 글쎄!!! 1m도 안됩니다. 사용 방법은 1) 아래 링크에서 필요한 것을 클릭 후 다운 2) 이름 변경(소문자와 "_" 밖에 사용 불가!!합니다.) 3) android studio -> res -> font directory 를 만들어 안에다가 넣습니다 4) 필요한 곳에 android:fontFamily="@font/noto_regular"이렇게 가져다 쓰면 끝!!! 쓸데없이 큰 용량 폰트 쓰지 말고 줄입시다!!! https://github.com/UYEONG/.. 더보기
multi notification 보낼 시 참고 카카오톡처럼 notification을 여러 개로 보내야 하는 작업을 했습니다. 여러 개로 나누는 방법은 notificationManager.notify(Integer.valueOf(phoneNumber) /* ID of notification */, notificationBuilder.build()); 이겁니다. 즉, notify 할 때 해당 노티마다 "구분"을 해주기 위한 "값"을 넣어줍니다. 그러면 여러 개의 노티가 똭!!! 그리고 해당 노티마다 "다른" 작동을 하기 위해서는 PendingIntent pendingIntent = PendingIntent.getActivity(this, Integer.valueOf(phoneNumber) /* Request code */, intent, PendingI.. 더보기
Google map api 적용하기 안녕하세요. 오늘은 map api 적용 중 발생한 문제와 해결 방안에 대해 간단히 써보려고 합니다!!! 새로 토이 프로젝트를 진행하게 되었고, 사용할 api 는 google / facebook (+kakao, naver) login api google / kakao / naver ma api 정도로 간단히 생각하고 있는데요(초기 진행은.. 추후 더 api 나 라이브러리 추가예정입니다 ㅎㅎ ) google map api 를 오랜만에 쓰다보니 어렵진 않지만 복잡?하더라구요! 그럼 google map api 적용을 해보겠습니다!!!!!!!!!!! 저는 https://webnautes.tistory.com/647 이 싸이트를 참고했어요! 간단히 설명드리자면, https://console.developers.go.. 더보기
extesion 이용한 custom toast 만들기 fun Any?.showToast(@StringRes stringRes: Int, context: Context? = AppApplication.getInstance(), duration: Int = Toast.LENGTH_SHORT) { val toast = Toast.makeText(context, context?.getString(stringRes), Toast.LENGTH_LONG) toast.setGravity(Gravity.TOP, 0, 68.toPx(context)) toast.show() } 이렇게 해주면 됩니다. setGravity를 통해 위치(gravity.~~, x축 위치, y축 위치 조정)를 지정해주면 됩니다. .toPx는 역시 extesion 으로 사이즈 변환을 위한 것입니다. f.. 더보기
CoordinatorLayout 를 이용해 구글 캘린더처럼 만들기 제가 처음에, 구글 캘린더처럼 구현하기 위해 고민했던 예제입니다. 구글 캘린더를 써보신분들은 알겠지만, 달력을 펼치고 줄이는 과정에서 위로 드래그하면 스르륵 사라집니다. 저는 아직 초보라 이게 무슨 레이아웃인지 몰랐고, 바텀씨트가 그렇게 되는 걸 알게되 그걸 인용해보자 라고 생각만 하고 도전했습니다. 생각의 끈이 짧았죠. 이렇게 계속 찾아 구현하던 도중, topSheet를 만들어놓은 싸이트까지 찾게 되지만, 결국 원하던 것은 아니였습니다. drag관련해서도 찾아보고 여러 가지 노력하던 도중..... 드디어 드디어!!!! 제가 원하던 기능인 스르륵 기능을 찾게 되었는데.. 이건 바로 CoordinatorLayout를 이용한 단순작업이었던 것이었던 것입니다..(내 일주일 돌려줘...) 저같은 사람들이 없기 .. 더보기
Material Calendar 커스텀하기 (2) 안녕하세요 오늘은 달력 커스텀하기 2번째 시간입니다. 첫번째꺼는 android 에 있는데, 이건 kotlin 에 있는 이유는... 여긴 제가 처음부터 구현했기 때문에 kotlin을 사용해서입니다. 단순한 이유죠.. 여튼 바로 시작할게요!!! 고생좀 하다보니 알게 되는 ... 스트레스가 다 풀렸어요! 화이팅! 우선 1번처럼 https://github.com/Applandeo/Material-Calendar-View 에서 library 만 import 합니다. 그런 다음엔 이제 가져다 쓸 일만 남았죠. 고생하셨습니다. 이러고 끝내고 싶ㄷ... 아니 절대 아니구요...시작하겠습니다. 우선 xml에 아래와 같이 넣어줍니다. 이렇게 넣어준 뒤, 간단한 기능들은 위 주소에서 참고하세요! 이 캘린더는 특이하게, 바로.. 더보기
Material Calendar 커스텀하기 (1) 18.11.28 수정---------------------- 오늘은 지금 하고 있는 프로젝트에서 골머리를 썩히고 있는!!! Material calendar 에 대해 써보려고 합니다. 많이 부족하고 이게 맞나 싶지만... 열심히 노력하고 있습니다!!! 시작하겠습니다 ㅎㅎ 제가 사용한 캘린더는 1. https://github.com/prolificinteractive/material-calendarview 2. https://github.com/Applandeo/Material-Calendar-View 위의 두개를 사용했습니다. 우선 여기서는 1번만 다룰 예정입니다. 추후 2번을 업데이트 하겠습니다 ㅎㅎ 저는 1번을 월별 달력과 주별을 사용하려 했지만... 월별만 사용했고 dot를 여러 개 찍는 걸로 했습니.. 더보기
다양한 recyclerView 활용법 제목 그대로 recyclerView에 체크박스를 놔두고 선택한 개수를 제한하는 방법, 제한 없는 방법, 한개만 선택 가능한 recyclerView를 구현해볼 예정입니다. 코드만 보실 분은 https://github.com/JC-Choo/JC_Android/tree/master/Test_folder 참고하세요! 우선, MainActivity 에서 자신이 활용해볼 adater를 선택합니다. 1. MainActivity tag = "multiple"; List list = getList(); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); switch (tag) { case "Single": adapterSingle = new SingleSele.. 더보기