본문 바로가기

전체보기

(211)
[iOS] cocoaPods 설치, M1대응 기존에 cocoaPods를 설치하는 포스팅을 남겼었는데 M1 맥북에선 ios개발도 다르게 처리해줘야 하더라구요.. [iOS - Swift] cocoaPods로 라이브러리 추가 ( SnapKit 추가, 안드 개발자 시점 ) 안드로이드로 라이브러리 추가할땐 프로젝트내 gradle 파일에 간단하게 선언 해주고 싱크를 맞추면 되는데 iOS는 터미널을 이용하는 방법으로 하더라구요. ( 다른 방법이 있을수도 있겠지만 굉장 superwony.tistory.com 기존 설치 방법은 위 포스팅을 참고하시면 됩니다. m1 문제 기존 방식으로 cocoaPods를 설치할 수 없습니다. $ sudo gem install cocoapods ( 기존방식 ) 위 명령어를 입력하면 에러가 나면서 설치되지 않습니다. 해결방법 먼저 터미..
[AOS] 카메라로 촬영한 이미지 경로 가져오기 ( targetSdk 30 대응 ) 많은 수의 앱에서 갤러리에서 사진을 업로드하고 카메라로 사진을 찍어서 올리는 행위를 합니다. 인스타그램이나 페이스북처럼 sns을 통해서 자신의 일상을 사진의 형태로 공유하기 때문인데요. 그러다보니 저도 앱들을 개발하면서 이미지 관련 포스팅을 여러개 남겼습니다. 웹뷰에서 이미지 업로드 , 카메라 갤러리에서 이미지 가져오기 (코틀린), 카메라 갤러리에서 이미지 가져오기 (자바) Webview 이미지 업로드 구현하기 ( 카메라, 갤러리 ) 웹뷰가 아닌 네이티브만 작업하시는 분들은 제 블로그에 다른 포스팅을 참고해주세요 ! ( 그리고 해당 포스팅은 minsdk 21, Kotlin 기준으로 작업됐습니다. ) [안드로이드/코틀린] 카메라와 갤러리에 superwony.tistory.com 그런데 또 같은 주제로 포스..
[AOS] Dagger Hilt - DI 요즘 mvvm 검색하면 항상 붙어 나오는 키워드중 하나가 DI인것 같습니다. ( 요즘이 아니라 한참 오래전이긴 함 ) MVVM을 적용해보면서 코인은 써봤지만 hilt는 'Dagger'의 학습곡선이 상당하다는 얘기만 들어서 엄두도 못내다가 이직한 회사에 힐트가 적용되어 있어 공부한 내용을 정리해봅니닷 | DI 필요성 ( 의존성 주입 ) A 클래스에서 B 클래스를 객체화 해서 사용하는 경우를 예를 들어보면 아래와 같습니다. class A{ val b = B() ... } class B{ ... } 만약 B클래스의 기능 변화로 객체화시 넘겨줘야 하는 변수가 생긴다면 B클래스를 객체화 하는 클래스를 모두 찾아서 그에 맞게 변경 해줘야 합니다. class B constructor(val number: Int){ ..
[AOS] ParseError at [row,col]:[4,2] - 명확하지 않은 에러 잡기 브런치 머지하는 과정에서 충돌을 해결할때 위와 같은 에러가 발생했습니다. 형상관리 툴로는 소스트리를 사용하고 있고, 충돌된 파일들을 알맞게 수정했는데 빌드시 'ParseError at [row,col]:[4,2]' 에러가 발생했습니다. 어떤 파일이 문제가 있는지 명확하게 나오지 않아 구글링을 해보니 xml 파일의 태그를 닫지 않았거나, 잘못된 문자가 들어갈 경우 발생하는 문제라는걸 알 수 있었습니다. 그래서 할 수 있었던건 변경된 xml 파일들을 뒤져서 충돌이 미쳐 해결되지 못했다거나, 잘못된 파일이 있는지 모두 검사했을때 발견할 수 있었습니다. 요약 정확한 에러 파일이 나타나지 않으면 변경한 xml 파일 모두를 뒤져봅시다.
[AOS] 하단 네비게이션 배경색 변경 안드로이드 유저에게 익숙한 하단 네비게이션의 색상을 변경해 조금 더 자연스럽게 연출할 수 있습니다. 작은 부분이지만 일부 유저에겐 감동(?)을 줄수 있습니다. 아래 예시 사진을 보면 제가 개발한 '식물일기'입니다. 안타깝게도 제 앱에도 아직 적용하지 못했네요.. 지금 한창 디자인 개선중에 있는데 언능 출시해야하는데 맘처럼 쉽지 않네요 ㅠ 코드 구글링 했을때 배경색 바꾸는 코드들은 많았는데 버튼 색상 변경하는 코드들이 버전을 타는 이슈들이 있었는데 아래 코드는 minSDk 21인 앱에도 문제 없지 작동했습니다. window.navigationBarColor = ContextCompat.getColor(this,R.color.white) // 배경색 변경 WindowInsetsControllerCompat(..
[AOS] adb pair로 빌드 간편하게 하기 adb pair 기능으로 빌드를 USB 연결을 하지 않아도 가능합니다. 있다는건 알고 있었지만 나중에 해야지 하면서 익숙함에... 실제로 usb 연결이 잘 안되서 ( 전력문제인지 종종 끊겨서 재연결 하거나 그래야함 ) 불편했는데, 연동 방법은 5분도 안걸리니 다들 적용하셔서 편하게 개발 하세요 ! adb는 앱 설치 및 디버깅과 관련된 작업을 도와주는 라이브러리로 브릿지 말고도 편리하게 사용할 수 있으니 사용 안해보신 분은 꼭 사용해보세요 ! [포스팅] [안드로이드/Android] ADB 사용하기 이번 포스팅은 ADB(Android Debug Bridge)입니다. ADB는 애뮬레이터나 연결된 안드로이드 기기에 통신을 통해 앱 설치, 캐시삭제등을 명령해 생산성을 높히는 관리도구 입니다. 테스트 환경 Win..
[AOS] 텍스트 영역에 대한 타 파트와 협의 일지 해당 포스팅은 개인적 견해로 작성했습니다. 이견이 있으신분들은 댓글로 남겨주시면 감사하겠습니다. 텍스트뷰 영역보다 글자수가 많으면 줄바꿈이 생깁니다. 당연한 결과이지만 개발중인 앱의 디자인을 헤치지 않기 위해선 디자이너 및 기획자와 협의를 해야합니다. 최대 몇글자까지 올수 있는지, 해당 영역을 넘길 경우 줄바꿈을 할건지, 말줄임표를 할건지 정해야합니다. 정답이 있는건 아니지만 저는 보통 앱이 이쁘게 보이는 방향으로 설득을 합니다. 하지만 상대 의견이 타당하면 들어주는 편입니다. 그게 개발자의 역할이라고 생각합니다. ( 가능/불가능을 진단하고, 개발자 선에서 또 다른을 의견을 제안 해주는것 ) | 예시 아래는 네이버 앱의 캡쳐본인데 실시간 추천 영상 리스트를 보면 제목은 한줄, 내용은 두줄로 통일성을 갖고..
[AOS] TextView에 Auto size 적용하기 textview에 auto size를 적용시 한정된 영역에 글자를 모두 담지 못할 경우 사이즈가 줄어 드는 원리기 때문에 원칙적은 width / height를 고정 해줘야합니다. ( 구글은 wrap_content 비권장 ) 하지만 height를 고정하면서 글자가 짤리지 않고 불필요한 여백을 갖지 않게 하는건 번거롭기 때문에 wrap_content를 사용하고 maxLines를 1로 지정해주면 됩니다. - autoSizeTextType : uniform으로 지정 - autoSizeMinTextSize : 작아질 최소 사이즈를 지정합니다. - autoSizeStepGranularity : 영역에 넘칠 경우 크기를 줄일 단위를 지정합니다. ( 위 코드는 1dp씩 줄어듬, 클수록 부자연스러움 ) - autoSiz..